summaryrefslogtreecommitdiff
path: root/packages/interactions/discord/interfaces.ts
blob: bc8683c21bbe1941fc78faef391a9208aaf0eaaf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
export interface Environment {
  DISCORD_APPLICATION_ID: string;
  DISCORD_PUBLIC_KEY: string;
  DISCORD_TOKEN: string;
}

export interface DiscordInteraction {
  type: number;
  data: {
    name: string;
    options?: Array<{
      name: string;
      value: string;
    }>;
  };
  channel_id?: string;
  channel?: {
    nsfw: boolean;
  };
  guild_id?: string;
  user?: {
    id: string;
    username: string;
    avatar?: string;
  };
  member?: {
    user?: {
      id: string;
      username: string;
      avatar?: string;
    };
    roles?: string[];
    permissions?: string;
  };
}

export interface DiscordEmbed {
  title: string;
  description: string;
  url?: string;
  color: number;
  author?: {
    name: string;
    url: string;
  };
  fields?: Array<{
    name: string;
    value: string;
    inline: boolean;
  }>;
  timestamp?: string;
  footer?: {
    text: string;
  };
  image?: { url: string };
  thumbnail?: { url: string };
}

export interface DiscordResponse {
  type: number;
  data?: {
    content?: string;
    embeds?: DiscordEmbed[];
    flags?: number;
  };
}

export interface DiscordCommand {
  name: string;
  description: string;
  options?: DiscordCommandOption[];
  contexts?: number[];
}

export interface DiscordCommandOption {
  type: number;
  name: string;
  description: string;
  required?: boolean;
  choices?: DiscordCommandChoice[];
}

export interface DiscordCommandChoice {
  name: string;
  value: string;
}