From 05a1956ee21099ffaaaf61deafe6d9cb8551e1c9 Mon Sep 17 00:00:00 2001 From: zubiden <19638254+zubiden@users.noreply.github.com> Date: Fri, 4 Jul 2025 14:12:18 +0200 Subject: [PATCH] GramJS: Forbid skipping required parameters (#6033) --- src/api/gramjs/apiBuilders/chats.ts | 1 + src/api/gramjs/gramjsBuilders/index.ts | 11 +- src/api/gramjs/methods/account.ts | 6 +- src/api/gramjs/methods/bots.ts | 24 +- src/api/gramjs/methods/calls.ts | 16 +- src/api/gramjs/methods/chats.ts | 42 +- src/api/gramjs/methods/messages.ts | 172 +- src/api/gramjs/methods/payments.ts | 5 +- src/api/gramjs/methods/reactions.ts | 32 +- src/api/gramjs/methods/settings.ts | 24 +- src/api/gramjs/methods/stars.ts | 32 +- src/api/gramjs/methods/statistics.ts | 6 +- src/api/gramjs/methods/stories.ts | 10 +- src/api/gramjs/methods/symbols.ts | 100 +- src/api/gramjs/methods/users.ts | 26 +- src/api/types/chats.ts | 1 + src/lib/gramjs/client/auth.ts | 15 +- src/lib/gramjs/tl/api.d.ts | 2614 ++++++++--------- src/lib/gramjs/tl/types-generator/template.ts | 6 +- 19 files changed, 1657 insertions(+), 1486 deletions(-) diff --git a/src/api/gramjs/apiBuilders/chats.ts b/src/api/gramjs/apiBuilders/chats.ts index fe47ca4a0..2cc342f87 100644 --- a/src/api/gramjs/apiBuilders/chats.ts +++ b/src/api/gramjs/apiBuilders/chats.ts @@ -124,6 +124,7 @@ function buildApiChatFieldsFromPeerEntity( paidMessagesStars: paidMessagesStars?.toJSNumber(), level: channel?.level, hasAutoTranslation: channel?.autotranslation, + withForumTabs: channel?.forumTabs, ...buildApiChatPermissions(peerEntity), ...buildApiChatRestrictions(peerEntity), diff --git a/src/api/gramjs/gramjsBuilders/index.ts b/src/api/gramjs/gramjsBuilders/index.ts index 26df5d344..fbe786a02 100644 --- a/src/api/gramjs/gramjsBuilders/index.ts +++ b/src/api/gramjs/gramjsBuilders/index.ts @@ -42,6 +42,12 @@ import { pick } from '../../../util/iteratees'; import { deserializeBytes } from '../helpers/misc'; import localDb from '../localDb'; +export const DEFAULT_PRIMITIVES = { + INT: 0, + BIGINT: BigInt(0), + STRING: '', +} as const; + export function getEntityTypeById(peerId: string) { const n = Number(peerId); if (n > 0) { @@ -514,7 +520,7 @@ export function buildInputPrivacyKey(privacyKey: ApiPrivacyKey) { return undefined; } -export function buildInputReportReason(reason: ApiReportReason) { +export function buildInputReportReason(reason: ApiReportReason): GramJs.TypeReportReason { switch (reason) { case 'spam': return new GramJs.InputReportReasonSpam(); @@ -535,10 +541,9 @@ export function buildInputReportReason(reason: ApiReportReason) { case 'personalDetails': return new GramJs.InputReportReasonPersonalDetails(); case 'other': + default: return new GramJs.InputReportReasonOther(); } - - return undefined; } export function buildSendMessageAction(action: ApiSendMessageAction) { diff --git a/src/api/gramjs/methods/account.ts b/src/api/gramjs/methods/account.ts index 19584bbf8..fea9b586f 100644 --- a/src/api/gramjs/methods/account.ts +++ b/src/api/gramjs/methods/account.ts @@ -6,13 +6,13 @@ import type { } from '../../types'; import { buildApiChatLink } from '../apiBuilders/misc'; -import { buildInputPeer, buildInputPhoto, buildInputReportReason } from '../gramjsBuilders'; +import { buildInputPeer, buildInputPhoto, buildInputReportReason, DEFAULT_PRIMITIVES } from '../gramjsBuilders'; import { invokeRequest } from './client'; export async function reportPeer({ peer, reason, - description, + description = DEFAULT_PRIMITIVES.STRING, }: { peer: ApiPeer; reason: ApiReportReason; description?: string; }) { @@ -29,7 +29,7 @@ export async function reportProfilePhoto({ peer, photo, reason, - description, + description = DEFAULT_PRIMITIVES.STRING, }: { peer: ApiPeer; photo: ApiPhoto; reason: ApiReportReason; description?: string; }) { diff --git a/src/api/gramjs/methods/bots.ts b/src/api/gramjs/methods/bots.ts index 988648a1d..a88bb44a9 100644 --- a/src/api/gramjs/methods/bots.ts +++ b/src/api/gramjs/methods/bots.ts @@ -32,6 +32,7 @@ import { buildInputReplyTo, buildInputThemeParams, buildInputUser, + DEFAULT_PRIMITIVES, generateRandomBigInt, } from '../gramjsBuilders'; import { @@ -62,6 +63,9 @@ export async function answerCallbackButton({ export async function fetchTopInlineBots() { const topPeers = await invokeRequest(new GramJs.contacts.GetTopPeers({ botsInline: true, + limit: DEFAULT_PRIMITIVES.INT, + offset: DEFAULT_PRIMITIVES.INT, + hash: DEFAULT_PRIMITIVES.BIGINT, })); if (!(topPeers instanceof GramJs.contacts.TopPeers)) { @@ -79,6 +83,9 @@ export async function fetchTopInlineBots() { export async function fetchTopBotApps() { const topPeers = await invokeRequest(new GramJs.contacts.GetTopPeers({ botsApp: true, + limit: DEFAULT_PRIMITIVES.INT, + offset: DEFAULT_PRIMITIVES.INT, + hash: DEFAULT_PRIMITIVES.BIGINT, })); if (!(topPeers instanceof GramJs.contacts.TopPeers)) { @@ -116,7 +123,7 @@ export async function fetchInlineBot({ username }: { username: string }) { } export async function fetchInlineBotResults({ - bot, chat, query, offset = '', + bot, chat, query, offset = DEFAULT_PRIMITIVES.STRING, }: { bot: ApiUser; chat: ApiChat; query: string; offset?: string; }) { @@ -182,7 +189,7 @@ export async function startBot({ bot: buildInputUser(bot.id, bot.accessHash), peer: buildInputPeer(bot.id, bot.accessHash), randomId, - startParam, + startParam: startParam ?? DEFAULT_PRIMITIVES.STRING, })); } @@ -307,6 +314,7 @@ export async function fetchBotApp({ botId: buildInputUser(bot.id, bot.accessHash), shortName: appName, }), + hash: DEFAULT_PRIMITIVES.BIGINT, })); if (!result || result instanceof GramJs.BotAppNotModified) { @@ -391,7 +399,7 @@ export async function loadAttachBots({ hash?: string; }) { const result = await invokeRequest(new GramJs.messages.GetAttachMenuBots({ - hash: hash ? BigInt(hash) : undefined, + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, })); if (result instanceof GramJs.AttachMenuBots) { @@ -664,23 +672,23 @@ export function setBotInfo({ return invokeRequest(new GramJs.bots.SetBotInfo({ bot: buildInputUser(bot.id, bot.accessHash), langCode, - name: name || '', - about: about || '', - description: description || '', + name, + about, + description, }), { shouldReturnTrue: true, }); } export async function fetchPopularAppBots({ - offset = '', limit, + offset = DEFAULT_PRIMITIVES.STRING, limit, }: { offset?: string; limit?: number; }) { const result = await invokeRequest(new GramJs.bots.GetPopularAppBots({ offset, - limit, + limit: limit ?? DEFAULT_PRIMITIVES.INT, })); if (!result) { diff --git a/src/api/gramjs/methods/calls.ts b/src/api/gramjs/methods/calls.ts index 082eac1fd..dd6874773 100644 --- a/src/api/gramjs/methods/calls.ts +++ b/src/api/gramjs/methods/calls.ts @@ -13,7 +13,7 @@ import { buildPhoneCall, } from '../apiBuilders/calls'; import { - buildInputGroupCall, buildInputPeer, buildInputPhoneCall, buildInputUser, generateRandomInt, + buildInputGroupCall, buildInputPeer, buildInputPhoneCall, buildInputUser, DEFAULT_PRIMITIVES, generateRandomInt, } from '../gramjsBuilders'; import { sendApiUpdate } from '../updates/apiUpdateEmitter'; import { invokeRequest, invokeRequestBeacon } from './client'; @@ -25,6 +25,7 @@ export async function getGroupCall({ }) { const result = await invokeRequest(new GramJs.phone.GetGroupCall({ call: buildInputGroupCall(call), + limit: DEFAULT_PRIMITIVES.INT, })); if (!result) { @@ -100,7 +101,8 @@ export async function exportGroupCallInvite({ } export async function fetchGroupCallParticipants({ - call, offset, + call, + offset = DEFAULT_PRIMITIVES.STRING, }: { call: ApiGroupCall; offset?: string; }) { @@ -108,7 +110,7 @@ export async function fetchGroupCallParticipants({ call: buildInputGroupCall(call), ids: [], sources: [], - offset: offset || '', + offset, limit: GROUP_CALL_PARTICIPANTS_LIMIT, })); @@ -131,6 +133,7 @@ export function leaveGroupCall({ }) { const request = new GramJs.phone.LeaveGroupCall({ call: buildInputGroupCall(call), + source: DEFAULT_PRIMITIVES.INT, }); if (isPageUnload) { @@ -239,7 +242,10 @@ export function leaveGroupCallPresentation({ } export async function getDhConfig() { - const dhConfig = await invokeRequest(new GramJs.messages.GetDhConfig({})); + const dhConfig = await invokeRequest(new GramJs.messages.GetDhConfig({ + version: DEFAULT_PRIMITIVES.INT, + randomLength: DEFAULT_PRIMITIVES.INT, + })); if (!dhConfig || dhConfig instanceof GramJs.messages.DhConfigNotModified) return undefined; @@ -258,6 +264,8 @@ export function discardCall({ const request = new GramJs.phone.DiscardCall({ peer: buildInputPhoneCall(call), reason: isBusy ? new GramJs.PhoneCallDiscardReasonBusy() : new GramJs.PhoneCallDiscardReasonHangup(), + duration: DEFAULT_PRIMITIVES.INT, + connectionId: DEFAULT_PRIMITIVES.BIGINT, }); if (isPageUnload) { diff --git a/src/api/gramjs/methods/chats.ts b/src/api/gramjs/methods/chats.ts index b294b9477..1e39190b8 100644 --- a/src/api/gramjs/methods/chats.ts +++ b/src/api/gramjs/methods/chats.ts @@ -70,6 +70,7 @@ import { buildInputReplyTo, buildInputUser, buildMtpMessageEntity, + DEFAULT_PRIMITIVES, generateRandomBigInt, getEntityTypeById, } from '../gramjsBuilders'; @@ -128,16 +129,17 @@ export async function fetchChats({ }): Promise { const peer = (offsetPeer && buildInputPeer(offsetPeer.id, offsetPeer.accessHash)) || new GramJs.InputPeerEmpty(); const result = await invokeRequest(new GramJs.messages.GetDialogs({ + hash: DEFAULT_PRIMITIVES.BIGINT, offsetPeer: peer, - offsetId, + offsetId: offsetId ?? DEFAULT_PRIMITIVES.INT, limit, - offsetDate, + offsetDate: offsetDate ?? DEFAULT_PRIMITIVES.INT, folderId: archived ? ARCHIVED_FOLDER_ID : undefined, ...(withPinned && { excludePinned: true }), })); const resultPinned = withPinned ? await invokeRequest(new GramJs.messages.GetPinnedDialogs({ - folderId: archived ? ARCHIVED_FOLDER_ID : undefined, + folderId: archived ? ARCHIVED_FOLDER_ID : ALL_FOLDER_ID, })) : undefined; @@ -265,9 +267,10 @@ export async function fetchSavedChats({ const peer = (offsetPeer && buildInputPeer(offsetPeer.id, offsetPeer.accessHash)) || new GramJs.InputPeerEmpty(); const result = await invokeRequest(new GramJs.messages.GetSavedDialogs({ offsetPeer: peer, - offsetId, + offsetId: offsetId ?? DEFAULT_PRIMITIVES.INT, limit, - offsetDate, + offsetDate: offsetDate ?? DEFAULT_PRIMITIVES.INT, + hash: DEFAULT_PRIMITIVES.BIGINT, ...(withPinned && { excludePinned: true }), })); const resultPinned = withPinned @@ -520,7 +523,7 @@ export function saveDraft({ }) { return invokeRequest(new GramJs.messages.SaveDraft({ peer: buildInputPeer(chat.id, chat.accessHash), - message: draft?.text?.text || '', + message: draft?.text?.text || DEFAULT_PRIMITIVES.STRING, entities: draft?.text?.entities?.map(buildMtpMessageEntity), replyTo: draft?.replyInfo && buildInputReplyTo(draft.replyInfo), })); @@ -821,7 +824,7 @@ export function updateTopicMutedState({ } export async function createChannel({ - title, about = '', users, isBroadcast, isMegagroup, + title, about = DEFAULT_PRIMITIVES.STRING, users, isBroadcast, isMegagroup, }: { title: string; about?: string; users?: ApiUser[]; isBroadcast?: true; isMegagroup?: true; }) { @@ -1094,7 +1097,7 @@ export async function fetchPinnedDialogs({ listType: ChatListType; }) { const result = await invokeRequest(new GramJs.messages.GetPinnedDialogs({ - folderId: listType === 'archived' ? ARCHIVED_FOLDER_ID : undefined, + folderId: listType === 'archived' ? ARCHIVED_FOLDER_ID : ALL_FOLDER_ID, })); if (!result) { @@ -1282,7 +1285,7 @@ export function updateChatMemberBannedRights({ } export function updateChatAdmin({ - chat, user, adminRights, customTitle = '', + chat, user, adminRights, customTitle = DEFAULT_PRIMITIVES.STRING, }: { chat: ApiChat; user: ApiUser; adminRights: ApiChatAdminRights; customTitle?: string }) { const channel = buildInputChannel(chat.id, chat.accessHash); const userId = buildInputUser(user.id, user.accessHash); @@ -1362,7 +1365,7 @@ export async function fetchMembers({ chat, memberFilter = 'recent', offset, - query = '', + query = DEFAULT_PRIMITIVES.STRING, }: { chat: ApiChat; memberFilter?: ChannelMembersFilter; @@ -1389,7 +1392,8 @@ export async function fetchMembers({ const result = await invokeRequest(new GramJs.channels.GetParticipants({ channel: buildInputChannel(chat.id, chat.accessHash), filter, - offset, + offset: offset ?? DEFAULT_PRIMITIVES.INT, + hash: DEFAULT_PRIMITIVES.BIGINT, limit: MEMBERS_LOAD_SLICE, }), { abortControllerChatId: chat.id, @@ -1535,6 +1539,7 @@ export async function addChatMembers(chat: ApiChat, users: ApiUser[]) { const invitedUsers = await invokeRequest(new GramJs.messages.AddChatUser({ chatId: buildInputChat(chat.id), userId: buildInputUser(user.id, user.accessHash), + fwdLimit: DEFAULT_PRIMITIVES.INT, })); if (!invitedUsers) return undefined; handleGramJsUpdate(invitedUsers.updates); @@ -1700,6 +1705,7 @@ export function toggleForum({ return invokeRequest(new GramJs.channels.ToggleForum({ channel: buildInputChannel(id, accessHash), enabled: isEnabled, + tabs: Boolean(chat.withForumTabs), }), { shouldReturnTrue: true, shouldThrow: true, @@ -1759,9 +1765,9 @@ export async function fetchTopics({ channel: buildInputChannel(id, accessHash), limit, q: query, - offsetTopic: offsetTopicId, - offsetId, - offsetDate, + offsetTopic: offsetTopicId ?? DEFAULT_PRIMITIVES.INT, + offsetId: offsetId ?? DEFAULT_PRIMITIVES.INT, + offsetDate: offsetDate ?? DEFAULT_PRIMITIVES.INT, })); if (!result) return undefined; @@ -1954,7 +1960,9 @@ export function leaveChatlist({ } export async function createChalistInvite({ - folderId, title, peers, + folderId, + title = DEFAULT_PRIMITIVES.STRING, + peers, }: { folderId: number; title?: string; @@ -1964,7 +1972,7 @@ export async function createChalistInvite({ chatlist: new GramJs.InputChatlistDialogFilter({ filterId: folderId, }), - title: title || '', + title, peers: peers.map((peer) => buildInputPeer(peer.id, peer.accessHash)), }), { shouldThrow: true, @@ -2081,7 +2089,7 @@ export function updatePaidMessagesPrice({ chat?: ApiChat; paidMessagesStars: number; }) { return invokeRequest(new GramJs.channels.UpdatePaidMessagesPrice({ - channel: chat && buildInputChannel(chat.id, chat.accessHash), + channel: chat ? buildInputChannel(chat.id, chat.accessHash) : new GramJs.InputChannelEmpty(), sendPaidMessagesStars: BigInt(paidMessagesStars), }), { shouldReturnTrue: true, diff --git a/src/api/gramjs/methods/messages.ts b/src/api/gramjs/methods/messages.ts index 68a70bb6f..cfac13e76 100644 --- a/src/api/gramjs/methods/messages.ts +++ b/src/api/gramjs/methods/messages.ts @@ -87,6 +87,7 @@ import { buildMtpMessageEntity, buildPeer, buildSendMessageAction, + DEFAULT_PRIMITIVES, generateRandomBigInt, getEntityTypeById, } from '../gramjsBuilders'; @@ -126,7 +127,8 @@ export async function fetchMessages({ threadId, offsetId, isSavedDialog, - ...pagination + addOffset, + limit, }: { chat: ApiChat; threadId?: ThreadId; @@ -142,15 +144,18 @@ export async function fetchMessages({ try { result = await invokeRequest(new RequestClass({ + hash: DEFAULT_PRIMITIVES.BIGINT, + maxId: DEFAULT_PRIMITIVES.INT, + minId: DEFAULT_PRIMITIVES.INT, + offsetDate: DEFAULT_PRIMITIVES.INT, peer: buildInputPeer(chat.id, chat.accessHash), ...(threadId !== MAIN_THREAD_ID && !isSavedDialog && { msgId: Number(threadId), }), - ...(offsetId && { - // Workaround for local message IDs overflowing some internal `Buffer` range check - offsetId: Math.min(offsetId, MAX_INT_32), - }), - ...pagination, + // Workaround for local message IDs overflowing some internal `Buffer` range check + offsetId: offsetId ? Math.min(offsetId, MAX_INT_32) : DEFAULT_PRIMITIVES.INT, + addOffset: addOffset ?? DEFAULT_PRIMITIVES.INT, + limit, }), { shouldThrow: true, abortControllerChatId: chat.id, @@ -376,33 +381,57 @@ export function sendApiMessage( phoneNumber: contact.phoneNumber, firstName: contact.firstName, lastName: contact.lastName, - vcard: '', + vcard: DEFAULT_PRIMITIVES.STRING, }); } - const RequestClass = media ? GramJs.messages.SendMedia : GramJs.messages.SendMessage; + type SharedKeys = { + [K in keyof T & keyof U]: + T[K] extends U[K] ? (U[K] extends T[K] ? K : never) : never + }[keyof T & keyof U]; + type SharedRecord = Pick>; + + type SendMediaArgs = ConstructorParameters[0]; + type SendMessageArgs = ConstructorParameters[0]; + + type SharedArgs = SharedRecord; + + const args: SharedArgs = { + clearDraft: true, + message: text || DEFAULT_PRIMITIVES.STRING, + entities: entities ? entities.map(buildMtpMessageEntity) : undefined, + peer: buildInputPeer(chat.id, chat.accessHash), + randomId, + replyTo: replyInfo && buildInputReplyTo(replyInfo), + silent: isSilent || undefined, + scheduleDate: scheduledAt, + sendAs: sendAs && buildInputPeer(sendAs.id, sendAs.accessHash), + updateStickersetsOrder: shouldUpdateStickerSetOrder || undefined, + invertMedia: isInvertedMedia || undefined, + effect: effectId ? BigInt(effectId) : undefined, + allowPaidStars: messagePriceInStars ? BigInt(messagePriceInStars) : undefined, + }; try { - const update = await invokeRequest(new RequestClass({ - clearDraft: true, - message: text || '', - entities: entities ? entities.map(buildMtpMessageEntity) : undefined, - peer: buildInputPeer(chat.id, chat.accessHash), - randomId, - replyTo: replyInfo && buildInputReplyTo(replyInfo), - ...(isSilent && { silent: isSilent }), - ...(scheduledAt && { scheduleDate: scheduledAt }), - ...(media && { media }), - ...(noWebPage && { noWebpage: noWebPage }), - ...(sendAs && { sendAs: buildInputPeer(sendAs.id, sendAs.accessHash) }), - ...(shouldUpdateStickerSetOrder && { updateStickersetsOrder: shouldUpdateStickerSetOrder }), - ...(isInvertedMedia && { invertMedia: isInvertedMedia }), - ...(effectId && { effect: BigInt(effectId) }), - ...(messagePriceInStars && { allowPaidStars: BigInt(messagePriceInStars) }), - }), { - shouldThrow: true, - shouldIgnoreUpdates: true, - }); + let update; + if (media) { + update = await invokeRequest(new GramJs.messages.SendMedia({ + ...args, + media, + }), { + shouldThrow: true, + shouldIgnoreUpdates: true, + }); + } else { + update = await invokeRequest(new GramJs.messages.SendMessage({ + ...args, + noWebpage: noWebPage || undefined, + }), { + shouldThrow: true, + shouldIgnoreUpdates: true, + }); + } + if (update) handleLocalMessageUpdate(localMessage, update); } catch (error: any) { if (error.errorMessage === 'PRIVACY_PREMIUM_REQUIRED') { @@ -439,7 +468,7 @@ const groupedUploads: Record { - const result = await invokeRequest(new GramJs.help.GetAppConfig({ hash })); + const result = await invokeRequest(new GramJs.help.GetAppConfig({ hash: hash ?? DEFAULT_PRIMITIVES.INT })); if (!result || result instanceof GramJs.help.AppConfigNotModified) return undefined; const { config, hash: resultHash } = result; @@ -610,7 +615,7 @@ export async function fetchConfig(): Promise { export async function fetchPeerColors(hash?: number) { const result = await invokeRequest(new GramJs.help.GetPeerColors({ - hash, + hash: hash ?? DEFAULT_PRIMITIVES.INT, })); if (!result) return undefined; @@ -627,7 +632,7 @@ export async function fetchPeerColors(hash?: number) { export async function fetchTimezones(hash?: number) { const result = await invokeRequest(new GramJs.help.GetTimezonesList({ - hash, + hash: hash ?? DEFAULT_PRIMITIVES.INT, })); if (!result || result instanceof GramJs.help.TimezonesListNotModified) return undefined; @@ -642,6 +647,7 @@ export async function fetchTimezones(hash?: number) { export async function fetchCountryList({ langCode = 'en' }: { langCode?: string }) { const countryList = await invokeRequest(new GramJs.help.GetCountriesList({ langCode, + hash: DEFAULT_PRIMITIVES.INT, })); if (!(countryList instanceof GramJs.help.CountriesList)) { diff --git a/src/api/gramjs/methods/stars.ts b/src/api/gramjs/methods/stars.ts index 24e079ddc..bc8e31c98 100644 --- a/src/api/gramjs/methods/stars.ts +++ b/src/api/gramjs/methods/stars.ts @@ -20,7 +20,7 @@ import { buildApiStarsTransaction, buildApiStarTopupOption, } from '../apiBuilders/payments'; -import { buildInputPeer, buildInputSavedStarGift, buildInputUser } from '../gramjsBuilders'; +import { buildInputPeer, buildInputSavedStarGift, buildInputUser, DEFAULT_PRIMITIVES } from '../gramjsBuilders'; import { checkErrorType, wrapError } from '../helpers/misc'; import { invokeRequest } from './client'; import { getPassword } from './twoFaSettings'; @@ -36,7 +36,9 @@ export async function fetchStarsGiveawayOptions() { } export async function fetchStarGifts() { - const result = await invokeRequest(new GramJs.payments.GetStarGifts({})); + const result = await invokeRequest(new GramJs.payments.GetStarGifts({ + hash: DEFAULT_PRIMITIVES.INT, + })); if (!result || result instanceof GramJs.payments.StarGiftsNotModified) { return undefined; @@ -48,9 +50,9 @@ export async function fetchStarGifts() { export async function fetchResaleGifts({ giftId, - offset = '', - limit, - attributesHash = '0', + offset = DEFAULT_PRIMITIVES.STRING, + limit = DEFAULT_PRIMITIVES.INT, + attributesHash, filter, }: { giftId: string; @@ -71,12 +73,12 @@ export async function fetchResaleGifts({ giftId: bigInt(giftId), offset, limit, - attributesHash: attributesHash ? bigInt(attributesHash) : undefined, + attributesHash: attributesHash ? bigInt(attributesHash) : DEFAULT_PRIMITIVES.BIGINT, attributes: buildInputResaleGiftsAttributes(attributes), ...(filter && { sortByPrice: filter.sortType === 'byPrice' || undefined, sortByNum: filter.sortType === 'byNumber' || undefined, - } satisfies GetResaleStarGifts), + } satisfies Partial), }; const result = await invokeRequest(new GramJs.payments.GetResaleStarGifts(params)); @@ -90,8 +92,8 @@ export async function fetchResaleGifts({ export async function fetchSavedStarGifts({ peer, - offset = '', - limit, + offset = DEFAULT_PRIMITIVES.STRING, + limit = DEFAULT_PRIMITIVES.INT, filter, }: { peer: ApiPeer; @@ -112,7 +114,7 @@ export async function fetchSavedStarGifts({ excludeUnique: !filter.shouldIncludeUnique || undefined, excludeSaved: !filter.shouldIncludeDisplayed || undefined, excludeUnsaved: !filter.shouldIncludeHidden || undefined, - } satisfies GetSavedStarGiftsParams), + } satisfies Partial), }; const result = await invokeRequest(new GramJs.payments.GetSavedStarGifts(params)); @@ -188,12 +190,14 @@ export async function fetchStarsStatus() { export async function fetchStarsTransactions({ peer, - offset, + offset = DEFAULT_PRIMITIVES.STRING, + limit = DEFAULT_PRIMITIVES.INT, isInbound, isOutbound, }: { peer?: ApiPeer; offset?: string; + limit?: number; isInbound?: true; isOutbound?: true; }) { @@ -201,6 +205,7 @@ export async function fetchStarsTransactions({ const result = await invokeRequest(new GramJs.payments.GetStarsTransactions({ peer: inputPeer, offset, + limit, inbound: isInbound, outbound: isOutbound, })); @@ -240,9 +245,10 @@ export async function fetchStarsTransactionById({ } export async function fetchStarsSubscriptions({ - offset, peer, + offset = DEFAULT_PRIMITIVES.STRING, + peer, }: { - offset?: string; + offset?: string; limit?: number; peer?: ApiPeer; }) { const inputPeer = peer ? buildInputPeer(peer.id, peer.accessHash) : new GramJs.InputPeerSelf(); diff --git a/src/api/gramjs/methods/statistics.ts b/src/api/gramjs/methods/statistics.ts index f1baa093e..1a3cbff76 100644 --- a/src/api/gramjs/methods/statistics.ts +++ b/src/api/gramjs/methods/statistics.ts @@ -15,7 +15,7 @@ import { buildPostsStatistics, buildStoryPublicForwards, } from '../apiBuilders/statistics'; -import { buildInputChannel, buildInputPeer } from '../gramjsBuilders'; +import { buildInputChannel, buildInputPeer, DEFAULT_PRIMITIVES } from '../gramjsBuilders'; import { checkErrorType, wrapError } from '../helpers/misc'; import { invokeRequest } from './client'; import { getPassword } from './twoFaSettings'; @@ -103,7 +103,7 @@ export async function fetchMessagePublicForwards({ chat, messageId, dcId, - offset, + offset = DEFAULT_PRIMITIVES.STRING, }: { chat: ApiChat; messageId: number; @@ -186,7 +186,7 @@ export async function fetchStoryPublicForwards({ chat, storyId, dcId, - offset, + offset = DEFAULT_PRIMITIVES.STRING, }: { chat: ApiChat; storyId: number; diff --git a/src/api/gramjs/methods/stories.ts b/src/api/gramjs/methods/stories.ts index 653ba100b..775638f3d 100644 --- a/src/api/gramjs/methods/stories.ts +++ b/src/api/gramjs/methods/stories.ts @@ -25,6 +25,7 @@ import { buildInputPeer, buildInputPrivacyRules, buildInputReaction, + DEFAULT_PRIMITIVES, } from '../gramjsBuilders'; import { addStoryToLocalDb } from '../helpers/localDb'; import { deserializeBytes } from '../helpers/misc'; @@ -143,7 +144,8 @@ export async function fetchPeerStories({ } export function fetchPeerProfileStories({ - peer, offsetId, + peer, + offsetId = DEFAULT_PRIMITIVES.INT, }: { peer: ApiPeer; offsetId?: number; @@ -160,7 +162,7 @@ export function fetchPeerProfileStories({ export function fetchStoriesArchive({ peer, - offsetId, + offsetId = DEFAULT_PRIMITIVES.INT, }: { peer: ApiPeer; offsetId?: number; @@ -238,7 +240,7 @@ export function toggleStoryInProfile({ return invokeRequest(new GramJs.stories.TogglePinned({ peer: buildInputPeer(peer.id, peer.accessHash), id: [storyId], - pinned: isInProfile, + pinned: Boolean(isInProfile), })); } @@ -260,7 +262,7 @@ export async function fetchStoryViewList({ query, areReactionsFirst, limit = STORY_LIST_LIMIT, - offset = '', + offset = DEFAULT_PRIMITIVES.STRING, }: { peer: ApiPeer; storyId: number; diff --git a/src/api/gramjs/methods/symbols.ts b/src/api/gramjs/methods/symbols.ts index 823d2ac2d..142ff8a0e 100644 --- a/src/api/gramjs/methods/symbols.ts +++ b/src/api/gramjs/methods/symbols.ts @@ -11,13 +11,20 @@ import { buildApiEmojiStatus } from '../apiBuilders/peers'; import { buildStickerSet, buildStickerSetCovered, processStickerPackResult, processStickerResult, } from '../apiBuilders/symbols'; -import { buildInputDocument, buildInputStickerSet, buildInputStickerSetShortName } from '../gramjsBuilders'; +import { + buildInputDocument, + buildInputStickerSet, + buildInputStickerSetShortName, + DEFAULT_PRIMITIVES, +} from '../gramjsBuilders'; import localDb from '../localDb'; import { sendApiUpdate } from '../updates/apiUpdateEmitter'; import { invokeRequest } from './client'; -export async function fetchCustomEmojiSets({ hash = '0' }: { hash?: string }) { - const allStickers = await invokeRequest(new GramJs.messages.GetEmojiStickers({ hash: BigInt(hash) })); +export async function fetchCustomEmojiSets({ hash }: { hash?: string }) { + const allStickers = await invokeRequest(new GramJs.messages.GetEmojiStickers({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!allStickers || allStickers instanceof GramJs.messages.AllStickersNotModified) { return undefined; @@ -35,8 +42,10 @@ export async function fetchCustomEmojiSets({ hash = '0' }: { hash?: string }) { }; } -export async function fetchStickerSets({ hash = '0' }: { hash?: string }) { - const allStickers = await invokeRequest(new GramJs.messages.GetAllStickers({ hash: BigInt(hash) })); +export async function fetchStickerSets({ hash }: { hash?: string }) { + const allStickers = await invokeRequest(new GramJs.messages.GetAllStickers({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!allStickers || allStickers instanceof GramJs.messages.AllStickersNotModified) { return undefined; @@ -54,8 +63,10 @@ export async function fetchStickerSets({ hash = '0' }: { hash?: string }) { }; } -export async function fetchRecentStickers({ hash = '0' }: { hash?: string }) { - const result = await invokeRequest(new GramJs.messages.GetRecentStickers({ hash: BigInt(hash) })); +export async function fetchRecentStickers({ hash }: { hash?: string }) { + const result = await invokeRequest(new GramJs.messages.GetRecentStickers({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!result || result instanceof GramJs.messages.RecentStickersNotModified) { return undefined; @@ -67,8 +78,10 @@ export async function fetchRecentStickers({ hash = '0' }: { hash?: string }) { }; } -export async function fetchFavoriteStickers({ hash = '0' }: { hash?: string }) { - const result = await invokeRequest(new GramJs.messages.GetFavedStickers({ hash: BigInt(hash) })); +export async function fetchFavoriteStickers({ hash }: { hash?: string }) { + const result = await invokeRequest(new GramJs.messages.GetFavedStickers({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!result || result instanceof GramJs.messages.FavedStickersNotModified) { return undefined; @@ -80,8 +93,10 @@ export async function fetchFavoriteStickers({ hash = '0' }: { hash?: string }) { }; } -export async function fetchFeaturedStickers({ hash = '0' }: { hash?: string }) { - const result = await invokeRequest(new GramJs.messages.GetFeaturedStickers({ hash: BigInt(hash) })); +export async function fetchFeaturedStickers({ hash }: { hash?: string }) { + const result = await invokeRequest(new GramJs.messages.GetFeaturedStickers({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!result || result instanceof GramJs.messages.FeaturedStickersNotModified) { return undefined; @@ -120,9 +135,11 @@ export async function faveSticker({ sticker: ApiSticker; unfave?: boolean; }) { + const id = buildInputDocument(sticker); + if (!id) return; const request = new GramJs.messages.FaveSticker({ - id: buildInputDocument(sticker), - unfave, + id, + unfave: Boolean(unfave), }); const result = await invokeRequest(request); @@ -138,8 +155,10 @@ export function removeRecentSticker({ }: { sticker: ApiSticker; }) { + const id = buildInputDocument(sticker); + if (!id) return; const request = new GramJs.messages.SaveRecentSticker({ - id: buildInputDocument(sticker), + id, unsave: true, }); @@ -155,10 +174,13 @@ export async function fetchStickers( { stickerSetInfo: ApiStickerSetInfo }, ) { if ('isMissing' in stickerSetInfo) return undefined; + const inputStickerSet = 'id' in stickerSetInfo + ? buildInputStickerSet(stickerSetInfo.id, stickerSetInfo.accessHash) + : buildInputStickerSetShortName(stickerSetInfo.shortName); + const result = await invokeRequest(new GramJs.messages.GetStickerSet({ - stickerset: 'id' in stickerSetInfo - ? buildInputStickerSet(stickerSetInfo.id, stickerSetInfo.accessHash) - : buildInputStickerSetShortName(stickerSetInfo.shortName), + stickerset: inputStickerSet, + hash: DEFAULT_PRIMITIVES.INT, }), { shouldThrow: true, }); @@ -189,6 +211,7 @@ export async function fetchCustomEmoji({ documentId }: { documentId: string[] }) export async function fetchAnimatedEmojis() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetAnimatedEmoji(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -204,6 +227,7 @@ export async function fetchAnimatedEmojis() { export async function fetchAnimatedEmojiEffects() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetAnimatedEmojiAnimations(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -219,6 +243,7 @@ export async function fetchAnimatedEmojiEffects() { export async function fetchGenericEmojiEffects() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetEmojiGenericAnimations(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -234,6 +259,7 @@ export async function fetchGenericEmojiEffects() { export async function fetchPremiumGifts() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetPremiumGifts(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -249,6 +275,7 @@ export async function fetchPremiumGifts() { export async function fetchDefaultTopicIcons() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetEmojiDefaultTopicIcons(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -264,6 +291,7 @@ export async function fetchDefaultTopicIcons() { export async function fetchDefaultStatusEmojis() { const result = await invokeRequest(new GramJs.messages.GetStickerSet({ stickerset: new GramJs.InputStickerSetEmojiDefaultStatuses(), + hash: DEFAULT_PRIMITIVES.INT, })); if (!(result instanceof GramJs.messages.StickerSet)) { @@ -276,9 +304,9 @@ export async function fetchDefaultStatusEmojis() { }; } -export async function fetchCollectibleEmojiStatuses({ hash = '0' }: { hash?: string }) { +export async function fetchCollectibleEmojiStatuses({ hash }: { hash?: string }) { const result = await invokeRequest(new GramJs.account.GetCollectibleEmojiStatuses( - { hash: BigInt(hash) }, + { hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT }, )); if (!(result instanceof GramJs.account.EmojiStatuses)) { @@ -293,10 +321,10 @@ export async function fetchCollectibleEmojiStatuses({ hash = '0' }: { hash?: str }; } -export async function searchStickers({ query, hash = '0' }: { query: string; hash?: string }) { +export async function searchStickers({ query, hash }: { query: string; hash?: string }) { const result = await invokeRequest(new GramJs.messages.SearchStickerSets({ q: query, - hash: BigInt(hash), + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, })); if (!result || result instanceof GramJs.messages.FoundStickerSetsNotModified) { @@ -309,8 +337,10 @@ export async function searchStickers({ query, hash = '0' }: { query: string; has }; } -export async function fetchSavedGifs({ hash = '0' }: { hash?: string }) { - const result = await invokeRequest(new GramJs.messages.GetSavedGifs({ hash: BigInt(hash) })); +export async function fetchSavedGifs({ hash }: { hash?: string }) { + const result = await invokeRequest(new GramJs.messages.GetSavedGifs({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!result || result instanceof GramJs.messages.SavedGifsNotModified) { return undefined; @@ -323,9 +353,11 @@ export async function fetchSavedGifs({ hash = '0' }: { hash?: string }) { } export function saveGif({ gif, shouldUnsave }: { gif: ApiVideo; shouldUnsave?: boolean }) { + const id = buildInputDocument(gif); + if (!id) return; const request = new GramJs.messages.SaveGif({ - id: buildInputDocument(gif), - unsave: shouldUnsave, + id, + unsave: Boolean(shouldUnsave), }); return invokeRequest(request, { shouldReturnTrue: true }); @@ -334,6 +366,7 @@ export function saveGif({ gif, shouldUnsave }: { gif: ApiVideo; shouldUnsave?: b export async function installStickerSet({ stickerSetId, accessHash }: { stickerSetId: string; accessHash: string }) { const result = await invokeRequest(new GramJs.messages.InstallStickerSet({ stickerset: buildInputStickerSet(stickerSetId, accessHash), + archived: false, })); if (result) { @@ -363,7 +396,7 @@ let inputGifBot: GramJs.InputUser | undefined; export async function searchGifs({ query, - offset = '', + offset = DEFAULT_PRIMITIVES.STRING, username = DEFAULT_GIF_SEARCH_BOT_USERNAME, }: { query: string; offset?: string; username?: string }) { if (!inputGifBot) { @@ -407,11 +440,11 @@ export async function searchGifs({ } export async function fetchStickersForEmoji({ - emoji, hash = '0', + emoji, hash, }: { emoji: string; hash?: string }) { const result = await invokeRequest(new GramJs.messages.GetStickers({ emoticon: emoji, - hash: BigInt(hash), + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, })); if (!result || result instanceof GramJs.messages.StickersNotModified) { @@ -424,7 +457,10 @@ export async function fetchStickersForEmoji({ }; } -export async function fetchEmojiKeywords({ language, fromVersion }: { +export async function fetchEmojiKeywords({ + language, + fromVersion = DEFAULT_PRIMITIVES.INT, +}: { language: string; fromVersion?: number; }) { @@ -448,8 +484,10 @@ export async function fetchEmojiKeywords({ language, fromVersion }: { }; } -export async function fetchRecentEmojiStatuses(hash = '0') { - const result = await invokeRequest(new GramJs.account.GetRecentEmojiStatuses({ hash: BigInt(hash) })); +export async function fetchRecentEmojiStatuses(hash?: string) { + const result = await invokeRequest(new GramJs.account.GetRecentEmojiStatuses({ + hash: hash ? BigInt(hash) : DEFAULT_PRIMITIVES.BIGINT, + })); if (!result || result instanceof GramJs.account.EmojiStatusesNotModified) { return undefined; diff --git a/src/api/gramjs/methods/users.ts b/src/api/gramjs/methods/users.ts index ef760254d..fcd50504e 100644 --- a/src/api/gramjs/methods/users.ts +++ b/src/api/gramjs/methods/users.ts @@ -14,6 +14,7 @@ import { buildInputPeer, buildInputUser, buildMtpPeerId, + DEFAULT_PRIMITIVES, getEntityTypeById, } from '../gramjsBuilders'; import { addPhotoToLocalDb, addUserToLocalDb } from '../helpers/localDb'; @@ -88,7 +89,9 @@ export async function fetchFullUser({ export async function fetchCommonChats(user: ApiUser, maxId?: string) { const result = await invokeRequest(new GramJs.messages.GetCommonChats({ userId: buildInputUser(user.id, user.accessHash), - maxId: maxId ? buildMtpPeerId(maxId, getEntityTypeById(maxId)) : undefined, + maxId: maxId + ? buildMtpPeerId(maxId, getEntityTypeById(maxId)) : DEFAULT_PRIMITIVES.BIGINT, + limit: DEFAULT_PRIMITIVES.INT, })); if (!result) { @@ -127,6 +130,9 @@ export async function fetchNearestCountry() { export async function fetchTopUsers() { const topPeers = await invokeRequest(new GramJs.contacts.GetTopPeers({ correspondents: true, + offset: DEFAULT_PRIMITIVES.INT, + limit: DEFAULT_PRIMITIVES.INT, + hash: DEFAULT_PRIMITIVES.BIGINT, })); if (!(topPeers instanceof GramJs.contacts.TopPeers)) { return undefined; @@ -173,9 +179,9 @@ export async function fetchUsers({ users }: { users: ApiUser[] }) { } export async function importContact({ - phone, - firstName, - lastName, + phone = DEFAULT_PRIMITIVES.STRING, + firstName = DEFAULT_PRIMITIVES.STRING, + lastName = DEFAULT_PRIMITIVES.STRING, }: { phone?: string; firstName?: string; @@ -183,9 +189,9 @@ export async function importContact({ }) { const result = await invokeRequest(new GramJs.contacts.ImportContacts({ contacts: [buildInputContact({ - phone: phone || '', - firstName: firstName || '', - lastName: lastName || '', + phone, + firstName, + lastName, })], })); @@ -199,9 +205,9 @@ export async function importContact({ export function updateContact({ id, accessHash, - phoneNumber = '', - firstName = '', - lastName = '', + phoneNumber = DEFAULT_PRIMITIVES.STRING, + firstName = DEFAULT_PRIMITIVES.STRING, + lastName = DEFAULT_PRIMITIVES.STRING, shouldSharePhoneNumber = false, }: { id: string; diff --git a/src/api/types/chats.ts b/src/api/types/chats.ts index eea3a5f3d..315ece68e 100644 --- a/src/api/types/chats.ts +++ b/src/api/types/chats.ts @@ -48,6 +48,7 @@ export interface ApiChat { isForum?: boolean; isForumAsMessages?: true; isMonoforum?: boolean; + withForumTabs?: boolean; linkedMonoforumId?: string; areChannelMessagesAllowed?: boolean; boostLevel?: number; diff --git a/src/lib/gramjs/client/auth.ts b/src/lib/gramjs/client/auth.ts index 92d7db194..9eea9d17a 100644 --- a/src/lib/gramjs/client/auth.ts +++ b/src/lib/gramjs/client/auth.ts @@ -4,6 +4,7 @@ import type TelegramClient from './TelegramClient'; import type { Update } from './TelegramClient'; import { getServerTime } from '../../../util/serverTime'; +import { DEFAULT_PRIMITIVES } from '../../../api/gramjs/gramjsBuilders'; import { RPCError } from '../errors'; import Api from '../tl/api'; @@ -84,7 +85,7 @@ async function signInUserWithWebToken( try { const { apiId, apiHash } = apiCredentials; const sendResult = await client.invoke(new Api.auth.ImportWebTokenAuthorization({ - webAuthToken: authParams.webAuthToken, + webAuthToken: authParams.webAuthToken!, apiId, apiHash, })); @@ -208,7 +209,7 @@ async function signInUser( phoneNumber, phoneCodeHash, firstName, - lastName, + lastName: lastName || DEFAULT_PRIMITIVES.STRING, })) as Api.auth.Authorization; if (termsOfService) { @@ -232,6 +233,8 @@ async function signInUserWithQrCode( ): Promise { let isScanningComplete = false; + const { apiId, apiHash } = apiCredentials; + const inputPromise = (async () => { // eslint-disable-next-line no-constant-condition while (1) { @@ -240,8 +243,8 @@ async function signInUserWithQrCode( } const result = await client.invoke(new Api.auth.ExportLoginToken({ - apiId: Number(process.env.TELEGRAM_API_ID), - apiHash: process.env.TELEGRAM_API_HASH, + apiId, + apiHash, exceptIds: authParams.accountIds?.map((id) => bigInt(id)) || [], })); if (!(result instanceof Api.auth.LoginToken)) { @@ -281,8 +284,8 @@ async function signInUserWithQrCode( try { const result2 = await client.invoke(new Api.auth.ExportLoginToken({ - apiId: Number(process.env.TELEGRAM_API_ID), - apiHash: process.env.TELEGRAM_API_HASH, + apiId, + apiHash, exceptIds: authParams.accountIds?.map((id) => bigInt(id)) || [], })); diff --git a/src/lib/gramjs/tl/api.d.ts b/src/lib/gramjs/tl/api.d.ts index c7c96393c..49df37610 100644 --- a/src/lib/gramjs/tl/api.d.ts +++ b/src/lib/gramjs/tl/api.d.ts @@ -43,7 +43,7 @@ namespace Api { constructor(args: Args); } - class Request extends VirtualClass> { + class Request extends VirtualClass { static readResult(reader: Reader): Buffer; __response: Response; @@ -21975,21 +21975,21 @@ namespace Api { } } - export class InvokeAfterMsg extends Request, X> { + }, X> { msgId: long; query: X; } - export class InvokeAfterMsgs extends Request, X> { + }, X> { msgIds: long[]; query: X; } - export class InitConnection extends Request, X> { + }, X> { // flags: Api.Type; apiId: int; deviceModel: string; @@ -22014,87 +22014,87 @@ namespace Api { params?: Api.TypeJSONValue; query: X; } - export class InvokeWithLayer extends Request, X> { + }, X> { layer: int; query: X; } - export class InvokeWithoutUpdates extends Request, X> { + }, X> { query: X; } - export class InvokeWithMessagesRange extends Request, X> { + }, X> { range: Api.TypeMessageRange; query: X; } - export class InvokeWithTakeout extends Request, X> { + }, X> { takeoutId: long; query: X; } - export class InvokeWithBusinessConnection extends Request, X> { + }, X> { connectionId: string; query: X; } - export class InvokeWithGooglePlayIntegrity extends Request, X> { + }, X> { nonce: string; token: string; query: X; } - export class InvokeWithApnsSecret extends Request, X> { + }, X> { nonce: string; secret: string; query: X; } - export class InvokeWithReCaptcha extends Request, X> { + }, X> { token: string; query: X; } - export class ReqPq extends Request, Api.TypeResPQ> { + }, Api.TypeResPQ> { nonce: int128; } - export class ReqPqMulti extends Request, Api.TypeResPQ> { + }, Api.TypeResPQ> { nonce: int128; } - export class ReqPqMultiNew extends Request, Api.TypeResPQ> { + }, Api.TypeResPQ> { nonce: int128; } - export class ReqDHParams extends Request, Api.TypeServer_DH_Params> { + }, Api.TypeServer_DH_Params> { nonce: int128; serverNonce: int128; p: bytes; @@ -22102,65 +22102,65 @@ namespace Api { publicKeyFingerprint: long; encryptedData: bytes; } - export class SetClientDHParams extends Request, Api.TypeSet_client_DH_params_answer> { + }, Api.TypeSet_client_DH_params_answer> { nonce: int128; serverNonce: int128; encryptedData: bytes; } export class DestroyAuthKey extends Request {} - export class RpcDropAnswer extends Request, Api.TypeRpcDropAnswer> { + }, Api.TypeRpcDropAnswer> { reqMsgId: long; } - export class GetFutureSalts extends Request, Api.TypeFutureSalts> { + }, Api.TypeFutureSalts> { num: int; } - export class Ping extends Request, Api.TypePong> { + }, Api.TypePong> { pingId: long; } - export class PingDelayDisconnect extends Request, Api.TypePong> { + }, Api.TypePong> { pingId: long; disconnectDelay: int; } - export class DestroySession extends Request, Api.TypeDestroySessionRes> { + }, Api.TypeDestroySessionRes> { sessionId: long; } export namespace auth { - export class SendCode extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { phoneNumber: string; apiId: int; apiHash: string; settings: Api.TypeCodeSettings; } - export class SignUp extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { // flags: Api.Type; noJoinedNotifications?: true; phoneNumber: string; @@ -22168,13 +22168,13 @@ namespace Api { firstName: string; lastName: string; } - export class SignIn extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { // flags: Api.Type; phoneNumber: string; phoneCodeHash: string; @@ -22183,119 +22183,119 @@ namespace Api { } export class LogOut extends Request {} export class ResetAuthorizations extends Request {} - export class ExportAuthorization extends Request, auth.TypeExportedAuthorization> { + }, auth.TypeExportedAuthorization> { dcId: int; } - export class ImportAuthorization extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { id: long; bytes: bytes; } - export class BindTempAuthKey extends Request, Bool> { + }, Bool> { permAuthKeyId: long; nonce: long; expiresAt: int; encryptedMessage: bytes; } - export class ImportBotAuthorization extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { // flags: int; apiId: int; apiHash: string; botAuthToken: string; } - export class CheckPassword extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { password: Api.TypeInputCheckPasswordSRP; } export class RequestPasswordRecovery extends Request {} - export class RecoverPassword extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { // flags: Api.Type; code: string; newSettings?: account.TypePasswordInputSettings; } - export class ResendCode extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { // flags: Api.Type; phoneNumber: string; phoneCodeHash: string; reason?: string; } - export class CancelCode extends Request, Bool> { + }, Bool> { phoneNumber: string; phoneCodeHash: string; } - export class DropTempAuthKeys extends Request, Bool> { + }, Bool> { exceptAuthKeys: long[]; } - export class ExportLoginToken extends Request, auth.TypeLoginToken> { + }, auth.TypeLoginToken> { apiId: int; apiHash: string; exceptIds: long[]; } - export class ImportLoginToken extends Request, auth.TypeLoginToken> { + }, auth.TypeLoginToken> { token: bytes; } - export class AcceptLoginToken extends Request, Api.TypeAuthorization> { + }, Api.TypeAuthorization> { token: bytes; } - export class CheckRecoveryPassword extends Request, Bool> { + }, Bool> { code: string; } - export class ImportWebTokenAuthorization extends Request, auth.TypeAuthorization> { + }, auth.TypeAuthorization> { apiId: int; apiHash: string; webAuthToken: string; } - export class RequestFirebaseSms extends Request, Bool> { + }, Bool> { // flags: Api.Type; phoneNumber: string; phoneCodeHash: string; @@ -22303,18 +22303,18 @@ namespace Api { playIntegrityToken?: string; iosPushSecret?: string; } - export class ResetLoginEmail extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { phoneNumber: string; phoneCodeHash: string; } - export class ReportMissingCode extends Request, Bool> { + }, Bool> { phoneNumber: string; phoneCodeHash: string; mnc: string; @@ -22322,7 +22322,7 @@ namespace Api { } export namespace account { - export class RegisterDevice extends Request, Bool> { + }, Bool> { // flags: Api.Type; noMuted?: true; tokenType: int; @@ -22339,234 +22339,234 @@ namespace Api { secret: bytes; otherUids: long[]; } - export class UnregisterDevice extends Request, Bool> { + }, Bool> { tokenType: int; token: string; otherUids: long[]; } - export class UpdateNotifySettings extends Request, Bool> { + }, Bool> { peer: Api.TypeInputNotifyPeer; settings: Api.TypeInputPeerNotifySettings; } - export class GetNotifySettings extends Request, Api.TypePeerNotifySettings> { + }, Api.TypePeerNotifySettings> { peer: Api.TypeInputNotifyPeer; } export class ResetNotifySettings extends Request {} - export class UpdateProfile extends Request, Api.TypeUser> { + } | void, Api.TypeUser> { // flags: Api.Type; firstName?: string; lastName?: string; about?: string; } - export class UpdateStatus extends Request, Bool> { + }, Bool> { offline: Bool; } - export class GetWallPapers extends Request, account.TypeWallPapers> { + }, account.TypeWallPapers> { hash: long; } - export class ReportPeer extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; reason: Api.TypeReportReason; message: string; } - export class CheckUsername extends Request, Bool> { + }, Bool> { username: string; } - export class UpdateUsername extends Request, Api.TypeUser> { + }, Api.TypeUser> { username: string; } - export class GetPrivacy extends Request, account.TypePrivacyRules> { + }, account.TypePrivacyRules> { key: Api.TypeInputPrivacyKey; } - export class SetPrivacy extends Request, account.TypePrivacyRules> { + }, account.TypePrivacyRules> { key: Api.TypeInputPrivacyKey; rules: Api.TypeInputPrivacyRule[]; } - export class DeleteAccount extends Request, Bool> { + }, Bool> { // flags: Api.Type; reason: string; password?: Api.TypeInputCheckPasswordSRP; } export class GetAccountTTL extends Request {} - export class SetAccountTTL extends Request, Bool> { + }, Bool> { ttl: Api.TypeAccountDaysTTL; } - export class SendChangePhoneCode extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { phoneNumber: string; settings: Api.TypeCodeSettings; } - export class ChangePhone extends Request, Api.TypeUser> { + }, Api.TypeUser> { phoneNumber: string; phoneCodeHash: string; phoneCode: string; } - export class UpdateDeviceLocked extends Request, Bool> { + }, Bool> { period: int; } export class GetAuthorizations extends Request {} - export class ResetAuthorization extends Request, Bool> { + }, Bool> { hash: long; } export class GetPassword extends Request {} - export class GetPasswordSettings extends Request, account.TypePasswordSettings> { + }, account.TypePasswordSettings> { password: Api.TypeInputCheckPasswordSRP; } - export class UpdatePasswordSettings extends Request, Bool> { + }, Bool> { password: Api.TypeInputCheckPasswordSRP; newSettings: account.TypePasswordInputSettings; } - export class SendConfirmPhoneCode extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { hash: string; settings: Api.TypeCodeSettings; } - export class ConfirmPhone extends Request, Bool> { + }, Bool> { phoneCodeHash: string; phoneCode: string; } - export class GetTmpPassword extends Request, account.TypeTmpPassword> { + }, account.TypeTmpPassword> { password: Api.TypeInputCheckPasswordSRP; period: int; } export class GetWebAuthorizations extends Request {} - export class ResetWebAuthorization extends Request, Bool> { + }, Bool> { hash: long; } export class ResetWebAuthorizations extends Request {} export class GetAllSecureValues extends Request {} - export class GetSecureValue extends Request, Api.TypeSecureValue[]> { + }, Api.TypeSecureValue[]> { types: Api.TypeSecureValueType[]; } - export class SaveSecureValue extends Request, Api.TypeSecureValue> { + }, Api.TypeSecureValue> { value: Api.TypeInputSecureValue; secureSecretId: long; } - export class DeleteSecureValue extends Request, Bool> { + }, Bool> { types: Api.TypeSecureValueType[]; } - export class GetAuthorizationForm extends Request, account.TypeAuthorizationForm> { + }, account.TypeAuthorizationForm> { botId: long; scope: string; publicKey: string; } - export class AcceptAuthorization extends Request, Bool> { + }, Bool> { botId: long; scope: string; publicKey: string; valueHashes: Api.TypeSecureValueHash[]; credentials: Api.TypeSecureCredentialsEncrypted; } - export class SendVerifyPhoneCode extends Request, auth.TypeSentCode> { + }, auth.TypeSentCode> { phoneNumber: string; settings: Api.TypeCodeSettings; } - export class VerifyPhone extends Request, Bool> { + }, Bool> { phoneNumber: string; phoneCodeHash: string; phoneCode: string; } - export class SendVerifyEmailCode extends Request, account.TypeSentEmailCode> { + }, account.TypeSentEmailCode> { purpose: Api.TypeEmailVerifyPurpose; email: string; } - export class VerifyEmail extends Request, account.TypeEmailVerified> { + }, account.TypeEmailVerified> { purpose: Api.TypeEmailVerifyPurpose; verification: Api.TypeEmailVerification; } - export class InitTakeoutSession extends Request, account.TypeTakeout> { + } | void, account.TypeTakeout> { // flags: Api.Type; contacts?: true; messageUsers?: true; @@ -22585,111 +22585,111 @@ namespace Api { files?: true; fileMaxSize?: long; } - export class FinishTakeoutSession extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; success?: true; } - export class ConfirmPasswordEmail extends Request, Bool> { + }, Bool> { code: string; } export class ResendPasswordEmail extends Request {} export class CancelPasswordEmail extends Request {} export class GetContactSignUpNotification extends Request {} - export class SetContactSignUpNotification extends Request, Bool> { + }, Bool> { silent: Bool; } - export class GetNotifyExceptions extends Request, Api.TypeUpdates> { + } | void, Api.TypeUpdates> { // flags: Api.Type; compareSound?: true; compareStories?: true; peer?: Api.TypeInputNotifyPeer; } - export class GetWallPaper extends Request, Api.TypeWallPaper> { + }, Api.TypeWallPaper> { wallpaper: Api.TypeInputWallPaper; } - export class UploadWallPaper extends Request, Api.TypeWallPaper> { + }, Api.TypeWallPaper> { // flags: Api.Type; forChat?: true; file: Api.TypeInputFile; mimeType: string; settings: Api.TypeWallPaperSettings; } - export class SaveWallPaper extends Request, Bool> { + }, Bool> { wallpaper: Api.TypeInputWallPaper; unsave: Bool; settings: Api.TypeWallPaperSettings; } - export class InstallWallPaper extends Request, Bool> { + }, Bool> { wallpaper: Api.TypeInputWallPaper; settings: Api.TypeWallPaperSettings; } export class ResetWallPapers extends Request {} export class GetAutoDownloadSettings extends Request {} - export class SaveAutoDownloadSettings extends Request, Bool> { + }, Bool> { // flags: Api.Type; low?: true; high?: true; settings: Api.TypeAutoDownloadSettings; } - export class UploadTheme extends Request, Api.TypeDocument> { + }, Api.TypeDocument> { // flags: Api.Type; file: Api.TypeInputFile; thumb?: Api.TypeInputFile; fileName: string; mimeType: string; } - export class CreateTheme extends Request, Api.TypeTheme> { + }, Api.TypeTheme> { // flags: Api.Type; slug: string; title: string; document?: Api.TypeInputDocument; settings?: Api.TypeInputThemeSettings[]; } - export class UpdateTheme extends Request, Api.TypeTheme> { + }, Api.TypeTheme> { // flags: Api.Type; format: string; theme: Api.TypeInputTheme; @@ -22706,65 +22706,65 @@ namespace Api { document?: Api.TypeInputDocument; settings?: Api.TypeInputThemeSettings[]; } - export class SaveTheme extends Request, Bool> { + }, Bool> { theme: Api.TypeInputTheme; unsave: Bool; } - export class InstallTheme extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; dark?: true; theme?: Api.TypeInputTheme; format?: string; baseTheme?: Api.TypeBaseTheme; } - export class GetTheme extends Request, Api.TypeTheme> { + }, Api.TypeTheme> { format: string; theme: Api.TypeInputTheme; } - export class GetThemes extends Request, account.TypeThemes> { + }, account.TypeThemes> { format: string; hash: long; } - export class SetContentSettings extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; sensitiveEnabled?: true; } export class GetContentSettings extends Request {} - export class GetMultiWallPapers extends Request, Api.TypeWallPaper[]> { + }, Api.TypeWallPaper[]> { wallpapers: Api.TypeInputWallPaper[]; } export class GetGlobalPrivacySettings extends Request {} - export class SetGlobalPrivacySettings extends Request, Api.TypeGlobalPrivacySettings> { + }, Api.TypeGlobalPrivacySettings> { settings: Api.TypeGlobalPrivacySettings; } - export class ReportProfilePhoto extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; photoId: Api.TypeInputPhoto; reason: Api.TypeReportReason; @@ -22772,97 +22772,97 @@ namespace Api { } export class ResetPassword extends Request {} export class DeclinePasswordReset extends Request {} - export class GetChatThemes extends Request, account.TypeThemes> { + }, account.TypeThemes> { hash: long; } - export class SetAuthorizationTTL extends Request, Bool> { + }, Bool> { authorizationTtlDays: int; } - export class ChangeAuthorizationSettings extends Request, Bool> { + }, Bool> { // flags: Api.Type; confirmed?: true; hash: long; encryptedRequestsDisabled?: Bool; callRequestsDisabled?: Bool; } - export class GetSavedRingtones extends Request, account.TypeSavedRingtones> { + }, account.TypeSavedRingtones> { hash: long; } - export class SaveRingtone extends Request, account.TypeSavedRingtone> { + }, account.TypeSavedRingtone> { id: Api.TypeInputDocument; unsave: Bool; } - export class UploadRingtone extends Request, Api.TypeDocument> { + }, Api.TypeDocument> { file: Api.TypeInputFile; fileName: string; mimeType: string; } - export class UpdateEmojiStatus extends Request, Bool> { + }, Bool> { emojiStatus: Api.TypeEmojiStatus; } - export class GetDefaultEmojiStatuses extends Request, account.TypeEmojiStatuses> { + }, account.TypeEmojiStatuses> { hash: long; } - export class GetRecentEmojiStatuses extends Request, account.TypeEmojiStatuses> { + }, account.TypeEmojiStatuses> { hash: long; } export class ClearRecentEmojiStatuses extends Request {} - export class ReorderUsernames extends Request, Bool> { + }, Bool> { order: string[]; } - export class ToggleUsername extends Request, Bool> { + }, Bool> { username: string; active: Bool; } - export class GetDefaultProfilePhotoEmojis extends Request, Api.TypeEmojiList> { + }, Api.TypeEmojiList> { hash: long; } - export class GetDefaultGroupPhotoEmojis extends Request, Api.TypeEmojiList> { + }, Api.TypeEmojiList> { hash: long; } export class GetAutoSaveSettings extends Request {} - export class SaveAutoSaveSettings extends Request, Bool> { + }, Bool> { // flags: Api.Type; users?: true; chats?: true; @@ -22871,74 +22871,74 @@ namespace Api { settings: Api.TypeAutoSaveSettings; } export class DeleteAutoSaveExceptions extends Request {} - export class InvalidateSignInCodes extends Request, Bool> { + }, Bool> { codes: string[]; } - export class UpdateColor extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; forProfile?: true; color?: int; backgroundEmojiId?: long; } - export class GetDefaultBackgroundEmojis extends Request, Api.TypeEmojiList> { + }, Api.TypeEmojiList> { hash: long; } - export class GetChannelDefaultEmojiStatuses extends Request, account.TypeEmojiStatuses> { + }, account.TypeEmojiStatuses> { hash: long; } - export class GetChannelRestrictedStatusEmojis extends Request, Api.TypeEmojiList> { + }, Api.TypeEmojiList> { hash: long; } - export class UpdateBusinessWorkHours extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; businessWorkHours?: Api.TypeBusinessWorkHours; } - export class UpdateBusinessLocation extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; geoPoint?: Api.TypeInputGeoPoint; address?: string; } - export class UpdateBusinessGreetingMessage extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; message?: Api.TypeInputBusinessGreetingMessage; } - export class UpdateBusinessAwayMessage extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; message?: Api.TypeInputBusinessAwayMessage; } - export class UpdateConnectedBot extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; deleted?: true; rights?: Api.TypeBusinessBotRights; @@ -22946,195 +22946,195 @@ namespace Api { recipients: Api.TypeInputBusinessBotRecipients; } export class GetConnectedBots extends Request {} - export class GetBotBusinessConnection extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { connectionId: string; } - export class UpdateBusinessIntro extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; intro?: Api.TypeInputBusinessIntro; } - export class ToggleConnectedBotPaused extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; paused: Bool; } - export class DisablePeerConnectedBot extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; } - export class UpdateBirthday extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; birthday?: Api.TypeBirthday; } - export class CreateBusinessChatLink extends Request, Api.TypeBusinessChatLink> { + }, Api.TypeBusinessChatLink> { link: Api.TypeInputBusinessChatLink; } - export class EditBusinessChatLink extends Request, Api.TypeBusinessChatLink> { + }, Api.TypeBusinessChatLink> { slug: string; link: Api.TypeInputBusinessChatLink; } - export class DeleteBusinessChatLink extends Request, Bool> { + }, Bool> { slug: string; } export class GetBusinessChatLinks extends Request {} - export class ResolveBusinessChatLink extends Request, account.TypeResolvedBusinessChatLinks> { + }, account.TypeResolvedBusinessChatLinks> { slug: string; } - export class UpdatePersonalChannel extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; } - export class ToggleSponsoredMessages extends Request, Bool> { + }, Bool> { enabled: Bool; } export class GetReactionsNotifySettings extends Request {} - export class SetReactionsNotifySettings extends Request, Api.TypeReactionsNotifySettings> { + }, Api.TypeReactionsNotifySettings> { settings: Api.TypeReactionsNotifySettings; } - export class GetCollectibleEmojiStatuses extends Request, account.TypeEmojiStatuses> { + }, account.TypeEmojiStatuses> { hash: long; } - export class AddNoPaidMessagesException extends Request, Bool> { + }, Bool> { // flags: Api.Type; refundCharged?: true; userId: Api.TypeInputUser; } - export class GetPaidMessagesRevenue extends Request, account.TypePaidMessagesRevenue> { + }, account.TypePaidMessagesRevenue> { userId: Api.TypeInputUser; } } export namespace users { - export class GetUsers extends Request, Api.TypeUser[]> { + }, Api.TypeUser[]> { id: Api.TypeInputUser[]; } - export class GetFullUser extends Request, users.TypeUserFull> { + }, users.TypeUserFull> { id: Api.TypeInputUser; } - export class SetSecureValueErrors extends Request, Bool> { + }, Bool> { id: Api.TypeInputUser; errors: Api.TypeSecureValueError[]; } - export class GetRequirementsToContact extends Request, Api.TypeRequirementToContact[]> { + }, Api.TypeRequirementToContact[]> { id: Api.TypeInputUser[]; } } export namespace contacts { - export class GetContactIDs extends Request, int[]> { + }, int[]> { hash: long; } export class GetStatuses extends Request {} - export class GetContacts extends Request, contacts.TypeContacts> { + }, contacts.TypeContacts> { hash: long; } - export class ImportContacts extends Request, contacts.TypeImportedContacts> { + }, contacts.TypeImportedContacts> { contacts: Api.TypeInputContact[]; } - export class DeleteContacts extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { id: Api.TypeInputUser[]; } - export class DeleteByPhones extends Request, Bool> { + }, Bool> { phones: string[]; } - export class Block extends Request, Bool> { + }, Bool> { // flags: Api.Type; myStoriesFrom?: true; id: Api.TypeInputPeer; } - export class Unblock extends Request, Bool> { + }, Bool> { // flags: Api.Type; myStoriesFrom?: true; id: Api.TypeInputPeer; } - export class GetBlocked extends Request, contacts.TypeBlocked> { + }, contacts.TypeBlocked> { // flags: Api.Type; myStoriesFrom?: true; offset: int; limit: int; } - export class Search extends Request, contacts.TypeFound> { + }, contacts.TypeFound> { q: string; limit: int; } - export class ResolveUsername extends Request, contacts.TypeResolvedPeer> { + }, contacts.TypeResolvedPeer> { // flags: Api.Type; username: string; referer?: string; } - export class GetTopPeers extends Request, contacts.TypeTopPeers> { + }, contacts.TypeTopPeers> { // flags: Api.Type; correspondents?: true; botsPm?: true; @@ -23163,28 +23163,28 @@ namespace Api { limit: int; hash: long; } - export class ResetTopPeerRating extends Request, Bool> { + }, Bool> { category: Api.TypeTopPeerCategory; peer: Api.TypeInputPeer; } export class ResetSaved extends Request {} export class GetSaved extends Request {} - export class ToggleTopPeers extends Request, Bool> { + }, Bool> { enabled: Bool; } - export class AddContact extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; addPhonePrivacyException?: true; id: Api.TypeInputUser; @@ -23192,77 +23192,77 @@ namespace Api { lastName: string; phone: string; } - export class AcceptContact extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { id: Api.TypeInputUser; } - export class GetLocated extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; background?: true; geoPoint: Api.TypeInputGeoPoint; selfExpires?: int; } - export class BlockFromReplies extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; deleteMessage?: true; deleteHistory?: true; reportSpam?: true; msgId: int; } - export class ResolvePhone extends Request, contacts.TypeResolvedPeer> { + }, contacts.TypeResolvedPeer> { phone: string; } export class ExportContactToken extends Request {} - export class ImportContactToken extends Request, Api.TypeUser> { + }, Api.TypeUser> { token: string; } - export class EditCloseFriends extends Request, Bool> { + }, Bool> { id: long[]; } - export class SetBlocked extends Request, Bool> { + }, Bool> { // flags: Api.Type; myStoriesFrom?: true; id: Api.TypeInputPeer[]; limit: int; } export class GetBirthdays extends Request {} - export class GetSponsoredPeers extends Request, contacts.TypeSponsoredPeers> { + }, contacts.TypeSponsoredPeers> { q: string; } } export namespace messages { - export class GetMessages extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { id: Api.TypeInputMessage[]; } - export class GetDialogs extends Request, messages.TypeDialogs> { + }, messages.TypeDialogs> { // flags: Api.Type; excludePinned?: true; folderId?: int; @@ -23281,7 +23281,7 @@ namespace Api { limit: int; hash: long; } - export class GetHistory extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { peer: Api.TypeInputPeer; offsetId: int; offsetDate: int; @@ -23300,7 +23300,7 @@ namespace Api { minId: int; hash: long; } - export class Search extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; peer: Api.TypeInputPeer; q: string; @@ -23335,14 +23335,14 @@ namespace Api { minId: int; hash: long; } - export class ReadHistory extends Request, messages.TypeAffectedMessages> { + }, messages.TypeAffectedMessages> { peer: Api.TypeInputPeer; maxId: int; } - export class DeleteHistory extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { // flags: Api.Type; justClear?: true; revoke?: true; @@ -23359,32 +23359,32 @@ namespace Api { minDate?: int; maxDate?: int; } - export class DeleteMessages extends Request, messages.TypeAffectedMessages> { + }, messages.TypeAffectedMessages> { // flags: Api.Type; revoke?: true; id: int[]; } - export class ReceivedMessages extends Request, Api.TypeReceivedNotifyMessage[]> { + }, Api.TypeReceivedNotifyMessage[]> { maxId: int; } - export class SetTyping extends Request, Bool> { + }, Bool> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; action: Api.TypeSendMessageAction; } - export class SendMessage extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; noWebpage?: true; silent?: true; @@ -23427,7 +23427,7 @@ namespace Api { effect?: long; allowPaidStars?: long; } - export class SendMedia extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; silent?: true; background?: true; @@ -23470,7 +23470,7 @@ namespace Api { effect?: long; allowPaidStars?: long; } - export class ForwardMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; silent?: true; background?: true; @@ -23511,151 +23511,151 @@ namespace Api { videoTimestamp?: int; allowPaidStars?: long; } - export class ReportSpam extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; } - export class GetPeerSettings extends Request, messages.TypePeerSettings> { + }, messages.TypePeerSettings> { peer: Api.TypeInputPeer; } - export class Report extends Request, Api.TypeReportResult> { + }, Api.TypeReportResult> { peer: Api.TypeInputPeer; id: int[]; option: bytes; message: string; } - export class GetChats extends Request, messages.TypeChats> { + }, messages.TypeChats> { id: long[]; } - export class GetFullChat extends Request, messages.TypeChatFull> { + }, messages.TypeChatFull> { chatId: long; } - export class EditChatTitle extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { chatId: long; title: string; } - export class EditChatPhoto extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { chatId: long; photo: Api.TypeInputChatPhoto; } - export class AddChatUser extends Request, messages.TypeInvitedUsers> { + }, messages.TypeInvitedUsers> { chatId: long; userId: Api.TypeInputUser; fwdLimit: int; } - export class DeleteChatUser extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; revokeHistory?: true; chatId: long; userId: Api.TypeInputUser; } - export class CreateChat extends Request, messages.TypeInvitedUsers> { + }, messages.TypeInvitedUsers> { // flags: Api.Type; users: Api.TypeInputUser[]; title: string; ttlPeriod?: int; } - export class GetDhConfig extends Request, messages.TypeDhConfig> { + }, messages.TypeDhConfig> { version: int; randomLength: int; } - export class RequestEncryption extends Request, Api.TypeEncryptedChat> { + }, Api.TypeEncryptedChat> { userId: Api.TypeInputUser; randomId: int; gA: bytes; } - export class AcceptEncryption extends Request, Api.TypeEncryptedChat> { + }, Api.TypeEncryptedChat> { peer: Api.TypeInputEncryptedChat; gB: bytes; keyFingerprint: long; } - export class DiscardEncryption extends Request, Bool> { + }, Bool> { // flags: Api.Type; deleteHistory?: true; chatId: int; } - export class SetEncryptedTyping extends Request, Bool> { + }, Bool> { peer: Api.TypeInputEncryptedChat; typing: Bool; } - export class ReadEncryptedHistory extends Request, Bool> { + }, Bool> { peer: Api.TypeInputEncryptedChat; maxDate: int; } - export class SendEncrypted extends Request, messages.TypeSentEncryptedMessage> { + }, messages.TypeSentEncryptedMessage> { // flags: Api.Type; silent?: true; peer: Api.TypeInputEncryptedChat; randomId: long; data: bytes; } - export class SendEncryptedFile extends Request, messages.TypeSentEncryptedMessage> { + }, messages.TypeSentEncryptedMessage> { // flags: Api.Type; silent?: true; peer: Api.TypeInputEncryptedChat; @@ -23663,52 +23663,52 @@ namespace Api { data: bytes; file: Api.TypeInputEncryptedFile; } - export class SendEncryptedService extends Request, messages.TypeSentEncryptedMessage> { + }, messages.TypeSentEncryptedMessage> { peer: Api.TypeInputEncryptedChat; randomId: long; data: bytes; } - export class ReceivedQueue extends Request, long[]> { + }, long[]> { maxQts: int; } - export class ReportEncryptedSpam extends Request, Bool> { + }, Bool> { peer: Api.TypeInputEncryptedChat; } - export class ReadMessageContents extends Request, messages.TypeAffectedMessages> { + }, messages.TypeAffectedMessages> { id: int[]; } - export class GetStickers extends Request, messages.TypeStickers> { + }, messages.TypeStickers> { emoticon: string; hash: long; } - export class GetAllStickers extends Request, messages.TypeAllStickers> { + }, messages.TypeAllStickers> { hash: long; } - export class GetWebPagePreview extends Request, messages.TypeWebPagePreview> { + }, messages.TypeWebPagePreview> { // flags: Api.Type; message: string; entities?: Api.TypeMessageEntity[]; } - export class ExportChatInvite extends Request, Api.TypeExportedChatInvite> { + }, Api.TypeExportedChatInvite> { // flags: Api.Type; legacyRevokePermanent?: true; requestNeeded?: true; @@ -23727,70 +23727,70 @@ namespace Api { title?: string; subscriptionPricing?: Api.TypeStarsSubscriptionPricing; } - export class CheckChatInvite extends Request, Api.TypeChatInvite> { + }, Api.TypeChatInvite> { hash: string; } - export class ImportChatInvite extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { hash: string; } - export class GetStickerSet extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { stickerset: Api.TypeInputStickerSet; hash: int; } - export class InstallStickerSet extends Request, messages.TypeStickerSetInstallResult> { + }, messages.TypeStickerSetInstallResult> { stickerset: Api.TypeInputStickerSet; archived: Bool; } - export class UninstallStickerSet extends Request, Bool> { + }, Bool> { stickerset: Api.TypeInputStickerSet; } - export class StartBot extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { bot: Api.TypeInputUser; peer: Api.TypeInputPeer; randomId: long; startParam: string; } - export class GetMessagesViews extends Request, messages.TypeMessageViews> { + }, messages.TypeMessageViews> { peer: Api.TypeInputPeer; id: int[]; increment: Bool; } - export class EditChatAdmin extends Request, Bool> { + }, Bool> { chatId: long; userId: Api.TypeInputUser; isAdmin: Bool; } - export class MigrateChat extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { chatId: long; } - export class SearchGlobal extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; broadcastsOnly?: true; groupsOnly?: true; @@ -23819,46 +23819,46 @@ namespace Api { offsetId: int; limit: int; } - export class ReorderStickerSets extends Request, Bool> { + }, Bool> { // flags: Api.Type; masks?: true; emojis?: true; order: long[]; } - export class GetDocumentByHash extends Request, Api.TypeDocument> { + }, Api.TypeDocument> { sha256: bytes; size: long; mimeType: string; } - export class GetSavedGifs extends Request, messages.TypeSavedGifs> { + }, messages.TypeSavedGifs> { hash: long; } - export class SaveGif extends Request, Bool> { + }, Bool> { id: Api.TypeInputDocument; unsave: Bool; } - export class GetInlineBotResults extends Request, messages.TypeBotResults> { + }, messages.TypeBotResults> { // flags: Api.Type; bot: Api.TypeInputUser; peer: Api.TypeInputPeer; @@ -23866,7 +23866,7 @@ namespace Api { query: string; offset: string; } - export class SetInlineBotResults extends Request, Bool> { + }, Bool> { // flags: Api.Type; gallery?: true; private?: true; @@ -23887,7 +23887,7 @@ namespace Api { switchPm?: Api.TypeInlineBotSwitchPM; switchWebview?: Api.TypeInlineBotWebView; } - export class SendInlineBotResult extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; silent?: true; background?: true; @@ -23918,14 +23918,14 @@ namespace Api { quickReplyShortcut?: Api.TypeInputQuickReplyShortcut; allowPaidStars?: long; } - export class GetMessageEditData extends Request, messages.TypeMessageEditData> { + }, messages.TypeMessageEditData> { peer: Api.TypeInputPeer; id: int; } - export class EditMessage extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; noWebpage?: true; invertMedia?: true; @@ -23950,7 +23950,7 @@ namespace Api { scheduleDate?: int; quickReplyShortcutId?: int; } - export class EditInlineBotMessage extends Request, Bool> { + }, Bool> { // flags: Api.Type; noWebpage?: true; invertMedia?: true; @@ -23969,14 +23969,14 @@ namespace Api { replyMarkup?: Api.TypeReplyMarkup; entities?: Api.TypeMessageEntity[]; } - export class GetBotCallbackAnswer extends Request, messages.TypeBotCallbackAnswer> { + }, messages.TypeBotCallbackAnswer> { // flags: Api.Type; game?: true; peer: Api.TypeInputPeer; @@ -23984,14 +23984,14 @@ namespace Api { data?: bytes; password?: Api.TypeInputCheckPasswordSRP; } - export class SetBotCallbackAnswer extends Request, Bool> { + }, Bool> { // flags: Api.Type; alert?: true; queryId: long; @@ -23999,12 +23999,12 @@ namespace Api { url?: string; cacheTime: int; } - export class GetPeerDialogs extends Request, messages.TypePeerDialogs> { + }, messages.TypePeerDialogs> { peers: Api.TypeInputDialogPeer[]; } - export class SaveDraft extends Request, Bool> { + }, Bool> { // flags: Api.Type; noWebpage?: true; invertMedia?: true; @@ -24026,67 +24026,67 @@ namespace Api { effect?: long; } export class GetAllDrafts extends Request {} - export class GetFeaturedStickers extends Request, messages.TypeFeaturedStickers> { + }, messages.TypeFeaturedStickers> { hash: long; } - export class ReadFeaturedStickers extends Request, Bool> { + }, Bool> { id: long[]; } - export class GetRecentStickers extends Request, messages.TypeRecentStickers> { + }, messages.TypeRecentStickers> { // flags: Api.Type; attached?: true; hash: long; } - export class SaveRecentSticker extends Request, Bool> { + }, Bool> { // flags: Api.Type; attached?: true; id: Api.TypeInputDocument; unsave: Bool; } - export class ClearRecentStickers extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; attached?: true; } - export class GetArchivedStickers extends Request, messages.TypeArchivedStickers> { + }, messages.TypeArchivedStickers> { // flags: Api.Type; masks?: true; emojis?: true; offsetId: long; limit: int; } - export class GetMaskStickers extends Request, messages.TypeAllStickers> { + }, messages.TypeAllStickers> { hash: long; } - export class GetAttachedStickers extends Request, Api.TypeStickerSetCovered[]> { + }, Api.TypeStickerSetCovered[]> { media: Api.TypeInputStickeredMedia; } - export class SetGameScore extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; editMessage?: true; force?: true; @@ -24103,14 +24103,14 @@ namespace Api { userId: Api.TypeInputUser; score: int; } - export class SetInlineGameScore extends Request, Bool> { + }, Bool> { // flags: Api.Type; editMessage?: true; force?: true; @@ -24118,118 +24118,118 @@ namespace Api { userId: Api.TypeInputUser; score: int; } - export class GetGameHighScores extends Request, messages.TypeHighScores> { + }, messages.TypeHighScores> { peer: Api.TypeInputPeer; id: int; userId: Api.TypeInputUser; } - export class GetInlineGameHighScores extends Request, messages.TypeHighScores> { + }, messages.TypeHighScores> { id: Api.TypeInputBotInlineMessageID; userId: Api.TypeInputUser; } - export class GetCommonChats extends Request, messages.TypeChats> { + }, messages.TypeChats> { userId: Api.TypeInputUser; maxId: long; limit: int; } - export class GetWebPage extends Request, messages.TypeWebPage> { + }, messages.TypeWebPage> { url: string; hash: int; } - export class ToggleDialogPin extends Request, Bool> { + }, Bool> { // flags: Api.Type; pinned?: true; peer: Api.TypeInputDialogPeer; } - export class ReorderPinnedDialogs extends Request, Bool> { + }, Bool> { // flags: Api.Type; force?: true; folderId: int; order: Api.TypeInputDialogPeer[]; } - export class GetPinnedDialogs extends Request, messages.TypePeerDialogs> { + }, messages.TypePeerDialogs> { folderId: int; } - export class SetBotShippingResults extends Request, Bool> { + }, Bool> { // flags: Api.Type; queryId: long; error?: string; shippingOptions?: Api.TypeShippingOption[]; } - export class SetBotPrecheckoutResults extends Request, Bool> { + }, Bool> { // flags: Api.Type; success?: true; queryId: long; error?: string; } - export class UploadMedia extends Request, Api.TypeMessageMedia> { + }, Api.TypeMessageMedia> { // flags: Api.Type; businessConnectionId?: string; peer: Api.TypeInputPeer; media: Api.TypeInputMedia; } - export class SendScreenshotNotification extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; replyTo: Api.TypeInputReplyTo; randomId: long; } - export class GetFavedStickers extends Request, messages.TypeFavedStickers> { + }, messages.TypeFavedStickers> { hash: long; } - export class FaveSticker extends Request, Bool> { + }, Bool> { id: Api.TypeInputDocument; unfave: Bool; } - export class GetUnreadMentions extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; @@ -24248,25 +24248,25 @@ namespace Api { maxId: int; minId: int; } - export class ReadMentions extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; } - export class GetRecentLocations extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { peer: Api.TypeInputPeer; limit: int; hash: long; } - export class SendMultiMedia extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; silent?: true; background?: true; @@ -24301,52 +24301,52 @@ namespace Api { effect?: long; allowPaidStars?: long; } - export class UploadEncryptedFile extends Request, Api.TypeEncryptedFile> { + }, Api.TypeEncryptedFile> { peer: Api.TypeInputEncryptedChat; file: Api.TypeInputEncryptedFile; } - export class SearchStickerSets extends Request, messages.TypeFoundStickerSets> { + }, messages.TypeFoundStickerSets> { // flags: Api.Type; excludeFeatured?: true; q: string; hash: long; } export class GetSplitRanges extends Request {} - export class MarkDialogUnread extends Request, Bool> { + }, Bool> { // flags: Api.Type; unread?: true; parentPeer?: Api.TypeInputPeer; peer: Api.TypeInputDialogPeer; } - export class GetDialogUnreadMarks extends Request, Api.TypeDialogPeer[]> { + } | void, Api.TypeDialogPeer[]> { // flags: Api.Type; parentPeer?: Api.TypeInputPeer; } export class ClearAllDrafts extends Request {} - export class UpdatePinnedMessage extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; silent?: true; unpin?: true; @@ -24354,97 +24354,97 @@ namespace Api { peer: Api.TypeInputPeer; id: int; } - export class SendVote extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; msgId: int; options: bytes[]; } - export class GetPollResults extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; msgId: int; } - export class GetOnlines extends Request, Api.TypeChatOnlines> { + }, Api.TypeChatOnlines> { peer: Api.TypeInputPeer; } - export class EditChatAbout extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; about: string; } - export class EditChatDefaultBannedRights extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; bannedRights: Api.TypeChatBannedRights; } - export class GetEmojiKeywords extends Request, Api.TypeEmojiKeywordsDifference> { + }, Api.TypeEmojiKeywordsDifference> { langCode: string; } - export class GetEmojiKeywordsDifference extends Request, Api.TypeEmojiKeywordsDifference> { + }, Api.TypeEmojiKeywordsDifference> { langCode: string; fromVersion: int; } - export class GetEmojiKeywordsLanguages extends Request, Api.TypeEmojiLanguage[]> { + }, Api.TypeEmojiLanguage[]> { langCodes: string[]; } - export class GetEmojiURL extends Request, Api.TypeEmojiURL> { + }, Api.TypeEmojiURL> { langCode: string; } - export class GetSearchCounters extends Request, messages.TypeSearchCounter[]> { + }, messages.TypeSearchCounter[]> { // flags: Api.Type; peer: Api.TypeInputPeer; savedPeerId?: Api.TypeInputPeer; topMsgId?: int; filters: Api.TypeMessagesFilter[]; } - export class RequestUrlAuth extends Request, Api.TypeUrlAuthResult> { + } | void, Api.TypeUrlAuthResult> { // flags: Api.Type; peer?: Api.TypeInputPeer; msgId?: int; buttonId?: int; url?: string; } - export class AcceptUrlAuth extends Request, Api.TypeUrlAuthResult> { + } | void, Api.TypeUrlAuthResult> { // flags: Api.Type; writeAllowed?: true; peer?: Api.TypeInputPeer; @@ -24452,47 +24452,47 @@ namespace Api { buttonId?: int; url?: string; } - export class HidePeerSettingsBar extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; } - export class GetScheduledHistory extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { peer: Api.TypeInputPeer; hash: long; } - export class GetScheduledMessages extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { peer: Api.TypeInputPeer; id: int[]; } - export class SendScheduledMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; id: int[]; } - export class DeleteScheduledMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; id: int[]; } - export class GetPollVotes extends Request, messages.TypeVotesList> { + }, messages.TypeVotesList> { // flags: Api.Type; peer: Api.TypeInputPeer; id: int; @@ -24500,13 +24500,13 @@ namespace Api { offset?: string; limit: int; } - export class ToggleStickerSets extends Request, Bool> { + }, Bool> { // flags: Api.Type; uninstall?: true; archive?: true; @@ -24515,30 +24515,30 @@ namespace Api { } export class GetDialogFilters extends Request {} export class GetSuggestedDialogFilters extends Request {} - export class UpdateDialogFilter extends Request, Bool> { + }, Bool> { // flags: Api.Type; id: int; filter?: Api.TypeDialogFilter; } - export class UpdateDialogFiltersOrder extends Request, Bool> { + }, Bool> { order: int[]; } - export class GetOldFeaturedStickers extends Request, messages.TypeFeaturedStickers> { + }, messages.TypeFeaturedStickers> { offset: int; limit: int; hash: long; } - export class GetReplies extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { peer: Api.TypeInputPeer; msgId: int; offsetId: int; @@ -24559,78 +24559,78 @@ namespace Api { minId: int; hash: long; } - export class GetDiscussionMessage extends Request, messages.TypeDiscussionMessage> { + }, messages.TypeDiscussionMessage> { peer: Api.TypeInputPeer; msgId: int; } - export class ReadDiscussion extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; msgId: int; readMaxId: int; } - export class UnpinAllMessages extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; savedPeerId?: Api.TypeInputPeer; } - export class DeleteChat extends Request, Bool> { + }, Bool> { chatId: long; } - export class DeletePhoneCallHistory extends Request, messages.TypeAffectedFoundMessages> { + } | void, messages.TypeAffectedFoundMessages> { // flags: Api.Type; revoke?: true; } - export class CheckHistoryImport extends Request, messages.TypeHistoryImportParsed> { + }, messages.TypeHistoryImportParsed> { importHead: string; } - export class InitHistoryImport extends Request, messages.TypeHistoryImport> { + }, messages.TypeHistoryImport> { peer: Api.TypeInputPeer; file: Api.TypeInputFile; mediaCount: int; } - export class UploadImportedMedia extends Request, Api.TypeMessageMedia> { + }, Api.TypeMessageMedia> { peer: Api.TypeInputPeer; importId: long; fileName: string; media: Api.TypeInputMedia; } - export class StartHistoryImport extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; importId: long; } - export class GetExportedChatInvites extends Request, messages.TypeExportedChatInvites> { + }, messages.TypeExportedChatInvites> { // flags: Api.Type; revoked?: true; peer: Api.TypeInputPeer; @@ -24647,14 +24647,14 @@ namespace Api { offsetLink?: string; limit: int; } - export class GetExportedChatInvite extends Request, messages.TypeExportedChatInvite> { + }, messages.TypeExportedChatInvite> { peer: Api.TypeInputPeer; link: string; } - export class EditExportedChatInvite extends Request, messages.TypeExportedChatInvite> { + }, messages.TypeExportedChatInvite> { // flags: Api.Type; revoked?: true; peer: Api.TypeInputPeer; @@ -24673,26 +24673,26 @@ namespace Api { requestNeeded?: Bool; title?: string; } - export class DeleteRevokedExportedChatInvites extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; adminId: Api.TypeInputUser; } - export class DeleteExportedChatInvite extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; link: string; } - export class GetAdminsWithInvites extends Request, messages.TypeChatAdminsWithInvites> { + }, messages.TypeChatAdminsWithInvites> { peer: Api.TypeInputPeer; } - export class GetChatInviteImporters extends Request, messages.TypeChatInviteImporters> { + }, messages.TypeChatInviteImporters> { // flags: Api.Type; requested?: true; subscriptionExpired?: true; @@ -24713,40 +24713,40 @@ namespace Api { offsetUser: Api.TypeInputUser; limit: int; } - export class SetHistoryTTL extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; period: int; } - export class CheckHistoryImportPeer extends Request, messages.TypeCheckedHistoryImportPeer> { + }, messages.TypeCheckedHistoryImportPeer> { peer: Api.TypeInputPeer; } - export class SetChatTheme extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; emoticon: string; } - export class GetMessageReadParticipants extends Request, Api.TypeReadParticipantDate[]> { + }, Api.TypeReadParticipantDate[]> { peer: Api.TypeInputPeer; msgId: int; } - export class GetSearchResultsCalendar extends Request, messages.TypeSearchResultsCalendar> { + }, messages.TypeSearchResultsCalendar> { // flags: Api.Type; peer: Api.TypeInputPeer; savedPeerId?: Api.TypeInputPeer; @@ -24754,14 +24754,14 @@ namespace Api { offsetId: int; offsetDate: int; } - export class GetSearchResultsPositions extends Request, messages.TypeSearchResultsPositions> { + }, messages.TypeSearchResultsPositions> { // flags: Api.Type; peer: Api.TypeInputPeer; savedPeerId?: Api.TypeInputPeer; @@ -24769,50 +24769,50 @@ namespace Api { offsetId: int; limit: int; } - export class HideChatJoinRequest extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; approved?: true; peer: Api.TypeInputPeer; userId: Api.TypeInputUser; } - export class HideAllChatJoinRequests extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; approved?: true; peer: Api.TypeInputPeer; link?: string; } - export class ToggleNoForwards extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; enabled: Bool; } - export class SaveDefaultSendAs extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; sendAs: Api.TypeInputPeer; } - export class SendReaction extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; big?: true; addToRecent?: true; @@ -24820,21 +24820,21 @@ namespace Api { msgId: int; reaction?: Api.TypeReaction[]; } - export class GetMessagesReactions extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; id: int[]; } - export class GetMessageReactionsList extends Request, messages.TypeMessageReactionsList> { + }, messages.TypeMessageReactionsList> { // flags: Api.Type; peer: Api.TypeInputPeer; id: int; @@ -24842,43 +24842,43 @@ namespace Api { offset?: string; limit: int; } - export class SetChatAvailableReactions extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; peer: Api.TypeInputPeer; availableReactions: Api.TypeChatReactions; reactionsLimit?: int; paidEnabled?: Bool; } - export class GetAvailableReactions extends Request, messages.TypeAvailableReactions> { + }, messages.TypeAvailableReactions> { hash: int; } - export class SetDefaultReaction extends Request, Bool> { + }, Bool> { reaction: Api.TypeReaction; } - export class TranslateText extends Request, messages.TypeTranslatedText> { + }, messages.TypeTranslatedText> { // flags: Api.Type; peer?: Api.TypeInputPeer; id?: int[]; text?: Api.TypeTextWithEntities[]; toLang: string; } - export class GetUnreadReactions extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; @@ -24899,48 +24899,48 @@ namespace Api { maxId: int; minId: int; } - export class ReadReactions extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { // flags: Api.Type; peer: Api.TypeInputPeer; topMsgId?: int; savedPeerId?: Api.TypeInputPeer; } - export class SearchSentMedia extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { q: string; filter: Api.TypeMessagesFilter; limit: int; } - export class GetAttachMenuBots extends Request, Api.TypeAttachMenuBots> { + }, Api.TypeAttachMenuBots> { hash: long; } - export class GetAttachMenuBot extends Request, Api.TypeAttachMenuBotsBot> { + }, Api.TypeAttachMenuBotsBot> { bot: Api.TypeInputUser; } - export class ToggleBotInAttachMenu extends Request, Bool> { + }, Bool> { // flags: Api.Type; writeAllowed?: true; bot: Api.TypeInputUser; enabled: Bool; } - export class RequestWebView extends Request, Api.TypeWebViewResult> { + }, Api.TypeWebViewResult> { // flags: Api.Type; fromBotMenu?: true; silent?: true; @@ -24969,7 +24969,7 @@ namespace Api { replyTo?: Api.TypeInputReplyTo; sendAs?: Api.TypeInputPeer; } - export class ProlongWebView extends Request, Bool> { + }, Bool> { // flags: Api.Type; silent?: true; peer: Api.TypeInputPeer; @@ -24986,7 +24986,7 @@ namespace Api { replyTo?: Api.TypeInputReplyTo; sendAs?: Api.TypeInputPeer; } - export class RequestSimpleWebView extends Request, Api.TypeWebViewResult> { + }, Api.TypeWebViewResult> { // flags: Api.Type; fromSwitchWebview?: true; fromSideMenu?: true; @@ -25009,144 +25009,144 @@ namespace Api { themeParams?: Api.TypeDataJSON; platform: string; } - export class SendWebViewResultMessage extends Request, Api.TypeWebViewMessageSent> { + }, Api.TypeWebViewMessageSent> { botQueryId: string; result: Api.TypeInputBotInlineResult; } - export class SendWebViewData extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { bot: Api.TypeInputUser; randomId: long; buttonText: string; data: string; } - export class TranscribeAudio extends Request, messages.TypeTranscribedAudio> { + }, messages.TypeTranscribedAudio> { peer: Api.TypeInputPeer; msgId: int; } - export class RateTranscribedAudio extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; msgId: int; transcriptionId: long; good: Bool; } - export class GetCustomEmojiDocuments extends Request, Api.TypeDocument[]> { + }, Api.TypeDocument[]> { documentId: long[]; } - export class GetEmojiStickers extends Request, messages.TypeAllStickers> { + }, messages.TypeAllStickers> { hash: long; } - export class GetFeaturedEmojiStickers extends Request, messages.TypeFeaturedStickers> { + }, messages.TypeFeaturedStickers> { hash: long; } - export class ReportReaction extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; id: int; reactionPeer: Api.TypeInputPeer; } - export class GetTopReactions extends Request, messages.TypeReactions> { + }, messages.TypeReactions> { limit: int; hash: long; } - export class GetRecentReactions extends Request, messages.TypeReactions> { + }, messages.TypeReactions> { limit: int; hash: long; } export class ClearRecentReactions extends Request {} - export class GetExtendedMedia extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; id: int[]; } - export class SetDefaultHistoryTTL extends Request, Bool> { + }, Bool> { period: int; } export class GetDefaultHistoryTTL extends Request {} - export class SendBotRequestedPeer extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; msgId: int; buttonId: int; requestedPeers: Api.TypeInputPeer[]; } - export class GetEmojiGroups extends Request, messages.TypeEmojiGroups> { + }, messages.TypeEmojiGroups> { hash: int; } - export class GetEmojiStatusGroups extends Request, messages.TypeEmojiGroups> { + }, messages.TypeEmojiGroups> { hash: int; } - export class GetEmojiProfilePhotoGroups extends Request, messages.TypeEmojiGroups> { + }, messages.TypeEmojiGroups> { hash: int; } - export class SearchCustomEmoji extends Request, Api.TypeEmojiList> { + }, Api.TypeEmojiList> { emoticon: string; hash: long; } - export class TogglePeerTranslations extends Request, Bool> { + }, Bool> { // flags: Api.Type; disabled?: true; peer: Api.TypeInputPeer; } - export class GetBotApp extends Request, messages.TypeBotApp> { + }, messages.TypeBotApp> { app: Api.TypeInputBotApp; hash: long; } - export class RequestAppWebView extends Request, Api.TypeWebViewResult> { + }, Api.TypeWebViewResult> { // flags: Api.Type; writeAllowed?: true; compact?: true; @@ -25167,7 +25167,7 @@ namespace Api { themeParams?: Api.TypeDataJSON; platform: string; } - export class SetChatWallPaper extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; forBoth?: true; revert?: true; @@ -25184,18 +25184,18 @@ namespace Api { settings?: Api.TypeWallPaperSettings; id?: int; } - export class SearchEmojiStickerSets extends Request, messages.TypeFoundStickerSets> { + }, messages.TypeFoundStickerSets> { // flags: Api.Type; excludeFeatured?: true; q: string; hash: long; } - export class GetSavedDialogs extends Request, messages.TypeSavedDialogs> { + }, messages.TypeSavedDialogs> { // flags: Api.Type; excludePinned?: true; parentPeer?: Api.TypeInputPeer; @@ -25214,7 +25214,7 @@ namespace Api { limit: int; hash: long; } - export class GetSavedHistory extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; parentPeer?: Api.TypeInputPeer; peer: Api.TypeInputPeer; @@ -25237,14 +25237,14 @@ namespace Api { minId: int; hash: long; } - export class DeleteSavedHistory extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { // flags: Api.Type; parentPeer?: Api.TypeInputPeer; peer: Api.TypeInputPeer; @@ -25253,156 +25253,156 @@ namespace Api { maxDate?: int; } export class GetPinnedSavedDialogs extends Request {} - export class ToggleSavedDialogPin extends Request, Bool> { + }, Bool> { // flags: Api.Type; pinned?: true; peer: Api.TypeInputDialogPeer; } - export class ReorderPinnedSavedDialogs extends Request, Bool> { + }, Bool> { // flags: Api.Type; force?: true; order: Api.TypeInputDialogPeer[]; } - export class GetSavedReactionTags extends Request, messages.TypeSavedReactionTags> { + }, messages.TypeSavedReactionTags> { // flags: Api.Type; peer?: Api.TypeInputPeer; hash: long; } - export class UpdateSavedReactionTag extends Request, Bool> { + }, Bool> { // flags: Api.Type; reaction: Api.TypeReaction; title?: string; } - export class GetDefaultTagReactions extends Request, messages.TypeReactions> { + }, messages.TypeReactions> { hash: long; } - export class GetOutboxReadDate extends Request, Api.TypeOutboxReadDate> { + }, Api.TypeOutboxReadDate> { peer: Api.TypeInputPeer; msgId: int; } - export class GetQuickReplies extends Request, messages.TypeQuickReplies> { + }, messages.TypeQuickReplies> { hash: long; } - export class ReorderQuickReplies extends Request, Bool> { + }, Bool> { order: int[]; } - export class CheckQuickReplyShortcut extends Request, Bool> { + }, Bool> { shortcut: string; } - export class EditQuickReplyShortcut extends Request, Bool> { + }, Bool> { shortcutId: int; shortcut: string; } - export class DeleteQuickReplyShortcut extends Request, Bool> { + }, Bool> { shortcutId: int; } - export class GetQuickReplyMessages extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { // flags: Api.Type; shortcutId: int; id?: int[]; hash: long; } - export class SendQuickReplyMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; shortcutId: int; id: int[]; randomId: long[]; } - export class DeleteQuickReplyMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { shortcutId: int; id: int[]; } - export class ToggleDialogFilterTags extends Request, Bool> { + }, Bool> { enabled: Bool; } - export class GetMyStickers extends Request, messages.TypeMyStickers> { + }, messages.TypeMyStickers> { offsetId: long; limit: int; } - export class GetEmojiStickerGroups extends Request, messages.TypeEmojiGroups> { + }, messages.TypeEmojiGroups> { hash: int; } - export class GetAvailableEffects extends Request, messages.TypeAvailableEffects> { + }, messages.TypeAvailableEffects> { hash: int; } - export class EditFactCheck extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; msgId: int; text: Api.TypeTextWithEntities; } - export class DeleteFactCheck extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; msgId: int; } - export class GetFactCheck extends Request, Api.TypeFactCheck[]> { + }, Api.TypeFactCheck[]> { peer: Api.TypeInputPeer; msgId: int[]; } - export class RequestMainWebView extends Request, Api.TypeWebViewResult> { + }, Api.TypeWebViewResult> { // flags: Api.Type; compact?: true; fullscreen?: true; @@ -25421,14 +25421,14 @@ namespace Api { themeParams?: Api.TypeDataJSON; platform: string; } - export class SendPaidReaction extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; peer: Api.TypeInputPeer; msgId: int; @@ -25436,63 +25436,63 @@ namespace Api { randomId: long; private?: Api.TypePaidReactionPrivacy; } - export class TogglePaidReactionPrivacy extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; msgId: int; private: Api.TypePaidReactionPrivacy; } export class GetPaidReactionPrivacy extends Request {} - export class ViewSponsoredMessage extends Request, Bool> { + }, Bool> { randomId: bytes; } - export class ClickSponsoredMessage extends Request, Bool> { + }, Bool> { // flags: Api.Type; media?: true; fullscreen?: true; randomId: bytes; } - export class ReportSponsoredMessage extends Request, channels.TypeSponsoredMessageReportResult> { + }, channels.TypeSponsoredMessageReportResult> { randomId: bytes; option: bytes; } - export class GetSponsoredMessages extends Request, messages.TypeSponsoredMessages> { + }, messages.TypeSponsoredMessages> { peer: Api.TypeInputPeer; } - export class SavePreparedInlineMessage extends Request, messages.TypeBotPreparedInlineMessage> { + }, messages.TypeBotPreparedInlineMessage> { // flags: Api.Type; result: Api.TypeInputBotInlineResult; userId: Api.TypeInputUser; peerTypes?: Api.TypeInlineQueryPeerType[]; } - export class GetPreparedInlineMessage extends Request, messages.TypePreparedInlineMessage> { + }, messages.TypePreparedInlineMessage> { bot: Api.TypeInputUser; id: string; } - export class SearchStickers extends Request, messages.TypeFoundStickers> { + }, messages.TypeFoundStickers> { // flags: Api.Type; emojis?: true; q: string; @@ -25511,31 +25511,31 @@ namespace Api { limit: int; hash: long; } - export class ReportMessagesDelivery extends Request, Bool> { + }, Bool> { // flags: Api.Type; push?: true; peer: Api.TypeInputPeer; id: int[]; } - export class GetSavedDialogsByID extends Request, messages.TypeSavedDialogs> { + }, messages.TypeSavedDialogs> { // flags: Api.Type; parentPeer?: Api.TypeInputPeer; ids: Api.TypeInputPeer[]; } - export class ReadSavedHistory extends Request, Bool> { + }, Bool> { parentPeer: Api.TypeInputPeer; peer: Api.TypeInputPeer; maxId: int; @@ -25544,7 +25544,7 @@ namespace Api { export namespace updates { export class GetState extends Request {} - export class GetDifference extends Request, updates.TypeDifference> { + }, updates.TypeDifference> { // flags: Api.Type; pts: int; ptsLimit?: int; @@ -25561,14 +25561,14 @@ namespace Api { qts: int; qtsLimit?: int; } - export class GetChannelDifference extends Request, updates.TypeChannelDifference> { + }, updates.TypeChannelDifference> { // flags: Api.Type; force?: true; channel: Api.TypeInputChannel; @@ -25579,18 +25579,18 @@ namespace Api { } export namespace photos { - export class UpdateProfilePhoto extends Request, photos.TypePhoto> { + }, photos.TypePhoto> { // flags: Api.Type; fallback?: true; bot?: Api.TypeInputUser; id: Api.TypeInputPhoto; } - export class UploadProfilePhoto extends Request, photos.TypePhoto> { + } | void, photos.TypePhoto> { // flags: Api.Type; fallback?: true; bot?: Api.TypeInputUser; @@ -25607,23 +25607,23 @@ namespace Api { videoStartTs?: double; videoEmojiMarkup?: Api.TypeVideoSize; } - export class DeletePhotos extends Request, long[]> { + }, long[]> { id: Api.TypeInputPhoto[]; } - export class GetUserPhotos extends Request, photos.TypePhotos> { + }, photos.TypePhotos> { userId: Api.TypeInputUser; offset: int; maxId: long; limit: int; } - export class UploadContactProfilePhoto extends Request, photos.TypePhoto> { + }, photos.TypePhoto> { // flags: Api.Type; suggest?: true; save?: true; @@ -25645,23 +25645,23 @@ namespace Api { } export namespace upload { - export class SaveFilePart extends Request, Bool> { + }, Bool> { fileId: long; filePart: int; bytes: bytes; } - export class GetFile extends Request, upload.TypeFile> { + }, upload.TypeFile> { // flags: Api.Type; precise?: true; cdnSupported?: true; @@ -25669,53 +25669,53 @@ namespace Api { offset: long; limit: int; } - export class SaveBigFilePart extends Request, Bool> { + }, Bool> { fileId: long; filePart: int; fileTotalParts: int; bytes: bytes; } - export class GetWebFile extends Request, upload.TypeWebFile> { + }, upload.TypeWebFile> { location: Api.TypeInputWebFileLocation; offset: int; limit: int; } - export class GetCdnFile extends Request, upload.TypeCdnFile> { + }, upload.TypeCdnFile> { fileToken: bytes; offset: long; limit: int; } - export class ReuploadCdnFile extends Request, Api.TypeFileHash[]> { + }, Api.TypeFileHash[]> { fileToken: bytes; requestToken: bytes; } - export class GetCdnFileHashes extends Request, Api.TypeFileHash[]> { + }, Api.TypeFileHash[]> { fileToken: bytes; offset: long; } - export class GetFileHashes extends Request, Api.TypeFileHash[]> { + }, Api.TypeFileHash[]> { location: Api.TypeInputFileLocation; offset: long; } @@ -25724,167 +25724,167 @@ namespace Api { export namespace help { export class GetConfig extends Request {} export class GetNearestDc extends Request {} - export class GetAppUpdate extends Request, help.TypeAppUpdate> { + }, help.TypeAppUpdate> { source: string; } export class GetInviteText extends Request {} export class GetSupport extends Request {} - export class SetBotUpdatesStatus extends Request, Bool> { + }, Bool> { pendingUpdatesCount: int; message: string; } export class GetCdnConfig extends Request {} - export class GetRecentMeUrls extends Request, help.TypeRecentMeUrls> { + }, help.TypeRecentMeUrls> { referer: string; } export class GetTermsOfServiceUpdate extends Request {} - export class AcceptTermsOfService extends Request, Bool> { + }, Bool> { id: Api.TypeDataJSON; } - export class GetDeepLinkInfo extends Request, help.TypeDeepLinkInfo> { + }, help.TypeDeepLinkInfo> { path: string; } - export class GetAppConfig extends Request, help.TypeAppConfig> { + }, help.TypeAppConfig> { hash: int; } - export class SaveAppLog extends Request, Bool> { + }, Bool> { events: Api.TypeInputAppEvent[]; } - export class GetPassportConfig extends Request, help.TypePassportConfig> { + }, help.TypePassportConfig> { hash: int; } export class GetSupportName extends Request {} - export class GetUserInfo extends Request, help.TypeUserInfo> { + }, help.TypeUserInfo> { userId: Api.TypeInputUser; } - export class EditUserInfo extends Request, help.TypeUserInfo> { + }, help.TypeUserInfo> { userId: Api.TypeInputUser; message: string; entities: Api.TypeMessageEntity[]; } export class GetPromoData extends Request {} - export class HidePromoData extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; } - export class DismissSuggestion extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; suggestion: string; } - export class GetCountriesList extends Request, help.TypeCountriesList> { + }, help.TypeCountriesList> { langCode: string; hash: int; } export class GetPremiumPromo extends Request {} - export class GetPeerColors extends Request, help.TypePeerColors> { + }, help.TypePeerColors> { hash: int; } - export class GetPeerProfileColors extends Request, help.TypePeerColors> { + }, help.TypePeerColors> { hash: int; } - export class GetTimezonesList extends Request, help.TypeTimezonesList> { + }, help.TypeTimezonesList> { hash: int; } } export namespace channels { - export class ReadHistory extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; maxId: int; } - export class DeleteMessages extends Request, messages.TypeAffectedMessages> { + }, messages.TypeAffectedMessages> { channel: Api.TypeInputChannel; id: int[]; } - export class ReportSpam extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; participant: Api.TypeInputPeer; id: int[]; } - export class GetMessages extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { channel: Api.TypeInputChannel; id: Api.TypeInputMessage[]; } - export class GetParticipants extends Request, channels.TypeChannelParticipants> { + }, channels.TypeChannelParticipants> { channel: Api.TypeInputChannel; filter: Api.TypeChannelParticipantsFilter; offset: int; limit: int; hash: long; } - export class GetParticipant extends Request, channels.TypeChannelParticipant> { + }, channels.TypeChannelParticipant> { channel: Api.TypeInputChannel; participant: Api.TypeInputPeer; } - export class GetChannels extends Request, messages.TypeChats> { + }, messages.TypeChats> { id: Api.TypeInputChannel[]; } - export class GetFullChannel extends Request, messages.TypeChatFull> { + }, messages.TypeChatFull> { channel: Api.TypeInputChannel; } - export class CreateChannel extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; broadcast?: true; megagroup?: true; @@ -25907,112 +25907,112 @@ namespace Api { address?: string; ttlPeriod?: int; } - export class EditAdmin extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; userId: Api.TypeInputUser; adminRights: Api.TypeChatAdminRights; rank: string; } - export class EditTitle extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; title: string; } - export class EditPhoto extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; photo: Api.TypeInputChatPhoto; } - export class CheckUsername extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; username: string; } - export class UpdateUsername extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; username: string; } - export class JoinChannel extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; } - export class LeaveChannel extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; } - export class InviteToChannel extends Request, messages.TypeInvitedUsers> { + }, messages.TypeInvitedUsers> { channel: Api.TypeInputChannel; users: Api.TypeInputUser[]; } - export class DeleteChannel extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; } - export class ExportMessageLink extends Request, Api.TypeExportedMessageLink> { + }, Api.TypeExportedMessageLink> { // flags: Api.Type; grouped?: true; thread?: true; channel: Api.TypeInputChannel; id: int; } - export class ToggleSignatures extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; signaturesEnabled?: true; profilesEnabled?: true; channel: Api.TypeInputChannel; } - export class GetAdminedPublicChannels extends Request, messages.TypeChats> { + } | void, messages.TypeChats> { // flags: Api.Type; byLocation?: true; checkLimit?: true; forPersonal?: true; } - export class EditBanned extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; participant: Api.TypeInputPeer; bannedRights: Api.TypeChatBannedRights; } - export class GetAdminLog extends Request, channels.TypeAdminLogResults> { + }, channels.TypeAdminLogResults> { // flags: Api.Type; channel: Api.TypeInputChannel; q: string; @@ -26031,143 +26031,143 @@ namespace Api { minId: long; limit: int; } - export class SetStickers extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; stickerset: Api.TypeInputStickerSet; } - export class ReadMessageContents extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; id: int[]; } - export class DeleteHistory extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; forEveryone?: true; channel: Api.TypeInputChannel; maxId: int; } - export class TogglePreHistoryHidden extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class GetLeftChannels extends Request, messages.TypeChats> { + }, messages.TypeChats> { offset: int; } export class GetGroupsForDiscussion extends Request {} - export class SetDiscussionGroup extends Request, Bool> { + }, Bool> { broadcast: Api.TypeInputChannel; group: Api.TypeInputChannel; } - export class EditCreator extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; userId: Api.TypeInputUser; password: Api.TypeInputCheckPasswordSRP; } - export class EditLocation extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; geoPoint: Api.TypeInputGeoPoint; address: string; } - export class ToggleSlowMode extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; seconds: int; } export class GetInactiveChannels extends Request {} - export class ConvertToGigagroup extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; } - export class GetSendAs extends Request, channels.TypeSendAsPeers> { + }, channels.TypeSendAsPeers> { // flags: Api.Type; forPaidReactions?: true; peer: Api.TypeInputPeer; } - export class DeleteParticipantHistory extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { channel: Api.TypeInputChannel; participant: Api.TypeInputPeer; } - export class ToggleJoinToSend extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class ToggleJoinRequest extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class ReorderUsernames extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; order: string[]; } - export class ToggleUsername extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; username: string; active: Bool; } - export class DeactivateAllUsernames extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; } - export class ToggleForum extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; tabs: Bool; } - export class CreateForumTopic extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; channel: Api.TypeInputChannel; title: string; @@ -26184,7 +26184,7 @@ namespace Api { randomId: long; sendAs?: Api.TypeInputPeer; } - export class GetForumTopics extends Request, messages.TypeForumTopics> { + }, messages.TypeForumTopics> { // flags: Api.Type; channel: Api.TypeInputChannel; q?: string; @@ -26201,14 +26201,14 @@ namespace Api { offsetTopic: int; limit: int; } - export class GetForumTopicsByID extends Request, messages.TypeForumTopics> { + }, messages.TypeForumTopics> { channel: Api.TypeInputChannel; topics: int[]; } - export class EditForumTopic extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; channel: Api.TypeInputChannel; topicId: int; @@ -26225,217 +26225,217 @@ namespace Api { closed?: Bool; hidden?: Bool; } - export class UpdatePinnedForumTopic extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; topicId: int; pinned: Bool; } - export class DeleteTopicHistory extends Request, messages.TypeAffectedHistory> { + }, messages.TypeAffectedHistory> { channel: Api.TypeInputChannel; topMsgId: int; } - export class ReorderPinnedForumTopics extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; force?: true; channel: Api.TypeInputChannel; order: int[]; } - export class ToggleAntiSpam extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class ReportAntiSpamFalsePositive extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; msgId: int; } - export class ToggleParticipantsHidden extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class UpdateColor extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; forProfile?: true; channel: Api.TypeInputChannel; color?: int; backgroundEmojiId?: long; } - export class ToggleViewForumAsMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class GetChannelRecommendations extends Request, messages.TypeChats> { + } | void, messages.TypeChats> { // flags: Api.Type; channel?: Api.TypeInputChannel; } - export class UpdateEmojiStatus extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; emojiStatus: Api.TypeEmojiStatus; } - export class SetBoostsToUnblockRestrictions extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; boosts: int; } - export class SetEmojiStickers extends Request, Bool> { + }, Bool> { channel: Api.TypeInputChannel; stickerset: Api.TypeInputStickerSet; } - export class RestrictSponsoredMessages extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; restricted: Bool; } - export class SearchPosts extends Request, messages.TypeMessages> { + }, messages.TypeMessages> { hashtag: string; offsetRate: int; offsetPeer: Api.TypeInputPeer; offsetId: int; limit: int; } - export class UpdatePaidMessagesPrice extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; broadcastMessagesAllowed?: true; channel: Api.TypeInputChannel; sendPaidMessagesStars: long; } - export class ToggleAutotranslation extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { channel: Api.TypeInputChannel; enabled: Bool; } - export class GetMessageAuthor extends Request, Api.TypeUser> { + }, Api.TypeUser> { channel: Api.TypeInputChannel; id: int; } } export namespace bots { - export class SendCustomRequest extends Request, Api.TypeDataJSON> { + }, Api.TypeDataJSON> { customMethod: string; params: Api.TypeDataJSON; } - export class AnswerWebhookJSONQuery extends Request, Bool> { + }, Bool> { queryId: long; data: Api.TypeDataJSON; } - export class SetBotCommands extends Request, Bool> { + }, Bool> { scope: Api.TypeBotCommandScope; langCode: string; commands: Api.TypeBotCommand[]; } - export class ResetBotCommands extends Request, Bool> { + }, Bool> { scope: Api.TypeBotCommandScope; langCode: string; } - export class GetBotCommands extends Request, Api.TypeBotCommand[]> { + }, Api.TypeBotCommand[]> { scope: Api.TypeBotCommandScope; langCode: string; } - export class SetBotMenuButton extends Request, Bool> { + }, Bool> { userId: Api.TypeInputUser; button: Api.TypeBotMenuButton; } - export class GetBotMenuButton extends Request, Api.TypeBotMenuButton> { + }, Api.TypeBotMenuButton> { userId: Api.TypeInputUser; } - export class SetBotBroadcastDefaultAdminRights extends Request, Bool> { + }, Bool> { adminRights: Api.TypeChatAdminRights; } - export class SetBotGroupDefaultAdminRights extends Request, Bool> { + }, Bool> { adminRights: Api.TypeChatAdminRights; } - export class SetBotInfo extends Request, Bool> { + }, Bool> { // flags: Api.Type; bot?: Api.TypeInputUser; langCode: string; @@ -26443,191 +26443,191 @@ namespace Api { about?: string; description?: string; } - export class GetBotInfo extends Request, bots.TypeBotInfo> { + }, bots.TypeBotInfo> { // flags: Api.Type; bot?: Api.TypeInputUser; langCode: string; } - export class ReorderUsernames extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; order: string[]; } - export class ToggleUsername extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; username: string; active: Bool; } - export class CanSendMessage extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; } - export class AllowSendMessage extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { bot: Api.TypeInputUser; } - export class InvokeWebViewCustomMethod extends Request, Api.TypeDataJSON> { + }, Api.TypeDataJSON> { bot: Api.TypeInputUser; customMethod: string; params: Api.TypeDataJSON; } - export class GetPopularAppBots extends Request, bots.TypePopularAppBots> { + }, bots.TypePopularAppBots> { offset: string; limit: int; } - export class AddPreviewMedia extends Request, Api.TypeBotPreviewMedia> { + }, Api.TypeBotPreviewMedia> { bot: Api.TypeInputUser; langCode: string; media: Api.TypeInputMedia; } - export class EditPreviewMedia extends Request, Api.TypeBotPreviewMedia> { + }, Api.TypeBotPreviewMedia> { bot: Api.TypeInputUser; langCode: string; media: Api.TypeInputMedia; newMedia: Api.TypeInputMedia; } - export class DeletePreviewMedia extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; langCode: string; media: Api.TypeInputMedia[]; } - export class ReorderPreviewMedias extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; langCode: string; order: Api.TypeInputMedia[]; } - export class GetPreviewInfo extends Request, bots.TypePreviewInfo> { + }, bots.TypePreviewInfo> { bot: Api.TypeInputUser; langCode: string; } - export class GetPreviewMedias extends Request, Api.TypeBotPreviewMedia[]> { + }, Api.TypeBotPreviewMedia[]> { bot: Api.TypeInputUser; } - export class UpdateUserEmojiStatus extends Request, Bool> { + }, Bool> { userId: Api.TypeInputUser; emojiStatus: Api.TypeEmojiStatus; } - export class ToggleUserEmojiStatusPermission extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; enabled: Bool; } - export class CheckDownloadFileParams extends Request, Bool> { + }, Bool> { bot: Api.TypeInputUser; fileName: string; url: string; } export class GetAdminedBots extends Request {} - export class UpdateStarRefProgram extends Request, Api.TypeStarRefProgram> { + }, Api.TypeStarRefProgram> { // flags: Api.Type; bot: Api.TypeInputUser; commissionPermille: int; durationMonths?: int; } - export class SetCustomVerification extends Request, Bool> { + }, Bool> { // flags: Api.Type; enabled?: true; bot?: Api.TypeInputUser; peer: Api.TypeInputPeer; customDescription?: string; } - export class GetBotRecommendations extends Request, users.TypeUsers> { + }, users.TypeUsers> { bot: Api.TypeInputUser; } } export namespace payments { - export class GetPaymentForm extends Request, payments.TypePaymentForm> { + }, payments.TypePaymentForm> { // flags: Api.Type; invoice: Api.TypeInputInvoice; themeParams?: Api.TypeDataJSON; } - export class GetPaymentReceipt extends Request, payments.TypePaymentReceipt> { + }, payments.TypePaymentReceipt> { peer: Api.TypeInputPeer; msgId: int; } - export class ValidateRequestedInfo extends Request, payments.TypeValidatedRequestedInfo> { + }, payments.TypeValidatedRequestedInfo> { // flags: Api.Type; save?: true; invoice: Api.TypeInputInvoice; info: Api.TypePaymentRequestedInfo; } - export class SendPaymentForm extends Request, payments.TypePaymentResult> { + }, payments.TypePaymentResult> { // flags: Api.Type; formId: long; invoice: Api.TypeInputInvoice; @@ -26645,79 +26645,79 @@ namespace Api { tipAmount?: long; } export class GetSavedInfo extends Request {} - export class ClearSavedInfo extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; credentials?: true; info?: true; } - export class GetBankCardData extends Request, payments.TypeBankCardData> { + }, payments.TypeBankCardData> { number: string; } - export class ExportInvoice extends Request, payments.TypeExportedInvoice> { + }, payments.TypeExportedInvoice> { invoiceMedia: Api.TypeInputMedia; } - export class AssignAppStoreTransaction extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { receipt: bytes; purpose: Api.TypeInputStorePaymentPurpose; } - export class AssignPlayMarketTransaction extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { receipt: Api.TypeDataJSON; purpose: Api.TypeInputStorePaymentPurpose; } - export class GetPremiumGiftCodeOptions extends Request, Api.TypePremiumGiftCodeOption[]> { + } | void, Api.TypePremiumGiftCodeOption[]> { // flags: Api.Type; boostPeer?: Api.TypeInputPeer; } - export class CheckGiftCode extends Request, payments.TypeCheckedGiftCode> { + }, payments.TypeCheckedGiftCode> { slug: string; } - export class ApplyGiftCode extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { slug: string; } - export class GetGiveawayInfo extends Request, payments.TypeGiveawayInfo> { + }, payments.TypeGiveawayInfo> { peer: Api.TypeInputPeer; msgId: int; } - export class LaunchPrepaidGiveaway extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { peer: Api.TypeInputPeer; giveawayId: long; purpose: Api.TypeInputStorePaymentPurpose; } export class GetStarsTopupOptions extends Request {} - export class GetStarsStatus extends Request, payments.TypeStarsStatus> { + }, payments.TypeStarsStatus> { peer: Api.TypeInputPeer; } - export class GetStarsTransactions extends Request, payments.TypeStarsStatus> { + }, payments.TypeStarsStatus> { // flags: Api.Type; inbound?: true; outbound?: true; @@ -26736,145 +26736,145 @@ namespace Api { offset: string; limit: int; } - export class SendStarsForm extends Request, payments.TypePaymentResult> { + }, payments.TypePaymentResult> { formId: long; invoice: Api.TypeInputInvoice; } - export class RefundStarsCharge extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { userId: Api.TypeInputUser; chargeId: string; } - export class GetStarsRevenueStats extends Request, payments.TypeStarsRevenueStats> { + }, payments.TypeStarsRevenueStats> { // flags: Api.Type; dark?: true; peer: Api.TypeInputPeer; } - export class GetStarsRevenueWithdrawalUrl extends Request, payments.TypeStarsRevenueWithdrawalUrl> { + }, payments.TypeStarsRevenueWithdrawalUrl> { peer: Api.TypeInputPeer; stars: long; password: Api.TypeInputCheckPasswordSRP; } - export class GetStarsRevenueAdsAccountUrl extends Request, payments.TypeStarsRevenueAdsAccountUrl> { + }, payments.TypeStarsRevenueAdsAccountUrl> { peer: Api.TypeInputPeer; } - export class GetStarsTransactionsByID extends Request, payments.TypeStarsStatus> { + }, payments.TypeStarsStatus> { peer: Api.TypeInputPeer; id: Api.TypeInputStarsTransaction[]; } - export class GetStarsGiftOptions extends Request, Api.TypeStarsGiftOption[]> { + } | void, Api.TypeStarsGiftOption[]> { // flags: Api.Type; userId?: Api.TypeInputUser; } - export class GetStarsSubscriptions extends Request, payments.TypeStarsStatus> { + }, payments.TypeStarsStatus> { // flags: Api.Type; missingBalance?: true; peer: Api.TypeInputPeer; offset: string; } - export class ChangeStarsSubscription extends Request, Bool> { + }, Bool> { // flags: Api.Type; peer: Api.TypeInputPeer; subscriptionId: string; canceled?: Bool; } - export class FulfillStarsSubscription extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; subscriptionId: string; } export class GetStarsGiveawayOptions extends Request {} - export class GetStarGifts extends Request, payments.TypeStarGifts> { + }, payments.TypeStarGifts> { hash: int; } - export class SaveStarGift extends Request, Bool> { + }, Bool> { // flags: Api.Type; unsave?: true; stargift: Api.TypeInputSavedStarGift; } - export class ConvertStarGift extends Request, Bool> { + }, Bool> { stargift: Api.TypeInputSavedStarGift; } - export class BotCancelStarsSubscription extends Request, Bool> { + }, Bool> { // flags: Api.Type; restore?: true; userId: Api.TypeInputUser; chargeId: string; } - export class GetConnectedStarRefBots extends Request, payments.TypeConnectedStarRefBots> { + }, payments.TypeConnectedStarRefBots> { // flags: Api.Type; peer: Api.TypeInputPeer; offsetDate?: int; offsetLink?: string; limit: int; } - export class GetConnectedStarRefBot extends Request, payments.TypeConnectedStarRefBots> { + }, payments.TypeConnectedStarRefBots> { peer: Api.TypeInputPeer; bot: Api.TypeInputUser; } - export class GetSuggestedStarRefBots extends Request, payments.TypeSuggestedStarRefBots> { + }, payments.TypeSuggestedStarRefBots> { // flags: Api.Type; orderByRevenue?: true; orderByDate?: true; @@ -26882,51 +26882,51 @@ namespace Api { offset: string; limit: int; } - export class ConnectStarRefBot extends Request, payments.TypeConnectedStarRefBots> { + }, payments.TypeConnectedStarRefBots> { peer: Api.TypeInputPeer; bot: Api.TypeInputUser; } - export class EditConnectedStarRefBot extends Request, payments.TypeConnectedStarRefBots> { + }, payments.TypeConnectedStarRefBots> { // flags: Api.Type; revoked?: true; peer: Api.TypeInputPeer; link: string; } - export class GetStarGiftUpgradePreview extends Request, payments.TypeStarGiftUpgradePreview> { + }, payments.TypeStarGiftUpgradePreview> { giftId: long; } - export class UpgradeStarGift extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; keepOriginalDetails?: true; stargift: Api.TypeInputSavedStarGift; } - export class TransferStarGift extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { stargift: Api.TypeInputSavedStarGift; toId: Api.TypeInputPeer; } - export class GetUniqueStarGift extends Request, payments.TypeUniqueStarGift> { + }, payments.TypeUniqueStarGift> { slug: string; } - export class GetSavedStarGifts extends Request, payments.TypeSavedStarGifts> { + }, payments.TypeSavedStarGifts> { // flags: Api.Type; excludeUnsaved?: true; excludeSaved?: true; @@ -26949,40 +26949,40 @@ namespace Api { offset: string; limit: int; } - export class GetSavedStarGift extends Request, payments.TypeSavedStarGifts> { + }, payments.TypeSavedStarGifts> { stargift: Api.TypeInputSavedStarGift[]; } - export class GetStarGiftWithdrawalUrl extends Request, payments.TypeStarGiftWithdrawalUrl> { + }, payments.TypeStarGiftWithdrawalUrl> { stargift: Api.TypeInputSavedStarGift; password: Api.TypeInputCheckPasswordSRP; } - export class ToggleChatStarGiftNotifications extends Request, Bool> { + }, Bool> { // flags: Api.Type; enabled?: true; peer: Api.TypeInputPeer; } - export class ToggleStarGiftsPinnedToTop extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; stargift: Api.TypeInputSavedStarGift[]; } - export class CanPurchaseStore extends Request, Bool> { + }, Bool> { purpose: Api.TypeInputStorePaymentPurpose; } - export class GetResaleStarGifts extends Request, payments.TypeResaleStarGifts> { + }, payments.TypeResaleStarGifts> { // flags: Api.Type; sortByPrice?: true; sortByNum?: true; @@ -27001,17 +27001,17 @@ namespace Api { offset: string; limit: int; } - export class UpdateStarGiftPrice extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { stargift: Api.TypeInputSavedStarGift; resellStars: long; } } export namespace stickers { - export class CreateStickerSet extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { // flags: Api.Type; masks?: true; emojis?: true; @@ -27034,75 +27034,75 @@ namespace Api { stickers: Api.TypeInputStickerSetItem[]; software?: string; } - export class RemoveStickerFromSet extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { sticker: Api.TypeInputDocument; } - export class ChangeStickerPosition extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { sticker: Api.TypeInputDocument; position: int; } - export class AddStickerToSet extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { stickerset: Api.TypeInputStickerSet; sticker: Api.TypeInputStickerSetItem; } - export class SetStickerSetThumb extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { // flags: Api.Type; stickerset: Api.TypeInputStickerSet; thumb?: Api.TypeInputDocument; thumbDocumentId?: long; } - export class CheckShortName extends Request, Bool> { + }, Bool> { shortName: string; } - export class SuggestShortName extends Request, stickers.TypeSuggestedShortName> { + }, stickers.TypeSuggestedShortName> { title: string; } - export class ChangeSticker extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { // flags: Api.Type; sticker: Api.TypeInputDocument; emoji?: string; maskCoords?: Api.TypeMaskCoords; keywords?: string; } - export class RenameStickerSet extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { stickerset: Api.TypeInputStickerSet; title: string; } - export class DeleteStickerSet extends Request, Bool> { + }, Bool> { stickerset: Api.TypeInputStickerSet; } - export class ReplaceSticker extends Request, messages.TypeStickerSet> { + }, messages.TypeStickerSet> { sticker: Api.TypeInputDocument; newSticker: Api.TypeInputStickerSetItem; } @@ -27110,14 +27110,14 @@ namespace Api { export namespace phone { export class GetCallConfig extends Request {} - export class RequestCall extends Request, phone.TypePhoneCall> { + }, phone.TypePhoneCall> { // flags: Api.Type; video?: true; userId: Api.TypeInputUser; @@ -27125,39 +27125,39 @@ namespace Api { gAHash: bytes; protocol: Api.TypePhoneCallProtocol; } - export class AcceptCall extends Request, phone.TypePhoneCall> { + }, phone.TypePhoneCall> { peer: Api.TypeInputPhoneCall; gB: bytes; protocol: Api.TypePhoneCallProtocol; } - export class ConfirmCall extends Request, phone.TypePhoneCall> { + }, phone.TypePhoneCall> { peer: Api.TypeInputPhoneCall; gA: bytes; keyFingerprint: long; protocol: Api.TypePhoneCallProtocol; } - export class ReceivedCall extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPhoneCall; } - export class DiscardCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; video?: true; peer: Api.TypeInputPhoneCall; @@ -27165,41 +27165,41 @@ namespace Api { reason: Api.TypePhoneCallDiscardReason; connectionId: long; } - export class SetCallRating extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; userInitiative?: true; peer: Api.TypeInputPhoneCall; rating: int; comment: string; } - export class SaveCallDebug extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPhoneCall; debug: Api.TypeDataJSON; } - export class SendSignalingData extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPhoneCall; data: bytes; } - export class CreateGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; rtmpStream?: true; peer: Api.TypeInputPeer; @@ -27207,7 +27207,7 @@ namespace Api { title?: string; scheduleDate?: int; } - export class JoinGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; muted?: true; videoStopped?: true; @@ -27228,71 +27228,71 @@ namespace Api { block?: bytes; params: Api.TypeDataJSON; } - export class LeaveGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; source: int; } - export class InviteToGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; users: Api.TypeInputUser[]; } - export class DiscardGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; } - export class ToggleGroupCallSettings extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; resetInviteHash?: true; call: Api.TypeInputGroupCall; joinMuted?: Bool; } - export class GetGroupCall extends Request, phone.TypeGroupCall> { + }, phone.TypeGroupCall> { call: Api.TypeInputGroupCall; limit: int; } - export class GetGroupParticipants extends Request, phone.TypeGroupParticipants> { + }, phone.TypeGroupParticipants> { call: Api.TypeInputGroupCall; ids: Api.TypeInputPeer[]; sources: int[]; offset: string; limit: int; } - export class CheckGroupCall extends Request, int[]> { + }, int[]> { call: Api.TypeInputGroupCall; sources: int[]; } - export class ToggleGroupCallRecord extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; start?: true; video?: true; @@ -27300,7 +27300,7 @@ namespace Api { title?: string; videoPortrait?: Bool; } - export class EditGroupCallParticipant extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; call: Api.TypeInputGroupCall; participant: Api.TypeInputPeer; @@ -27321,78 +27321,78 @@ namespace Api { videoPaused?: Bool; presentationPaused?: Bool; } - export class EditGroupCallTitle extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; title: string; } - export class GetGroupCallJoinAs extends Request, phone.TypeJoinAsPeers> { + }, phone.TypeJoinAsPeers> { peer: Api.TypeInputPeer; } - export class ExportGroupCallInvite extends Request, phone.TypeExportedGroupCallInvite> { + }, phone.TypeExportedGroupCallInvite> { // flags: Api.Type; canSelfUnmute?: true; call: Api.TypeInputGroupCall; } - export class ToggleGroupCallStartSubscription extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; subscribed: Bool; } - export class StartScheduledGroupCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; } - export class SaveDefaultGroupCallJoinAs extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; joinAs: Api.TypeInputPeer; } - export class JoinGroupCallPresentation extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; params: Api.TypeDataJSON; } - export class LeaveGroupCallPresentation extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; } - export class GetGroupCallStreamChannels extends Request, phone.TypeGroupCallStreamChannels> { + }, phone.TypeGroupCallStreamChannels> { call: Api.TypeInputGroupCall; } - export class GetGroupCallStreamRtmpUrl extends Request, phone.TypeGroupCallStreamRtmpUrl> { + }, phone.TypeGroupCallStreamRtmpUrl> { peer: Api.TypeInputPeer; revoke: Bool; } - export class SaveCallLog extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPhoneCall; file: Api.TypeInputFile; } - export class CreateConferenceCall extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; muted?: true; videoStopped?: true; @@ -27411,14 +27411,14 @@ namespace Api { block?: bytes; params?: Api.TypeDataJSON; } - export class DeleteConferenceCallParticipants extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; onlyLeft?: true; kick?: true; @@ -27426,35 +27426,35 @@ namespace Api { ids: long[]; block: bytes; } - export class SendConferenceCallBroadcast extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; block: bytes; } - export class InviteConferenceCallParticipant extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; video?: true; call: Api.TypeInputGroupCall; userId: Api.TypeInputUser; } - export class DeclineConferenceCallInvite extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { msgId: int; } - export class GetGroupCallChainBlocks extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { call: Api.TypeInputGroupCall; subChainId: int; offset: int; @@ -27463,146 +27463,146 @@ namespace Api { } export namespace langpack { - export class GetLangPack extends Request, Api.TypeLangPackDifference> { + }, Api.TypeLangPackDifference> { langPack: string; langCode: string; } - export class GetStrings extends Request, Api.TypeLangPackString[]> { + }, Api.TypeLangPackString[]> { langPack: string; langCode: string; keys: string[]; } - export class GetDifference extends Request, Api.TypeLangPackDifference> { + }, Api.TypeLangPackDifference> { langPack: string; langCode: string; fromVersion: int; } - export class GetLanguages extends Request, Api.TypeLangPackLanguage[]> { + }, Api.TypeLangPackLanguage[]> { langPack: string; } - export class GetLanguage extends Request, Api.TypeLangPackLanguage> { + }, Api.TypeLangPackLanguage> { langPack: string; langCode: string; } } export namespace folders { - export class EditPeerFolders extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { folderPeers: Api.TypeInputFolderPeer[]; } } export namespace stats { - export class GetBroadcastStats extends Request, stats.TypeBroadcastStats> { + }, stats.TypeBroadcastStats> { // flags: Api.Type; dark?: true; channel: Api.TypeInputChannel; } - export class LoadAsyncGraph extends Request, Api.TypeStatsGraph> { + }, Api.TypeStatsGraph> { // flags: Api.Type; token: string; x?: long; } - export class GetMegagroupStats extends Request, stats.TypeMegagroupStats> { + }, stats.TypeMegagroupStats> { // flags: Api.Type; dark?: true; channel: Api.TypeInputChannel; } - export class GetMessagePublicForwards extends Request, stats.TypePublicForwards> { + }, stats.TypePublicForwards> { channel: Api.TypeInputChannel; msgId: int; offset: string; limit: int; } - export class GetMessageStats extends Request, stats.TypeMessageStats> { + }, stats.TypeMessageStats> { // flags: Api.Type; dark?: true; channel: Api.TypeInputChannel; msgId: int; } - export class GetStoryStats extends Request, stats.TypeStoryStats> { + }, stats.TypeStoryStats> { // flags: Api.Type; dark?: true; peer: Api.TypeInputPeer; id: int; } - export class GetStoryPublicForwards extends Request, stats.TypePublicForwards> { + }, stats.TypePublicForwards> { peer: Api.TypeInputPeer; id: int; offset: string; limit: int; } - export class GetBroadcastRevenueStats extends Request, stats.TypeBroadcastRevenueStats> { + }, stats.TypeBroadcastRevenueStats> { // flags: Api.Type; dark?: true; peer: Api.TypeInputPeer; } - export class GetBroadcastRevenueWithdrawalUrl extends Request, stats.TypeBroadcastRevenueWithdrawalUrl> { + }, stats.TypeBroadcastRevenueWithdrawalUrl> { peer: Api.TypeInputPeer; password: Api.TypeInputCheckPasswordSRP; } - export class GetBroadcastRevenueTransactions extends Request, stats.TypeBroadcastRevenueTransactions> { + }, stats.TypeBroadcastRevenueTransactions> { peer: Api.TypeInputPeer; offset: int; limit: int; @@ -27610,90 +27610,90 @@ namespace Api { } export namespace chatlists { - export class ExportChatlistInvite extends Request, chatlists.TypeExportedChatlistInvite> { + }, chatlists.TypeExportedChatlistInvite> { chatlist: Api.TypeInputChatlist; title: string; peers: Api.TypeInputPeer[]; } - export class DeleteExportedInvite extends Request, Bool> { + }, Bool> { chatlist: Api.TypeInputChatlist; slug: string; } - export class EditExportedInvite extends Request, Api.TypeExportedChatlistInvite> { + }, Api.TypeExportedChatlistInvite> { // flags: Api.Type; chatlist: Api.TypeInputChatlist; slug: string; title?: string; peers?: Api.TypeInputPeer[]; } - export class GetExportedInvites extends Request, chatlists.TypeExportedInvites> { + }, chatlists.TypeExportedInvites> { chatlist: Api.TypeInputChatlist; } - export class CheckChatlistInvite extends Request, chatlists.TypeChatlistInvite> { + }, chatlists.TypeChatlistInvite> { slug: string; } - export class JoinChatlistInvite extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { slug: string; peers: Api.TypeInputPeer[]; } - export class GetChatlistUpdates extends Request, chatlists.TypeChatlistUpdates> { + }, chatlists.TypeChatlistUpdates> { chatlist: Api.TypeInputChatlist; } - export class JoinChatlistUpdates extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { chatlist: Api.TypeInputChatlist; peers: Api.TypeInputPeer[]; } - export class HideChatlistUpdates extends Request, Bool> { + }, Bool> { chatlist: Api.TypeInputChatlist; } - export class GetLeaveChatlistSuggestions extends Request, Api.TypePeer[]> { + }, Api.TypePeer[]> { chatlist: Api.TypeInputChatlist; } - export class LeaveChatlist extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { chatlist: Api.TypeInputChatlist; peers: Api.TypeInputPeer[]; } } export namespace stories { - export class CanSendStory extends Request, stories.TypeCanSendStoryCount> { + }, stories.TypeCanSendStoryCount> { peer: Api.TypeInputPeer; } - export class SendStory extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; pinned?: true; noforwards?: true; @@ -27724,7 +27724,7 @@ namespace Api { fwdFromId?: Api.TypeInputPeer; fwdFromStory?: int; } - export class EditStory extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; peer: Api.TypeInputPeer; id: int; @@ -27743,78 +27743,78 @@ namespace Api { entities?: Api.TypeMessageEntity[]; privacyRules?: Api.TypeInputPrivacyRule[]; } - export class DeleteStories extends Request, int[]> { + }, int[]> { peer: Api.TypeInputPeer; id: int[]; } - export class TogglePinned extends Request, int[]> { + }, int[]> { peer: Api.TypeInputPeer; id: int[]; pinned: Bool; } - export class GetAllStories extends Request, stories.TypeAllStories> { + } | void, stories.TypeAllStories> { // flags: Api.Type; next?: true; hidden?: true; state?: string; } - export class GetPinnedStories extends Request, stories.TypeStories> { + }, stories.TypeStories> { peer: Api.TypeInputPeer; offsetId: int; limit: int; } - export class GetStoriesArchive extends Request, stories.TypeStories> { + }, stories.TypeStories> { peer: Api.TypeInputPeer; offsetId: int; limit: int; } - export class GetStoriesByID extends Request, stories.TypeStories> { + }, stories.TypeStories> { peer: Api.TypeInputPeer; id: int[]; } - export class ToggleAllStoriesHidden extends Request, Bool> { + }, Bool> { hidden: Bool; } - export class ReadStories extends Request, int[]> { + }, int[]> { peer: Api.TypeInputPeer; maxId: int; } - export class IncrementStoryViews extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; id: int[]; } - export class GetStoryViewsList extends Request, stories.TypeStoryViewsList> { + }, stories.TypeStoryViewsList> { // flags: Api.Type; justContacts?: true; reactionsFirst?: true; @@ -27835,73 +27835,73 @@ namespace Api { offset: string; limit: int; } - export class GetStoriesViews extends Request, stories.TypeStoryViews> { + }, stories.TypeStoryViews> { peer: Api.TypeInputPeer; id: int[]; } - export class ExportStoryLink extends Request, Api.TypeExportedStoryLink> { + }, Api.TypeExportedStoryLink> { peer: Api.TypeInputPeer; id: int; } - export class Report extends Request, Api.TypeReportResult> { + }, Api.TypeReportResult> { peer: Api.TypeInputPeer; id: int[]; option: bytes; message: string; } - export class ActivateStealthMode extends Request, Api.TypeUpdates> { + } | void, Api.TypeUpdates> { // flags: Api.Type; past?: true; future?: true; } - export class SendReaction extends Request, Api.TypeUpdates> { + }, Api.TypeUpdates> { // flags: Api.Type; addToRecent?: true; peer: Api.TypeInputPeer; storyId: int; reaction: Api.TypeReaction; } - export class GetPeerStories extends Request, stories.TypePeerStories> { + }, stories.TypePeerStories> { peer: Api.TypeInputPeer; } export class GetAllReadPeerStories extends Request {} - export class GetPeerMaxIDs extends Request, int[]> { + }, int[]> { id: Api.TypeInputPeer[]; } export class GetChatsToSend extends Request {} - export class TogglePeerStoriesHidden extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; hidden: Bool; } - export class GetStoryReactionsList extends Request, stories.TypeStoryReactionsList> { + }, stories.TypeStoryReactionsList> { // flags: Api.Type; forwardsFirst?: true; peer: Api.TypeInputPeer; @@ -27918,21 +27918,21 @@ namespace Api { offset?: string; limit: int; } - export class TogglePinnedToTop extends Request, Bool> { + }, Bool> { peer: Api.TypeInputPeer; id: int[]; } - export class SearchPosts extends Request, stories.TypeFoundStories> { + }, stories.TypeFoundStories> { // flags: Api.Type; hashtag?: string; area?: Api.TypeMediaArea; @@ -27943,13 +27943,13 @@ namespace Api { } export namespace premium { - export class GetBoostsList extends Request, premium.TypeBoostsList> { + }, premium.TypeBoostsList> { // flags: Api.Type; gifts?: true; peer: Api.TypeInputPeer; @@ -27957,24 +27957,24 @@ namespace Api { limit: int; } export class GetMyBoosts extends Request {} - export class ApplyBoost extends Request, premium.TypeMyBoosts> { + }, premium.TypeMyBoosts> { // flags: Api.Type; slots?: int[]; peer: Api.TypeInputPeer; } - export class GetBoostsStatus extends Request, premium.TypeBoostsStatus> { + }, premium.TypeBoostsStatus> { peer: Api.TypeInputPeer; } - export class GetUserBoosts extends Request, premium.TypeBoostsList> { + }, premium.TypeBoostsList> { peer: Api.TypeInputPeer; userId: Api.TypeInputUser; } @@ -27984,24 +27984,24 @@ namespace Api { export class IsEligibleToJoin extends Request {} export class Join extends Request {} export class Leave extends Request {} - export class UpdateSettings extends Request, Bool> { + } | void, Bool> { // flags: Api.Type; allowInternational?: true; } export class GetStatus extends Request {} - export class GetSmsJob extends Request, Api.TypeSmsJob> { + }, Api.TypeSmsJob> { jobId: string; } - export class FinishJob extends Request, Bool> { + }, Bool> { // flags: Api.Type; jobId: string; error?: string; @@ -28009,9 +28009,9 @@ namespace Api { } export namespace fragment { - export class GetCollectibleInfo extends Request, fragment.TypeCollectibleInfo> { + }, fragment.TypeCollectibleInfo> { collectible: Api.TypeInputCollectible; } } diff --git a/src/lib/gramjs/tl/types-generator/template.ts b/src/lib/gramjs/tl/types-generator/template.ts index 5205dcf58..f448c0a29 100644 --- a/src/lib/gramjs/tl/types-generator/template.ts +++ b/src/lib/gramjs/tl/types-generator/template.ts @@ -88,12 +88,12 @@ ${indent}}`.trim(); const hasRequiredArgs = argKeys.some((argName) => !isFlagArg(argName) && !argsConfig[argName].isFlag); return ` - export class ${upperFirst(name)} extends Request ` ${renderArg(argName, argsConfig[argName])}; `.trim()) .join(`\n${indent} `)} -${indent}}${!hasRequiredArgs ? ' | void' : ''}>, ${renderedResult}> { +${indent}}${!hasRequiredArgs ? ' | void' : ''}, ${renderedResult}> { ${indent} ${argKeys.map((argName) => ` ${renderArg(argName, argsConfig[argName])}; `.trim()) @@ -200,7 +200,7 @@ namespace Api { constructor(args: Args); } - class Request extends VirtualClass> { + class Request extends VirtualClass { static readResult(reader: Reader): Buffer; __response: Response;