discord-protos 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -7,15 +7,6 @@ These protobufs are used by the Discord clients for user settings.
7
7
 
8
8
  Provided for educational purposes only.
9
9
 
10
- ## Mapping
11
- The following table shows which protobuf user settings correspond to which .proto file.
12
-
13
- | Type | Value | File | Use |
14
- |-------|-----------------------------------|-----------------------------|----------------------------------------------------|
15
- | 1 | `PRELOADED_USER_SETTINGS` | PreloadedUserSettings.proto | General Discord user settings. |
16
- | 2 | `FRECENCY_AND_FAVORITES_SETTINGS` | FrecencyUserSettings.proto | Frecency and favorites storage for various things. |
17
- | 3 | `TEST_SETTINGS` | - | Unknown. |
18
-
19
10
  ## Usage
20
11
  ### Note
21
12
  Automating user accounts is against the Discord ToS. This repository is a proof of concept and I cannot recommend using it. Do so at your own risk.
@@ -35,26 +26,37 @@ pnpm add discord-protos
35
26
  ### Example
36
27
  ```js
37
28
 
38
- const DiscordProtos = require('discord-protos');
29
+ const { PreloadedUserSettings } = require('discord-protos');
39
30
 
40
- const encoded = DiscordProtos.PreloadedUserSettings.toBase64({
31
+ const encoded = PreloadedUserSettings.toBase64({
41
32
  status: {
42
33
  status: {
43
34
  value: "online",
44
35
  },
45
- custom_status: {
46
- text: "hello world",
36
+ customStatus: {
37
+ text: "Hello World",
38
+ emojiId: 0n,
39
+ emojiName: "",
40
+ expiresAtMs: 0n,
47
41
  },
48
42
  },
49
43
  });
50
44
 
51
- console.log("PreloadedUserSettings as base64", encoded);
45
+ const decoded = PreloadedUserSettings.fromBase64(encoded);
46
+
47
+ console.log(encoded, decoded);
48
+ ```
52
49
 
53
50
 
54
- const decoded = DiscordProtos.PreloadedUserSettings.fromBase64(encoded);
51
+ ## Mapping
52
+ The following table shows which protobuf user settings correspond to which .proto file.
53
+
54
+ | Type | Value | File | Use |
55
+ |-------|-----------------------------------|-----------------------------|----------------------------------------------------|
56
+ | 1 | `PRELOADED_USER_SETTINGS` | PreloadedUserSettings.proto | General Discord user settings. |
57
+ | 2 | `FRECENCY_AND_FAVORITES_SETTINGS` | FrecencyUserSettings.proto | Frecency and favorites storage for various things. |
58
+ | 3 | `TEST_SETTINGS` | - | Unknown. |
55
59
 
56
- console.log("PreloadedUserSettings as json", encoded);
57
- ```
58
60
 
59
61
  ### Protobufs
60
62
  The .proto files can be compiled down to Python or JavaScript files by running `npm run py` or `npm run js`. This requires protoc to be installed.
@@ -0,0 +1,8 @@
1
+ export * from "./proto/PreloadedUserSettings";
2
+ export * from "./proto/FrecencyUserSettings";
3
+ declare module "@protobuf-ts/runtime" {
4
+ interface MessageType<T> {
5
+ toBase64(data: T): string;
6
+ fromBase64(base64: string): T;
7
+ }
8
+ }
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const runtime_1 = require("@protobuf-ts/runtime");
18
+ function toBase64(data) {
19
+ return Buffer.from(this.toBinary(data)).toString("base64");
20
+ }
21
+ function fromBase64(base64) {
22
+ return this.fromBinary(Buffer.from(base64, "base64"));
23
+ }
24
+ __exportStar(require("./proto/PreloadedUserSettings"), exports);
25
+ __exportStar(require("./proto/FrecencyUserSettings"), exports);
26
+ runtime_1.MessageType.prototype.fromBase64 = fromBase64;
27
+ runtime_1.MessageType.prototype.toBase64 = toBase64;
package/dist/load.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/load.js ADDED
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const puppeteer_1 = require("puppeteer");
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const script = (0, fs_1.readFileSync)((0, path_1.join)(__dirname, "parse.js"), "utf8");
7
+ async function main() {
8
+ const browser = await puppeteer_1.default.launch({
9
+ headless: true,
10
+ });
11
+ const page = await browser.newPage();
12
+ await page.goto("https://discord.com/app", { waitUntil: "networkidle0" });
13
+ const protos = await page.evaluate(`${script}; protos`);
14
+ for (const [name, proto] of Object.entries(protos)) {
15
+ (0, fs_1.writeFileSync)((0, path_1.join)(__dirname, "..", "out", name + ".proto"), proto.data);
16
+ }
17
+ await browser.close();
18
+ }
19
+ main();
@@ -0,0 +1,35 @@
1
+ declare function parseType(field: any): any;
2
+ declare function parseName(name: any): any;
3
+ declare function flattenField(field: any): any[];
4
+ declare function parseEnum(enun: any): {
5
+ name: any;
6
+ kind: string;
7
+ values: {
8
+ name: string;
9
+ value: any;
10
+ }[];
11
+ };
12
+ declare function parseProto(proto: any): {
13
+ name: any;
14
+ kind: string;
15
+ fields: any[];
16
+ structs: any[];
17
+ };
18
+ declare function extractProtos(): {};
19
+ declare function createProtoField(field: any): string;
20
+ declare function createProtoFile(proto: any): string;
21
+ declare function getModules(str: any): any;
22
+ declare function filterMap(arr: any, callback: any): any;
23
+ declare const REAL_TYPES: {
24
+ 1: string;
25
+ 2: string;
26
+ 3: string;
27
+ 4: string;
28
+ 5: string;
29
+ 6: string;
30
+ 8: string;
31
+ 9: string;
32
+ 12: string;
33
+ 13: string;
34
+ };
35
+ declare const protos: {};
@@ -1,13 +1,10 @@
1
1
  if (!getModules) {
2
- var filterMap = (arr, callback) => arr.filter(callback).map(callback)
3
-
2
+ var filterMap = (arr, callback) => arr.filter(callback).map(callback);
4
3
  function getModules(str) {
5
- webpackChunkdiscord_app.push([["discord-protos"], {}, r => cache=Object.values(r.c)]);
6
-
7
- return filterMap(cache, x => Object.values(x.exports||{}).find(v=>v && v[str]))
4
+ webpackChunkdiscord_app.push([["discord-protos"], {}, r => cache = Object.values(r.c)]);
5
+ return filterMap(cache, x => Object.values(x.exports || {}).find(v => v && v[str]));
8
6
  }
9
7
  }
10
-
11
8
  // Map the type ints to their names
12
9
  const REAL_TYPES = {
13
10
  1: "double",
@@ -21,19 +18,16 @@ const REAL_TYPES = {
21
18
  12: "bytes",
22
19
  13: "uint32",
23
20
  };
24
-
25
21
  function parseType(field) {
26
22
  // We extract the actual field if possible
27
23
  if (typeof field === "function") {
28
24
  field = field();
29
25
  // If it's a real type, we just return it
30
- } else if (typeof field === "number") {
26
+ }
27
+ else if (typeof field === "number") {
31
28
  return [REAL_TYPES[field], []];
32
29
  }
33
-
34
- var type,
35
- structs = [];
36
-
30
+ var type, structs = [];
37
31
  // The kind gives us clues on how to find the type
38
32
  switch (field.kind) {
39
33
  case "message":
@@ -54,19 +48,16 @@ function parseType(field) {
54
48
  default:
55
49
  throw new Error(`Unknown field type: ${field?.kind || field}`);
56
50
  }
57
-
58
51
  // Now we lazily discover any protos in the fields
59
52
  for (let t of [field.T, field.K, field.V]) {
60
53
  t = t?.T || t;
61
-
62
- if (
63
- typeof t === "function" &&
64
- (!t().typeName || t().typeName.startsWith("discord_protos"))
65
- ) {
54
+ if (typeof t === "function" &&
55
+ (!t().typeName || t().typeName.startsWith("discord_protos"))) {
66
56
  t = t();
67
57
  if (Array.isArray(t)) {
68
58
  structs.push(parseEnum(t));
69
- } else {
59
+ }
60
+ else {
70
61
  const extraStruct = parseProto(t);
71
62
  structs.push(...(extraStruct.structs || []));
72
63
  delete extraStruct.structs;
@@ -74,14 +65,11 @@ function parseType(field) {
74
65
  }
75
66
  }
76
67
  }
77
-
78
68
  return [type, structs];
79
69
  }
80
-
81
70
  function parseName(name) {
82
71
  return name.split(".").slice(-1)[0];
83
72
  }
84
-
85
73
  function flattenField(field) {
86
74
  const [type, structs] = parseType(field);
87
75
  return [
@@ -96,7 +84,6 @@ function flattenField(field) {
96
84
  structs,
97
85
  ];
98
86
  }
99
-
100
87
  function parseEnum(enun) {
101
88
  const [name, data] = enun;
102
89
  return {
@@ -105,12 +92,11 @@ function parseEnum(enun) {
105
92
  values: Object.entries(data)
106
93
  .filter(([k, _]) => isNaN(Number(k)))
107
94
  .map(([k, v]) => ({
108
- name: k,
109
- value: v,
110
- })),
95
+ name: k,
96
+ value: v,
97
+ })),
111
98
  };
112
99
  }
113
-
114
100
  function parseProto(proto) {
115
101
  const fields = [];
116
102
  const structs = [];
@@ -119,18 +105,14 @@ function parseProto(proto) {
119
105
  fields.push(f);
120
106
  structs.push(...s);
121
107
  });
122
-
123
108
  const seen = new Set();
124
109
  return {
125
110
  name: parseName(proto.typeName),
126
111
  kind: "message",
127
112
  fields: fields,
128
- structs: structs.filter((v) =>
129
- seen.has(v.name) ? false : seen.add(v.name),
130
- ),
113
+ structs: structs.filter((v) => seen.has(v.name) ? false : seen.add(v.name)),
131
114
  };
132
115
  }
133
-
134
116
  function extractProtos() {
135
117
  const results = {};
136
118
  for (const proto of getModules("typeName")) {
@@ -143,29 +125,21 @@ function extractProtos() {
143
125
  }
144
126
  return results;
145
127
  }
146
-
147
128
  function createProtoField(field) {
148
- return `${
149
- field.optional ? "optional " : field.repeated ? "repeated " : ""
150
- }${field.type} ${field.name} = ${field.number};`;
129
+ return `${field.optional ? "optional " : field.repeated ? "repeated " : ""}${field.type} ${field.name} = ${field.number};`;
151
130
  }
152
-
153
131
  function createProtoFile(proto) {
154
132
  const lines = [
155
133
  `syntax = "proto3";\n`,
156
134
  `package discord_protos.discord_users.v1.${proto.name};\n`,
157
135
  `message ${proto.name} {`,
158
136
  ];
159
-
160
137
  proto.structs.forEach((struct) => {
161
138
  lines.push(` ${struct.kind} ${struct.name} {`);
162
-
163
139
  switch (struct.kind) {
164
140
  case "enum":
165
141
  struct.values.forEach((value) => {
166
- lines.push(
167
- ` ${value.name.toUpperCase()} = ${value.value};`,
168
- );
142
+ lines.push(` ${value.name.toUpperCase()} = ${value.value};`);
169
143
  });
170
144
  break;
171
145
  case "message":
@@ -176,37 +150,26 @@ function createProtoFile(proto) {
176
150
  default:
177
151
  throw new Error(`Unknown struct kind: ${struct.kind}`);
178
152
  }
179
-
180
153
  lines.push(` }\n`);
181
154
  });
182
-
183
155
  proto.fields.forEach((field) => {
184
156
  lines.push(` ${createProtoField(field)}`);
185
157
  });
186
-
187
158
  // Check if we're using the funny Google well-knowns and insert an import statement (I love Discord)
188
159
  if (lines.some((line) => line.includes("google.protobuf"))) {
189
- lines.splice(
190
- 1,
191
- 0,
192
- `import "google/protobuf/wrappers.proto";\nimport "google/protobuf/timestamp.proto";\n`,
193
- );
160
+ lines.splice(1, 0, `import "google/protobuf/wrappers.proto";\nimport "google/protobuf/timestamp.proto";\n`);
194
161
  }
195
-
196
162
  lines.push("}\n");
197
163
  return lines.join("\n");
198
164
  }
199
-
200
165
  const protos = extractProtos();
201
166
  for (const [key, proto] of Object.entries(protos)) {
202
- const data = createProtoFile(proto);
203
- protos[key].data = data;
167
+ const data = createProtoFile(proto);
168
+ protos[key].data = data;
204
169
  if (window.DiscordNative?.fileManager) {
205
- window.DiscordNative.fileManager.saveWithDialog(
206
- data,
207
- `${proto.name}.proto`,
208
- );
209
- } else {
170
+ window.DiscordNative.fileManager.saveWithDialog(data, `${proto.name}.proto`);
171
+ }
172
+ else {
210
173
  console.log(data);
211
174
  }
212
175
  }
@@ -0,0 +1,290 @@
1
+ import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
2
+ import type { IBinaryWriter } from "@protobuf-ts/runtime";
3
+ import type { BinaryReadOptions } from "@protobuf-ts/runtime";
4
+ import type { IBinaryReader } from "@protobuf-ts/runtime";
5
+ import type { PartialMessage } from "@protobuf-ts/runtime";
6
+ import { MessageType } from "@protobuf-ts/runtime";
7
+ /**
8
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings
9
+ */
10
+ export interface FrecencyUserSettings {
11
+ /**
12
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.Versions versions = 1;
13
+ */
14
+ versions?: FrecencyUserSettings_Versions;
15
+ /**
16
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIFs favorite_gifs = 2;
17
+ */
18
+ favoriteGifs?: FrecencyUserSettings_FavoriteGIFs;
19
+ /**
20
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteStickers favorite_stickers = 3;
21
+ */
22
+ favoriteStickers?: FrecencyUserSettings_FavoriteStickers;
23
+ /**
24
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.StickerFrecency sticker_frecency = 4;
25
+ */
26
+ stickerFrecency?: FrecencyUserSettings_StickerFrecency;
27
+ /**
28
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteEmojis favorite_emojis = 5;
29
+ */
30
+ favoriteEmojis?: FrecencyUserSettings_FavoriteEmojis;
31
+ /**
32
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.EmojiFrecency emoji_frecency = 6;
33
+ */
34
+ emojiFrecency?: FrecencyUserSettings_EmojiFrecency;
35
+ /**
36
+ * @generated from protobuf field: optional discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.ApplicationCommandFrecency application_command_frecency = 7;
37
+ */
38
+ applicationCommandFrecency?: FrecencyUserSettings_ApplicationCommandFrecency;
39
+ }
40
+ /**
41
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.Versions
42
+ */
43
+ export interface FrecencyUserSettings_Versions {
44
+ /**
45
+ * @generated from protobuf field: uint32 client_version = 1;
46
+ */
47
+ clientVersion: number;
48
+ /**
49
+ * @generated from protobuf field: uint32 server_version = 2;
50
+ */
51
+ serverVersion: number;
52
+ /**
53
+ * @generated from protobuf field: uint32 data_version = 3;
54
+ */
55
+ dataVersion: number;
56
+ }
57
+ /**
58
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIF
59
+ */
60
+ export interface FrecencyUserSettings_FavoriteGIF {
61
+ /**
62
+ * @generated from protobuf field: discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.GIFType format = 1;
63
+ */
64
+ format: FrecencyUserSettings_GIFType;
65
+ /**
66
+ * @generated from protobuf field: string src = 2;
67
+ */
68
+ src: string;
69
+ /**
70
+ * @generated from protobuf field: uint32 width = 3;
71
+ */
72
+ width: number;
73
+ /**
74
+ * @generated from protobuf field: uint32 height = 4;
75
+ */
76
+ height: number;
77
+ /**
78
+ * @generated from protobuf field: uint32 order = 5;
79
+ */
80
+ order: number;
81
+ }
82
+ /**
83
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIFs
84
+ */
85
+ export interface FrecencyUserSettings_FavoriteGIFs {
86
+ /**
87
+ * @generated from protobuf field: map<string, discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIF> gifs = 1;
88
+ */
89
+ gifs: {
90
+ [key: string]: FrecencyUserSettings_FavoriteGIF;
91
+ };
92
+ /**
93
+ * @generated from protobuf field: bool hide_tooltip = 2;
94
+ */
95
+ hideTooltip: boolean;
96
+ }
97
+ /**
98
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteStickers
99
+ */
100
+ export interface FrecencyUserSettings_FavoriteStickers {
101
+ /**
102
+ * @generated from protobuf field: repeated fixed64 sticker_ids = 1;
103
+ */
104
+ stickerIds: bigint[];
105
+ }
106
+ /**
107
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FrecencyItem
108
+ */
109
+ export interface FrecencyUserSettings_FrecencyItem {
110
+ /**
111
+ * @generated from protobuf field: uint32 total_uses = 1;
112
+ */
113
+ totalUses: number;
114
+ /**
115
+ * @generated from protobuf field: repeated uint64 recent_uses = 2;
116
+ */
117
+ recentUses: bigint[];
118
+ /**
119
+ * @generated from protobuf field: int32 frecency = 3;
120
+ */
121
+ frecency: number;
122
+ /**
123
+ * @generated from protobuf field: int32 score = 4;
124
+ */
125
+ score: number;
126
+ }
127
+ /**
128
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.StickerFrecency
129
+ */
130
+ export interface FrecencyUserSettings_StickerFrecency {
131
+ /**
132
+ * @generated from protobuf field: map<fixed64, discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FrecencyItem> stickers = 1;
133
+ */
134
+ stickers: {
135
+ [key: string]: FrecencyUserSettings_FrecencyItem;
136
+ };
137
+ }
138
+ /**
139
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteEmojis
140
+ */
141
+ export interface FrecencyUserSettings_FavoriteEmojis {
142
+ /**
143
+ * @generated from protobuf field: repeated string emojis = 1;
144
+ */
145
+ emojis: string[];
146
+ }
147
+ /**
148
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.EmojiFrecency
149
+ */
150
+ export interface FrecencyUserSettings_EmojiFrecency {
151
+ /**
152
+ * @generated from protobuf field: map<string, discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FrecencyItem> emojis = 1;
153
+ */
154
+ emojis: {
155
+ [key: string]: FrecencyUserSettings_FrecencyItem;
156
+ };
157
+ }
158
+ /**
159
+ * @generated from protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.ApplicationCommandFrecency
160
+ */
161
+ export interface FrecencyUserSettings_ApplicationCommandFrecency {
162
+ /**
163
+ * @generated from protobuf field: map<string, discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FrecencyItem> application_commands = 1;
164
+ */
165
+ applicationCommands: {
166
+ [key: string]: FrecencyUserSettings_FrecencyItem;
167
+ };
168
+ }
169
+ /**
170
+ * @generated from protobuf enum discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.GIFType
171
+ */
172
+ export declare enum FrecencyUserSettings_GIFType {
173
+ /**
174
+ * @generated from protobuf enum value: NONE = 0;
175
+ */
176
+ NONE = 0,
177
+ /**
178
+ * @generated from protobuf enum value: IMAGE = 1;
179
+ */
180
+ IMAGE = 1,
181
+ /**
182
+ * @generated from protobuf enum value: VIDEO = 2;
183
+ */
184
+ VIDEO = 2
185
+ }
186
+ declare class FrecencyUserSettings$Type extends MessageType<FrecencyUserSettings> {
187
+ constructor();
188
+ create(value?: PartialMessage<FrecencyUserSettings>): FrecencyUserSettings;
189
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings): FrecencyUserSettings;
190
+ internalBinaryWrite(message: FrecencyUserSettings, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
191
+ }
192
+ /**
193
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings
194
+ */
195
+ export declare const FrecencyUserSettings: FrecencyUserSettings$Type;
196
+ declare class FrecencyUserSettings_Versions$Type extends MessageType<FrecencyUserSettings_Versions> {
197
+ constructor();
198
+ create(value?: PartialMessage<FrecencyUserSettings_Versions>): FrecencyUserSettings_Versions;
199
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_Versions): FrecencyUserSettings_Versions;
200
+ internalBinaryWrite(message: FrecencyUserSettings_Versions, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
201
+ }
202
+ /**
203
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.Versions
204
+ */
205
+ export declare const FrecencyUserSettings_Versions: FrecencyUserSettings_Versions$Type;
206
+ declare class FrecencyUserSettings_FavoriteGIF$Type extends MessageType<FrecencyUserSettings_FavoriteGIF> {
207
+ constructor();
208
+ create(value?: PartialMessage<FrecencyUserSettings_FavoriteGIF>): FrecencyUserSettings_FavoriteGIF;
209
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_FavoriteGIF): FrecencyUserSettings_FavoriteGIF;
210
+ internalBinaryWrite(message: FrecencyUserSettings_FavoriteGIF, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
211
+ }
212
+ /**
213
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIF
214
+ */
215
+ export declare const FrecencyUserSettings_FavoriteGIF: FrecencyUserSettings_FavoriteGIF$Type;
216
+ declare class FrecencyUserSettings_FavoriteGIFs$Type extends MessageType<FrecencyUserSettings_FavoriteGIFs> {
217
+ constructor();
218
+ create(value?: PartialMessage<FrecencyUserSettings_FavoriteGIFs>): FrecencyUserSettings_FavoriteGIFs;
219
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_FavoriteGIFs): FrecencyUserSettings_FavoriteGIFs;
220
+ private binaryReadMap1;
221
+ internalBinaryWrite(message: FrecencyUserSettings_FavoriteGIFs, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
222
+ }
223
+ /**
224
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteGIFs
225
+ */
226
+ export declare const FrecencyUserSettings_FavoriteGIFs: FrecencyUserSettings_FavoriteGIFs$Type;
227
+ declare class FrecencyUserSettings_FavoriteStickers$Type extends MessageType<FrecencyUserSettings_FavoriteStickers> {
228
+ constructor();
229
+ create(value?: PartialMessage<FrecencyUserSettings_FavoriteStickers>): FrecencyUserSettings_FavoriteStickers;
230
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_FavoriteStickers): FrecencyUserSettings_FavoriteStickers;
231
+ internalBinaryWrite(message: FrecencyUserSettings_FavoriteStickers, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
232
+ }
233
+ /**
234
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteStickers
235
+ */
236
+ export declare const FrecencyUserSettings_FavoriteStickers: FrecencyUserSettings_FavoriteStickers$Type;
237
+ declare class FrecencyUserSettings_FrecencyItem$Type extends MessageType<FrecencyUserSettings_FrecencyItem> {
238
+ constructor();
239
+ create(value?: PartialMessage<FrecencyUserSettings_FrecencyItem>): FrecencyUserSettings_FrecencyItem;
240
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_FrecencyItem): FrecencyUserSettings_FrecencyItem;
241
+ internalBinaryWrite(message: FrecencyUserSettings_FrecencyItem, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
242
+ }
243
+ /**
244
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FrecencyItem
245
+ */
246
+ export declare const FrecencyUserSettings_FrecencyItem: FrecencyUserSettings_FrecencyItem$Type;
247
+ declare class FrecencyUserSettings_StickerFrecency$Type extends MessageType<FrecencyUserSettings_StickerFrecency> {
248
+ constructor();
249
+ create(value?: PartialMessage<FrecencyUserSettings_StickerFrecency>): FrecencyUserSettings_StickerFrecency;
250
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_StickerFrecency): FrecencyUserSettings_StickerFrecency;
251
+ private binaryReadMap1;
252
+ internalBinaryWrite(message: FrecencyUserSettings_StickerFrecency, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
253
+ }
254
+ /**
255
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.StickerFrecency
256
+ */
257
+ export declare const FrecencyUserSettings_StickerFrecency: FrecencyUserSettings_StickerFrecency$Type;
258
+ declare class FrecencyUserSettings_FavoriteEmojis$Type extends MessageType<FrecencyUserSettings_FavoriteEmojis> {
259
+ constructor();
260
+ create(value?: PartialMessage<FrecencyUserSettings_FavoriteEmojis>): FrecencyUserSettings_FavoriteEmojis;
261
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_FavoriteEmojis): FrecencyUserSettings_FavoriteEmojis;
262
+ internalBinaryWrite(message: FrecencyUserSettings_FavoriteEmojis, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
263
+ }
264
+ /**
265
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.FavoriteEmojis
266
+ */
267
+ export declare const FrecencyUserSettings_FavoriteEmojis: FrecencyUserSettings_FavoriteEmojis$Type;
268
+ declare class FrecencyUserSettings_EmojiFrecency$Type extends MessageType<FrecencyUserSettings_EmojiFrecency> {
269
+ constructor();
270
+ create(value?: PartialMessage<FrecencyUserSettings_EmojiFrecency>): FrecencyUserSettings_EmojiFrecency;
271
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_EmojiFrecency): FrecencyUserSettings_EmojiFrecency;
272
+ private binaryReadMap1;
273
+ internalBinaryWrite(message: FrecencyUserSettings_EmojiFrecency, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
274
+ }
275
+ /**
276
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.EmojiFrecency
277
+ */
278
+ export declare const FrecencyUserSettings_EmojiFrecency: FrecencyUserSettings_EmojiFrecency$Type;
279
+ declare class FrecencyUserSettings_ApplicationCommandFrecency$Type extends MessageType<FrecencyUserSettings_ApplicationCommandFrecency> {
280
+ constructor();
281
+ create(value?: PartialMessage<FrecencyUserSettings_ApplicationCommandFrecency>): FrecencyUserSettings_ApplicationCommandFrecency;
282
+ internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FrecencyUserSettings_ApplicationCommandFrecency): FrecencyUserSettings_ApplicationCommandFrecency;
283
+ private binaryReadMap1;
284
+ internalBinaryWrite(message: FrecencyUserSettings_ApplicationCommandFrecency, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
285
+ }
286
+ /**
287
+ * @generated MessageType for protobuf message discord_protos.discord_users.v1.FrecencyUserSettings.FrecencyUserSettings.ApplicationCommandFrecency
288
+ */
289
+ export declare const FrecencyUserSettings_ApplicationCommandFrecency: FrecencyUserSettings_ApplicationCommandFrecency$Type;
290
+ export {};