
// This file is autogenerated. All changes will be overwritten.

export default Api;

namespace Api {

  type AnyClass = new (...args: any[]) => any;
  type I<T extends AnyClass> = InstanceType<T>;
  type ValuesOf<T> = T[keyof T];
  type AnyLiteral = Record<string, any> | void;

  type Reader = any; // To be defined.
  type Client = any; // To be defined.
  type Utils = any; // To be defined.

  type X = unknown;
  type Type = unknown;
  type Bool = boolean;
  type int = number;
  type double = number;
  type int128 = bigint;
  type int256 = bigint;
  type long = bigint;
  type bytes = Buffer<ArrayBuffer>;

  class VirtualClass<Args extends AnyLiteral> {
    static CONSTRUCTOR_ID: number;
    static SUBCLASS_OF_ID: number;
    static className: string;
    static classType: 'constructor' | 'request';

    static serializeBytes(data: Buffer<ArrayBuffer> | string): Buffer<ArrayBuffer>;

    getBytes(): Buffer<ArrayBuffer>;
    CONSTRUCTOR_ID: number;
    SUBCLASS_OF_ID: number;
    className: string;
    classType: 'constructor' | 'request';

    constructor(args: Args);
  }

  class Request<Args, Response> extends VirtualClass<Args> {
    static readResult(reader: Reader): Buffer<ArrayBuffer>;

    __response: Response;
  }

  export type TypeInputPeer = InputPeerEmpty | InputPeerSelf | InputPeerChat | InputPeerUser | InputPeerChannel | InputPeerUserFromMessage | InputPeerChannelFromMessage;
  export type TypeInputUser = InputUserEmpty | InputUserSelf | InputUser | InputUserFromMessage;
  export type TypeInputContact = InputPhoneContact;
  export type TypeInputFile = InputFile | InputFileBig | InputFileStoryDocument;
  export type TypeInputMedia = InputMediaEmpty | InputMediaUploadedPhoto | InputMediaPhoto | InputMediaGeoPoint | InputMediaContact | InputMediaUploadedDocument | InputMediaDocument | InputMediaVenue | InputMediaPhotoExternal | InputMediaDocumentExternal | InputMediaGame | InputMediaInvoice | InputMediaGeoLive | InputMediaPoll | InputMediaDice | InputMediaStory | InputMediaWebPage | InputMediaPaidMedia | InputMediaTodo | InputMediaStakeDice;
  export type TypeInputChatPhoto = InputChatPhotoEmpty | InputChatUploadedPhoto | InputChatPhoto;
  export type TypeInputGeoPoint = InputGeoPointEmpty | InputGeoPoint;
  export type TypeInputPhoto = InputPhotoEmpty | InputPhoto;
  export type TypeInputFileLocation = InputFileLocation | InputEncryptedFileLocation | InputDocumentFileLocation | InputSecureFileLocation | InputTakeoutFileLocation | InputPhotoFileLocation | InputPhotoLegacyFileLocation | InputPeerPhotoFileLocation | InputStickerSetThumb | InputGroupCallStream;
  export type TypePeer = PeerUser | PeerChat | PeerChannel;
  export type TypeUser = UserEmpty | User;
  export type TypeUserProfilePhoto = UserProfilePhotoEmpty | UserProfilePhoto;
  export type TypeUserStatus = UserStatusEmpty | UserStatusOnline | UserStatusOffline | UserStatusRecently | UserStatusLastWeek | UserStatusLastMonth;
  export type TypeChat = ChatEmpty | Chat | ChatForbidden | Channel | ChannelForbidden;
  export type TypeChatFull = ChatFull | ChannelFull;
  export type TypeChatParticipant = ChatParticipant | ChatParticipantCreator | ChatParticipantAdmin;
  export type TypeChatParticipants = ChatParticipantsForbidden | ChatParticipants;
  export type TypeChatPhoto = ChatPhotoEmpty | ChatPhoto;
  export type TypeMessage = MessageEmpty | Message | MessageService;
  export type TypeMessageMedia = MessageMediaEmpty | MessageMediaPhoto | MessageMediaGeo | MessageMediaContact | MessageMediaUnsupported | MessageMediaDocument | MessageMediaWebPage | MessageMediaVenue | MessageMediaGame | MessageMediaInvoice | MessageMediaGeoLive | MessageMediaPoll | MessageMediaDice | MessageMediaStory | MessageMediaGiveaway | MessageMediaGiveawayResults | MessageMediaPaidMedia | MessageMediaToDo | MessageMediaVideoStream;
  export type TypeMessageAction = MessageActionEmpty | MessageActionChatCreate | MessageActionChatEditTitle | MessageActionChatEditPhoto | MessageActionChatDeletePhoto | MessageActionChatAddUser | MessageActionChatDeleteUser | MessageActionChatJoinedByLink | MessageActionChannelCreate | MessageActionChatMigrateTo | MessageActionChannelMigrateFrom | MessageActionPinMessage | MessageActionHistoryClear | MessageActionGameScore | MessageActionPaymentSentMe | MessageActionPaymentSent | MessageActionPhoneCall | MessageActionScreenshotTaken | MessageActionCustomAction | MessageActionBotAllowed | MessageActionSecureValuesSentMe | MessageActionSecureValuesSent | MessageActionContactSignUp | MessageActionGeoProximityReached | MessageActionGroupCall | MessageActionInviteToGroupCall | MessageActionSetMessagesTTL | MessageActionGroupCallScheduled | MessageActionSetChatTheme | MessageActionChatJoinedByRequest | MessageActionWebViewDataSentMe | MessageActionWebViewDataSent | MessageActionGiftPremium | MessageActionTopicCreate | MessageActionTopicEdit | MessageActionSuggestProfilePhoto | MessageActionRequestedPeer | MessageActionSetChatWallPaper | MessageActionGiftCode | MessageActionGiveawayLaunch | MessageActionGiveawayResults | MessageActionBoostApply | MessageActionRequestedPeerSentMe | MessageActionPaymentRefunded | MessageActionGiftStars | MessageActionPrizeStars | MessageActionStarGift | MessageActionStarGiftUnique | MessageActionPaidMessagesRefunded | MessageActionPaidMessagesPrice | MessageActionConferenceCall | MessageActionTodoCompletions | MessageActionTodoAppendTasks | MessageActionSuggestedPostApproval | MessageActionSuggestedPostSuccess | MessageActionSuggestedPostRefund | MessageActionGiftTon | MessageActionSuggestBirthday | MessageActionStarGiftPurchaseOffer | MessageActionStarGiftPurchaseOfferDeclined | MessageActionNewCreatorPending | MessageActionChangeCreator | MessageActionNoForwardsToggle | MessageActionNoForwardsRequest | MessageActionPollAppendAnswer | MessageActionPollDeleteAnswer | MessageActionManagedBotCreated;
  export type TypeDialog = Dialog | DialogFolder;
  export type TypePhoto = PhotoEmpty | Photo;
  export type TypePhotoSize = PhotoSizeEmpty | PhotoSize | PhotoCachedSize | PhotoStrippedSize | PhotoSizeProgressive | PhotoPathSize;
  export type TypeGeoPoint = GeoPointEmpty | GeoPoint;
  export type TypeInputNotifyPeer = InputNotifyPeer | InputNotifyUsers | InputNotifyChats | InputNotifyBroadcasts | InputNotifyForumTopic;
  export type TypeInputPeerNotifySettings = InputPeerNotifySettings;
  export type TypePeerNotifySettings = PeerNotifySettings;
  export type TypePeerSettings = PeerSettings;
  export type TypeWallPaper = WallPaper | WallPaperNoFile;
  export type TypeReportReason = InputReportReasonSpam | InputReportReasonViolence | InputReportReasonPornography | InputReportReasonChildAbuse | InputReportReasonOther | InputReportReasonCopyright | InputReportReasonGeoIrrelevant | InputReportReasonFake | InputReportReasonIllegalDrugs | InputReportReasonPersonalDetails;
  export type TypeUserFull = UserFull;
  export type TypeContact = Contact;
  export type TypeImportedContact = ImportedContact;
  export type TypeContactStatus = ContactStatus;
  export type TypeMessagesFilter = InputMessagesFilterEmpty | InputMessagesFilterPhotos | InputMessagesFilterVideo | InputMessagesFilterPhotoVideo | InputMessagesFilterDocument | InputMessagesFilterUrl | InputMessagesFilterGif | InputMessagesFilterVoice | InputMessagesFilterMusic | InputMessagesFilterChatPhotos | InputMessagesFilterPhoneCalls | InputMessagesFilterRoundVoice | InputMessagesFilterRoundVideo | InputMessagesFilterMyMentions | InputMessagesFilterGeo | InputMessagesFilterContacts | InputMessagesFilterPinned | InputMessagesFilterPoll;
  export type TypeUpdate = UpdateNewMessage | UpdateMessageID | UpdateDeleteMessages | UpdateUserTyping | UpdateChatUserTyping | UpdateChatParticipants | UpdateUserStatus | UpdateUserName | UpdateNewAuthorization | UpdateNewEncryptedMessage | UpdateEncryptedChatTyping | UpdateEncryption | UpdateEncryptedMessagesRead | UpdateChatParticipantAdd | UpdateChatParticipantDelete | UpdateDcOptions | UpdateNotifySettings | UpdateServiceNotification | UpdatePrivacy | UpdateUserPhone | UpdateReadHistoryInbox | UpdateReadHistoryOutbox | UpdateWebPage | UpdateReadMessagesContents | UpdateChannelTooLong | UpdateChannel | UpdateNewChannelMessage | UpdateReadChannelInbox | UpdateDeleteChannelMessages | UpdateChannelMessageViews | UpdateChatParticipantAdmin | UpdateNewStickerSet | UpdateStickerSetsOrder | UpdateStickerSets | UpdateSavedGifs | UpdateBotInlineQuery | UpdateBotInlineSend | UpdateEditChannelMessage | UpdateBotCallbackQuery | UpdateEditMessage | UpdateInlineBotCallbackQuery | UpdateReadChannelOutbox | UpdateDraftMessage | UpdateReadFeaturedStickers | UpdateRecentStickers | UpdateConfig | UpdatePtsChanged | UpdateChannelWebPage | UpdateDialogPinned | UpdatePinnedDialogs | UpdateBotWebhookJSON | UpdateBotWebhookJSONQuery | UpdateBotShippingQuery | UpdateBotPrecheckoutQuery | UpdatePhoneCall | UpdateLangPackTooLong | UpdateLangPack | UpdateFavedStickers | UpdateChannelReadMessagesContents | UpdateContactsReset | UpdateChannelAvailableMessages | UpdateDialogUnreadMark | UpdateMessagePoll | UpdateChatDefaultBannedRights | UpdateFolderPeers | UpdatePeerSettings | UpdatePeerLocated | UpdateNewScheduledMessage | UpdateDeleteScheduledMessages | UpdateTheme | UpdateGeoLiveViewed | UpdateLoginToken | UpdateMessagePollVote | UpdateDialogFilter | UpdateDialogFilterOrder | UpdateDialogFilters | UpdatePhoneCallSignalingData | UpdateChannelMessageForwards | UpdateReadChannelDiscussionInbox | UpdateReadChannelDiscussionOutbox | UpdatePeerBlocked | UpdateChannelUserTyping | UpdatePinnedMessages | UpdatePinnedChannelMessages | UpdateChat | UpdateGroupCallParticipants | UpdateGroupCall | UpdatePeerHistoryTTL | UpdateChatParticipant | UpdateChannelParticipant | UpdateBotStopped | UpdateGroupCallConnection | UpdateBotCommands | UpdatePendingJoinRequests | UpdateBotChatInviteRequester | UpdateMessageReactions | UpdateAttachMenuBots | UpdateWebViewResultSent | UpdateBotMenuButton | UpdateSavedRingtones | UpdateTranscribedAudio | UpdateReadFeaturedEmojiStickers | UpdateUserEmojiStatus | UpdateRecentEmojiStatuses | UpdateRecentReactions | UpdateMoveStickerSetToTop | UpdateMessageExtendedMedia | UpdateUser | UpdateAutoSaveSettings | UpdateStory | UpdateReadStories | UpdateStoryID | UpdateStoriesStealthMode | UpdateSentStoryReaction | UpdateBotChatBoost | UpdateChannelViewForumAsMessages | UpdatePeerWallpaper | UpdateBotMessageReaction | UpdateBotMessageReactions | UpdateSavedDialogPinned | UpdatePinnedSavedDialogs | UpdateSavedReactionTags | UpdateSmsJob | UpdateQuickReplies | UpdateNewQuickReply | UpdateDeleteQuickReply | UpdateQuickReplyMessage | UpdateDeleteQuickReplyMessages | UpdateBotBusinessConnect | UpdateBotNewBusinessMessage | UpdateBotEditBusinessMessage | UpdateBotDeleteBusinessMessage | UpdateNewStoryReaction | UpdateStarsBalance | UpdateBusinessBotCallbackQuery | UpdateStarsRevenueStatus | UpdateBotPurchasedPaidMedia | UpdatePaidReactionPrivacy | UpdateSentPhoneCode | UpdateGroupCallChainBlocks | UpdateReadMonoForumInbox | UpdateReadMonoForumOutbox | UpdateMonoForumNoPaidException | UpdateGroupCallMessage | UpdateGroupCallEncryptedMessage | UpdatePinnedForumTopic | UpdatePinnedForumTopics | UpdateDeleteGroupCallMessages | UpdateStarGiftAuctionState | UpdateStarGiftAuctionUserState | UpdateEmojiGameInfo | UpdateStarGiftCraftFail | UpdateChatParticipantRank | UpdateManagedBot | UpdateBotGuestChatQuery | UpdateAiComposeTones;
  export type TypeUpdates = UpdatesTooLong | UpdateShortMessage | UpdateShortChatMessage | UpdateShort | UpdatesCombined | Updates | UpdateShortSentMessage;
  export type TypeDcOption = DcOption;
  export type TypeConfig = Config;
  export type TypeNearestDc = NearestDc;
  export type TypeEncryptedChat = EncryptedChatEmpty | EncryptedChatWaiting | EncryptedChatRequested | EncryptedChat | EncryptedChatDiscarded;
  export type TypeInputEncryptedChat = InputEncryptedChat;
  export type TypeEncryptedFile = EncryptedFileEmpty | EncryptedFile;
  export type TypeInputEncryptedFile = InputEncryptedFileEmpty | InputEncryptedFileUploaded | InputEncryptedFile | InputEncryptedFileBigUploaded;
  export type TypeEncryptedMessage = EncryptedMessage | EncryptedMessageService;
  export type TypeInputDocument = InputDocumentEmpty | InputDocument;
  export type TypeDocument = DocumentEmpty | Document;
  export type TypeNotifyPeer = NotifyPeer | NotifyUsers | NotifyChats | NotifyBroadcasts | NotifyForumTopic;
  export type TypeSendMessageAction = SendMessageTypingAction | SendMessageCancelAction | SendMessageRecordVideoAction | SendMessageUploadVideoAction | SendMessageRecordAudioAction | SendMessageUploadAudioAction | SendMessageUploadPhotoAction | SendMessageUploadDocumentAction | SendMessageGeoLocationAction | SendMessageChooseContactAction | SendMessageGamePlayAction | SendMessageRecordRoundAction | SendMessageUploadRoundAction | SpeakingInGroupCallAction | SendMessageHistoryImportAction | SendMessageChooseStickerAction | SendMessageEmojiInteraction | SendMessageEmojiInteractionSeen | SendMessageTextDraftAction;
  export type TypeInputPrivacyKey = InputPrivacyKeyStatusTimestamp | InputPrivacyKeyChatInvite | InputPrivacyKeyPhoneCall | InputPrivacyKeyPhoneP2P | InputPrivacyKeyForwards | InputPrivacyKeyProfilePhoto | InputPrivacyKeyPhoneNumber | InputPrivacyKeyAddedByPhone | InputPrivacyKeyVoiceMessages | InputPrivacyKeyAbout | InputPrivacyKeyBirthday | InputPrivacyKeyStarGiftsAutoSave | InputPrivacyKeyNoPaidMessages | InputPrivacyKeySavedMusic;
  export type TypePrivacyKey = PrivacyKeyStatusTimestamp | PrivacyKeyChatInvite | PrivacyKeyPhoneCall | PrivacyKeyPhoneP2P | PrivacyKeyForwards | PrivacyKeyProfilePhoto | PrivacyKeyPhoneNumber | PrivacyKeyAddedByPhone | PrivacyKeyVoiceMessages | PrivacyKeyAbout | PrivacyKeyBirthday | PrivacyKeyStarGiftsAutoSave | PrivacyKeyNoPaidMessages | PrivacyKeySavedMusic;
  export type TypeInputPrivacyRule = InputPrivacyValueAllowContacts | InputPrivacyValueAllowAll | InputPrivacyValueAllowUsers | InputPrivacyValueDisallowContacts | InputPrivacyValueDisallowAll | InputPrivacyValueDisallowUsers | InputPrivacyValueAllowChatParticipants | InputPrivacyValueDisallowChatParticipants | InputPrivacyValueAllowCloseFriends | InputPrivacyValueAllowPremium | InputPrivacyValueAllowBots | InputPrivacyValueDisallowBots;
  export type TypePrivacyRule = PrivacyValueAllowContacts | PrivacyValueAllowAll | PrivacyValueAllowUsers | PrivacyValueDisallowContacts | PrivacyValueDisallowAll | PrivacyValueDisallowUsers | PrivacyValueAllowChatParticipants | PrivacyValueDisallowChatParticipants | PrivacyValueAllowCloseFriends | PrivacyValueAllowPremium | PrivacyValueAllowBots | PrivacyValueDisallowBots;
  export type TypeAccountDaysTTL = AccountDaysTTL;
  export type TypeDocumentAttribute = DocumentAttributeImageSize | DocumentAttributeAnimated | DocumentAttributeSticker | DocumentAttributeVideo | DocumentAttributeAudio | DocumentAttributeFilename | DocumentAttributeHasStickers | DocumentAttributeCustomEmoji;
  export type TypeStickerPack = StickerPack;
  export type TypeWebPage = WebPageEmpty | WebPagePending | WebPage | WebPageNotModified;
  export type TypeAuthorization = Authorization;
  export type TypeReceivedNotifyMessage = ReceivedNotifyMessage;
  export type TypeExportedChatInvite = ChatInviteExported | ChatInvitePublicJoinRequests;
  export type TypeChatInvite = ChatInviteAlready | ChatInvite | ChatInvitePeek;
  export type TypeInputStickerSet = InputStickerSetEmpty | InputStickerSetID | InputStickerSetShortName | InputStickerSetAnimatedEmoji | InputStickerSetDice | InputStickerSetAnimatedEmojiAnimations | InputStickerSetPremiumGifts | InputStickerSetEmojiGenericAnimations | InputStickerSetEmojiDefaultStatuses | InputStickerSetEmojiDefaultTopicIcons | InputStickerSetEmojiChannelDefaultStatuses | InputStickerSetTonGifts;
  export type TypeStickerSet = StickerSet;
  export type TypeBotCommand = BotCommand;
  export type TypeBotInfo = BotInfo;
  export type TypeKeyboardButton = KeyboardButton | KeyboardButtonUrl | KeyboardButtonCallback | KeyboardButtonRequestPhone | KeyboardButtonRequestGeoLocation | KeyboardButtonSwitchInline | KeyboardButtonGame | KeyboardButtonBuy | KeyboardButtonUrlAuth | InputKeyboardButtonUrlAuth | KeyboardButtonRequestPoll | InputKeyboardButtonUserProfile | KeyboardButtonUserProfile | KeyboardButtonWebView | KeyboardButtonSimpleWebView | KeyboardButtonRequestPeer | InputKeyboardButtonRequestPeer | KeyboardButtonCopy;
  export type TypeKeyboardButtonRow = KeyboardButtonRow;
  export type TypeReplyMarkup = ReplyKeyboardHide | ReplyKeyboardForceReply | ReplyKeyboardMarkup | ReplyInlineMarkup;
  export type TypeMessageEntity = MessageEntityUnknown | MessageEntityMention | MessageEntityHashtag | MessageEntityBotCommand | MessageEntityUrl | MessageEntityEmail | MessageEntityBold | MessageEntityItalic | MessageEntityCode | MessageEntityPre | MessageEntityTextUrl | MessageEntityMentionName | InputMessageEntityMentionName | MessageEntityPhone | MessageEntityCashtag | MessageEntityUnderline | MessageEntityStrike | MessageEntityBankCard | MessageEntitySpoiler | MessageEntityCustomEmoji | MessageEntityBlockquote | MessageEntityFormattedDate | MessageEntityDiffInsert | MessageEntityDiffReplace | MessageEntityDiffDelete;
  export type TypeInputChannel = InputChannelEmpty | InputChannel | InputChannelFromMessage;
  export type TypeMessageRange = MessageRange;
  export type TypeChannelMessagesFilter = ChannelMessagesFilterEmpty | ChannelMessagesFilter;
  export type TypeChannelParticipant = ChannelParticipant | ChannelParticipantSelf | ChannelParticipantCreator | ChannelParticipantAdmin | ChannelParticipantBanned | ChannelParticipantLeft;
  export type TypeChannelParticipantsFilter = ChannelParticipantsRecent | ChannelParticipantsAdmins | ChannelParticipantsKicked | ChannelParticipantsBots | ChannelParticipantsBanned | ChannelParticipantsSearch | ChannelParticipantsContacts | ChannelParticipantsMentions;
  export type TypeInputBotInlineMessage = InputBotInlineMessageMediaAuto | InputBotInlineMessageText | InputBotInlineMessageMediaGeo | InputBotInlineMessageMediaVenue | InputBotInlineMessageMediaContact | InputBotInlineMessageGame | InputBotInlineMessageMediaInvoice | InputBotInlineMessageMediaWebPage;
  export type TypeInputBotInlineResult = InputBotInlineResult | InputBotInlineResultPhoto | InputBotInlineResultDocument | InputBotInlineResultGame;
  export type TypeBotInlineMessage = BotInlineMessageMediaAuto | BotInlineMessageText | BotInlineMessageMediaGeo | BotInlineMessageMediaVenue | BotInlineMessageMediaContact | BotInlineMessageMediaInvoice | BotInlineMessageMediaWebPage;
  export type TypeBotInlineResult = BotInlineResult | BotInlineMediaResult;
  export type TypeExportedMessageLink = ExportedMessageLink;
  export type TypeMessageFwdHeader = MessageFwdHeader;
  export type TypeInputBotInlineMessageID = InputBotInlineMessageID | InputBotInlineMessageID64;
  export type TypeInlineBotSwitchPM = InlineBotSwitchPM;
  export type TypeTopPeer = TopPeer;
  export type TypeTopPeerCategory = TopPeerCategoryBotsPM | TopPeerCategoryBotsInline | TopPeerCategoryCorrespondents | TopPeerCategoryGroups | TopPeerCategoryChannels | TopPeerCategoryPhoneCalls | TopPeerCategoryForwardUsers | TopPeerCategoryForwardChats | TopPeerCategoryBotsApp | TopPeerCategoryBotsGuestChat;
  export type TypeTopPeerCategoryPeers = TopPeerCategoryPeers;
  export type TypeDraftMessage = DraftMessageEmpty | DraftMessage;
  export type TypeStickerSetCovered = StickerSetCovered | StickerSetMultiCovered | StickerSetFullCovered | StickerSetNoCovered;
  export type TypeMaskCoords = MaskCoords;
  export type TypeInputStickeredMedia = InputStickeredMediaPhoto | InputStickeredMediaDocument;
  export type TypeGame = Game;
  export type TypeInputGame = InputGameID | InputGameShortName;
  export type TypeHighScore = HighScore;
  export type TypeRichText = TextEmpty | TextPlain | TextBold | TextItalic | TextUnderline | TextStrike | TextFixed | TextUrl | TextEmail | TextConcat | TextSubscript | TextSuperscript | TextMarked | TextPhone | TextImage | TextAnchor;
  export type TypePageBlock = PageBlockUnsupported | PageBlockTitle | PageBlockSubtitle | PageBlockAuthorDate | PageBlockHeader | PageBlockSubheader | PageBlockParagraph | PageBlockPreformatted | PageBlockFooter | PageBlockDivider | PageBlockAnchor | PageBlockList | PageBlockBlockquote | PageBlockPullquote | PageBlockPhoto | PageBlockVideo | PageBlockCover | PageBlockEmbed | PageBlockEmbedPost | PageBlockCollage | PageBlockSlideshow | PageBlockChannel | PageBlockAudio | PageBlockKicker | PageBlockTable | PageBlockOrderedList | PageBlockDetails | PageBlockRelatedArticles | PageBlockMap;
  export type TypePhoneCallDiscardReason = PhoneCallDiscardReasonMissed | PhoneCallDiscardReasonDisconnect | PhoneCallDiscardReasonHangup | PhoneCallDiscardReasonBusy | PhoneCallDiscardReasonMigrateConferenceCall;
  export type TypeDataJSON = DataJSON;
  export type TypeLabeledPrice = LabeledPrice;
  export type TypeInvoice = Invoice;
  export type TypePaymentCharge = PaymentCharge;
  export type TypePostAddress = PostAddress;
  export type TypePaymentRequestedInfo = PaymentRequestedInfo;
  export type TypePaymentSavedCredentials = PaymentSavedCredentialsCard;
  export type TypeWebDocument = WebDocument | WebDocumentNoProxy;
  export type TypeInputWebDocument = InputWebDocument;
  export type TypeInputWebFileLocation = InputWebFileLocation | InputWebFileGeoPointLocation | InputWebFileAudioAlbumThumbLocation;
  export type TypeInputPaymentCredentials = InputPaymentCredentialsSaved | InputPaymentCredentials | InputPaymentCredentialsApplePay | InputPaymentCredentialsGooglePay;
  export type TypeShippingOption = ShippingOption;
  export type TypeInputStickerSetItem = InputStickerSetItem;
  export type TypeInputPhoneCall = InputPhoneCall;
  export type TypePhoneCall = PhoneCallEmpty | PhoneCallWaiting | PhoneCallRequested | PhoneCallAccepted | PhoneCall | PhoneCallDiscarded;
  export type TypePhoneConnection = PhoneConnection | PhoneConnectionWebrtc;
  export type TypePhoneCallProtocol = PhoneCallProtocol;
  export type TypeCdnPublicKey = CdnPublicKey;
  export type TypeCdnConfig = CdnConfig;
  export type TypeLangPackString = LangPackString | LangPackStringPluralized | LangPackStringDeleted;
  export type TypeLangPackDifference = LangPackDifference;
  export type TypeLangPackLanguage = LangPackLanguage;
  export type TypeChannelAdminLogEventAction = ChannelAdminLogEventActionChangeTitle | ChannelAdminLogEventActionChangeAbout | ChannelAdminLogEventActionChangeUsername | ChannelAdminLogEventActionChangePhoto | ChannelAdminLogEventActionToggleInvites | ChannelAdminLogEventActionToggleSignatures | ChannelAdminLogEventActionUpdatePinned | ChannelAdminLogEventActionEditMessage | ChannelAdminLogEventActionDeleteMessage | ChannelAdminLogEventActionParticipantJoin | ChannelAdminLogEventActionParticipantLeave | ChannelAdminLogEventActionParticipantInvite | ChannelAdminLogEventActionParticipantToggleBan | ChannelAdminLogEventActionParticipantToggleAdmin | ChannelAdminLogEventActionChangeStickerSet | ChannelAdminLogEventActionTogglePreHistoryHidden | ChannelAdminLogEventActionDefaultBannedRights | ChannelAdminLogEventActionStopPoll | ChannelAdminLogEventActionChangeLinkedChat | ChannelAdminLogEventActionChangeLocation | ChannelAdminLogEventActionToggleSlowMode | ChannelAdminLogEventActionStartGroupCall | ChannelAdminLogEventActionDiscardGroupCall | ChannelAdminLogEventActionParticipantMute | ChannelAdminLogEventActionParticipantUnmute | ChannelAdminLogEventActionToggleGroupCallSetting | ChannelAdminLogEventActionParticipantJoinByInvite | ChannelAdminLogEventActionExportedInviteDelete | ChannelAdminLogEventActionExportedInviteRevoke | ChannelAdminLogEventActionExportedInviteEdit | ChannelAdminLogEventActionParticipantVolume | ChannelAdminLogEventActionChangeHistoryTTL | ChannelAdminLogEventActionParticipantJoinByRequest | ChannelAdminLogEventActionToggleNoForwards | ChannelAdminLogEventActionSendMessage | ChannelAdminLogEventActionChangeAvailableReactions | ChannelAdminLogEventActionChangeUsernames | ChannelAdminLogEventActionToggleForum | ChannelAdminLogEventActionCreateTopic | ChannelAdminLogEventActionEditTopic | ChannelAdminLogEventActionDeleteTopic | ChannelAdminLogEventActionPinTopic | ChannelAdminLogEventActionToggleAntiSpam | ChannelAdminLogEventActionChangePeerColor | ChannelAdminLogEventActionChangeProfilePeerColor | ChannelAdminLogEventActionChangeWallpaper | ChannelAdminLogEventActionChangeEmojiStatus | ChannelAdminLogEventActionChangeEmojiStickerSet | ChannelAdminLogEventActionToggleSignatureProfiles | ChannelAdminLogEventActionParticipantSubExtend | ChannelAdminLogEventActionToggleAutotranslation | ChannelAdminLogEventActionParticipantEditRank;
  export type TypeChannelAdminLogEvent = ChannelAdminLogEvent;
  export type TypeChannelAdminLogEventsFilter = ChannelAdminLogEventsFilter;
  export type TypePopularContact = PopularContact;
  export type TypeRecentMeUrl = RecentMeUrlUnknown | RecentMeUrlUser | RecentMeUrlChat | RecentMeUrlChatInvite | RecentMeUrlStickerSet;
  export type TypeInputSingleMedia = InputSingleMedia;
  export type TypeWebAuthorization = WebAuthorization;
  export type TypeInputMessage = InputMessageID | InputMessageReplyTo | InputMessagePinned | InputMessageCallbackQuery;
  export type TypeInputDialogPeer = InputDialogPeer | InputDialogPeerFolder;
  export type TypeDialogPeer = DialogPeer | DialogPeerFolder;
  export type TypeFileHash = FileHash;
  export type TypeInputClientProxy = InputClientProxy;
  export type TypeInputSecureFile = InputSecureFileUploaded | InputSecureFile;
  export type TypeSecureFile = SecureFileEmpty | SecureFile;
  export type TypeSecureData = SecureData;
  export type TypeSecurePlainData = SecurePlainPhone | SecurePlainEmail;
  export type TypeSecureValueType = SecureValueTypePersonalDetails | SecureValueTypePassport | SecureValueTypeDriverLicense | SecureValueTypeIdentityCard | SecureValueTypeInternalPassport | SecureValueTypeAddress | SecureValueTypeUtilityBill | SecureValueTypeBankStatement | SecureValueTypeRentalAgreement | SecureValueTypePassportRegistration | SecureValueTypeTemporaryRegistration | SecureValueTypePhone | SecureValueTypeEmail;
  export type TypeSecureValue = SecureValue;
  export type TypeInputSecureValue = InputSecureValue;
  export type TypeSecureValueHash = SecureValueHash;
  export type TypeSecureValueError = SecureValueErrorData | SecureValueErrorFrontSide | SecureValueErrorReverseSide | SecureValueErrorSelfie | SecureValueErrorFile | SecureValueErrorFiles | SecureValueError | SecureValueErrorTranslationFile | SecureValueErrorTranslationFiles;
  export type TypeSecureCredentialsEncrypted = SecureCredentialsEncrypted;
  export type TypeSavedContact = SavedPhoneContact;
  export type TypePasswordKdfAlgo = PasswordKdfAlgoUnknown | PasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow;
  export type TypeSecurePasswordKdfAlgo = SecurePasswordKdfAlgoUnknown | SecurePasswordKdfAlgoPBKDF2HMACSHA512iter100000 | SecurePasswordKdfAlgoSHA512;
  export type TypeSecureSecretSettings = SecureSecretSettings;
  export type TypeInputCheckPasswordSRP = InputCheckPasswordEmpty | InputCheckPasswordSRP;
  export type TypeSecureRequiredType = SecureRequiredType | SecureRequiredTypeOneOf;
  export type TypeInputAppEvent = InputAppEvent;
  export type TypeJSONObjectValue = JsonObjectValue;
  export type TypeJSONValue = JsonNull | JsonBool | JsonNumber | JsonString | JsonArray | JsonObject;
  export type TypePageTableCell = PageTableCell;
  export type TypePageTableRow = PageTableRow;
  export type TypePageCaption = PageCaption;
  export type TypePageListItem = PageListItemText | PageListItemBlocks;
  export type TypePageListOrderedItem = PageListOrderedItemText | PageListOrderedItemBlocks;
  export type TypePageRelatedArticle = PageRelatedArticle;
  export type TypePage = Page;
  export type TypePollAnswer = PollAnswer | InputPollAnswer;
  export type TypePoll = Poll;
  export type TypePollAnswerVoters = PollAnswerVoters;
  export type TypePollResults = PollResults;
  export type TypeChatOnlines = ChatOnlines;
  export type TypeStatsURL = StatsURL;
  export type TypeChatAdminRights = ChatAdminRights;
  export type TypeChatBannedRights = ChatBannedRights;
  export type TypeInputWallPaper = InputWallPaper | InputWallPaperSlug | InputWallPaperNoFile;
  export type TypeCodeSettings = CodeSettings;
  export type TypeWallPaperSettings = WallPaperSettings;
  export type TypeAutoDownloadSettings = AutoDownloadSettings;
  export type TypeEmojiKeyword = EmojiKeyword | EmojiKeywordDeleted;
  export type TypeEmojiKeywordsDifference = EmojiKeywordsDifference;
  export type TypeEmojiURL = EmojiURL;
  export type TypeEmojiLanguage = EmojiLanguage;
  export type TypeFolder = Folder;
  export type TypeInputFolderPeer = InputFolderPeer;
  export type TypeFolderPeer = FolderPeer;
  export type TypeUrlAuthResult = UrlAuthResultRequest | UrlAuthResultAccepted | UrlAuthResultDefault;
  export type TypeChannelLocation = ChannelLocationEmpty | ChannelLocation;
  export type TypePeerLocated = PeerLocated | PeerSelfLocated;
  export type TypeRestrictionReason = RestrictionReason;
  export type TypeInputTheme = InputTheme | InputThemeSlug;
  export type TypeTheme = Theme;
  export type TypeBaseTheme = BaseThemeClassic | BaseThemeDay | BaseThemeNight | BaseThemeTinted | BaseThemeArctic;
  export type TypeInputThemeSettings = InputThemeSettings;
  export type TypeThemeSettings = ThemeSettings;
  export type TypeWebPageAttribute = WebPageAttributeTheme | WebPageAttributeStory | WebPageAttributeStickerSet | WebPageAttributeUniqueStarGift | WebPageAttributeStarGiftCollection | WebPageAttributeStarGiftAuction | WebPageAttributeAiComposeTone;
  export type TypeBankCardOpenUrl = BankCardOpenUrl;
  export type TypeDialogFilter = DialogFilter | DialogFilterDefault | DialogFilterChatlist;
  export type TypeDialogFilterSuggested = DialogFilterSuggested;
  export type TypeStatsDateRangeDays = StatsDateRangeDays;
  export type TypeStatsAbsValueAndPrev = StatsAbsValueAndPrev;
  export type TypeStatsPercentValue = StatsPercentValue;
  export type TypeStatsGraph = StatsGraphAsync | StatsGraphError | StatsGraph;
  export type TypeVideoSize = VideoSize | VideoSizeEmojiMarkup | VideoSizeStickerMarkup;
  export type TypeStatsGroupTopPoster = StatsGroupTopPoster;
  export type TypeStatsGroupTopAdmin = StatsGroupTopAdmin;
  export type TypeStatsGroupTopInviter = StatsGroupTopInviter;
  export type TypeGlobalPrivacySettings = GlobalPrivacySettings;
  export type TypeMessageViews = MessageViews;
  export type TypeMessageReplyHeader = MessageReplyHeader | MessageReplyStoryHeader;
  export type TypeMessageReplies = MessageReplies;
  export type TypePeerBlocked = PeerBlocked;
  export type TypeGroupCall = GroupCallDiscarded | GroupCall;
  export type TypeInputGroupCall = InputGroupCall | InputGroupCallSlug | InputGroupCallInviteMessage;
  export type TypeGroupCallParticipant = GroupCallParticipant;
  export type TypeInlineQueryPeerType = InlineQueryPeerTypeSameBotPM | InlineQueryPeerTypePM | InlineQueryPeerTypeChat | InlineQueryPeerTypeMegagroup | InlineQueryPeerTypeBroadcast | InlineQueryPeerTypeBotPM;
  export type TypeChatInviteImporter = ChatInviteImporter;
  export type TypeChatAdminWithInvites = ChatAdminWithInvites;
  export type TypeGroupCallParticipantVideoSourceGroup = GroupCallParticipantVideoSourceGroup;
  export type TypeGroupCallParticipantVideo = GroupCallParticipantVideo;
  export type TypeBotCommandScope = BotCommandScopeDefault | BotCommandScopeUsers | BotCommandScopeChats | BotCommandScopeChatAdmins | BotCommandScopePeer | BotCommandScopePeerAdmins | BotCommandScopePeerUser;
  export type TypeChatTheme = ChatTheme | ChatThemeUniqueGift;
  export type TypeSponsoredMessage = SponsoredMessage;
  export type TypeSearchResultsCalendarPeriod = SearchResultsCalendarPeriod;
  export type TypeSearchResultsPosition = SearchResultPosition;
  export type TypeReactionCount = ReactionCount;
  export type TypeMessageReactions = MessageReactions;
  export type TypeAvailableReaction = AvailableReaction;
  export type TypeMessagePeerReaction = MessagePeerReaction;
  export type TypeGroupCallStreamChannel = GroupCallStreamChannel;
  export type TypeAttachMenuBotIconColor = AttachMenuBotIconColor;
  export type TypeAttachMenuBotIcon = AttachMenuBotIcon;
  export type TypeAttachMenuBot = AttachMenuBot;
  export type TypeAttachMenuBots = AttachMenuBotsNotModified | AttachMenuBots;
  export type TypeAttachMenuBotsBot = AttachMenuBotsBot;
  export type TypeWebViewResult = WebViewResultUrl;
  export type TypeWebViewMessageSent = WebViewMessageSent;
  export type TypeBotMenuButton = BotMenuButtonDefault | BotMenuButtonCommands | BotMenuButton;
  export type TypeNotificationSound = NotificationSoundDefault | NotificationSoundNone | NotificationSoundLocal | NotificationSoundRingtone;
  export type TypeAttachMenuPeerType = AttachMenuPeerTypeSameBotPM | AttachMenuPeerTypeBotPM | AttachMenuPeerTypePM | AttachMenuPeerTypeChat | AttachMenuPeerTypeBroadcast;
  export type TypeInputInvoice = InputInvoiceMessage | InputInvoiceSlug | InputInvoicePremiumGiftCode | InputInvoiceStars | InputInvoiceChatInviteSubscription | InputInvoiceStarGift | InputInvoiceStarGiftUpgrade | InputInvoiceStarGiftTransfer | InputInvoicePremiumGiftStars | InputInvoiceBusinessBotTransferStars | InputInvoiceStarGiftResale | InputInvoiceStarGiftPrepaidUpgrade | InputInvoicePremiumAuthCode | InputInvoiceStarGiftDropOriginalDetails | InputInvoiceStarGiftAuctionBid;
  export type TypeInputStorePaymentPurpose = InputStorePaymentPremiumSubscription | InputStorePaymentGiftPremium | InputStorePaymentPremiumGiftCode | InputStorePaymentPremiumGiveaway | InputStorePaymentStarsTopup | InputStorePaymentStarsGift | InputStorePaymentStarsGiveaway | InputStorePaymentAuthCode;
  export type TypePaymentFormMethod = PaymentFormMethod;
  export type TypeEmojiStatus = EmojiStatusEmpty | EmojiStatus | EmojiStatusCollectible | InputEmojiStatusCollectible;
  export type TypeReaction = ReactionEmpty | ReactionEmoji | ReactionCustomEmoji | ReactionPaid;
  export type TypeChatReactions = ChatReactionsNone | ChatReactionsAll | ChatReactionsSome;
  export type TypeEmailVerifyPurpose = EmailVerifyPurposeLoginSetup | EmailVerifyPurposeLoginChange | EmailVerifyPurposePassport;
  export type TypeEmailVerification = EmailVerificationCode | EmailVerificationGoogle | EmailVerificationApple;
  export type TypePremiumSubscriptionOption = PremiumSubscriptionOption;
  export type TypeSendAsPeer = SendAsPeer;
  export type TypeMessageExtendedMedia = MessageExtendedMediaPreview | MessageExtendedMedia;
  export type TypeStickerKeyword = StickerKeyword;
  export type TypeUsername = Username;
  export type TypeForumTopic = ForumTopicDeleted | ForumTopic;
  export type TypeDefaultHistoryTTL = DefaultHistoryTTL;
  export type TypeExportedContactToken = ExportedContactToken;
  export type TypeRequestPeerType = RequestPeerTypeUser | RequestPeerTypeChat | RequestPeerTypeBroadcast | RequestPeerTypeCreateBot;
  export type TypeEmojiList = EmojiListNotModified | EmojiList;
  export type TypeEmojiGroup = EmojiGroup | EmojiGroupGreeting | EmojiGroupPremium;
  export type TypeTextWithEntities = TextWithEntities;
  export type TypeAutoSaveSettings = AutoSaveSettings;
  export type TypeAutoSaveException = AutoSaveException;
  export type TypeInputBotApp = InputBotAppID | InputBotAppShortName;
  export type TypeBotApp = BotAppNotModified | BotApp;
  export type TypeInlineBotWebView = InlineBotWebView;
  export type TypeReadParticipantDate = ReadParticipantDate;
  export type TypeInputChatlist = InputChatlistDialogFilter;
  export type TypeExportedChatlistInvite = ExportedChatlistInvite;
  export type TypeMessagePeerVote = MessagePeerVote | MessagePeerVoteInputOption | MessagePeerVoteMultiple;
  export type TypeStoryViews = StoryViews;
  export type TypeStoryItem = StoryItemDeleted | StoryItemSkipped | StoryItem;
  export type TypeStoryView = StoryView | StoryViewPublicForward | StoryViewPublicRepost;
  export type TypeInputReplyTo = InputReplyToMessage | InputReplyToStory | InputReplyToMonoForum;
  export type TypeExportedStoryLink = ExportedStoryLink;
  export type TypeStoriesStealthMode = StoriesStealthMode;
  export type TypeMediaAreaCoordinates = MediaAreaCoordinates;
  export type TypeMediaArea = MediaAreaVenue | InputMediaAreaVenue | MediaAreaGeoPoint | MediaAreaSuggestedReaction | MediaAreaChannelPost | InputMediaAreaChannelPost | MediaAreaUrl | MediaAreaWeather | MediaAreaStarGift;
  export type TypePeerStories = PeerStories;
  export type TypePremiumGiftCodeOption = PremiumGiftCodeOption;
  export type TypePrepaidGiveaway = PrepaidGiveaway | PrepaidStarsGiveaway;
  export type TypeBoost = Boost;
  export type TypeMyBoost = MyBoost;
  export type TypeStoryFwdHeader = StoryFwdHeader;
  export type TypePostInteractionCounters = PostInteractionCountersMessage | PostInteractionCountersStory;
  export type TypePublicForward = PublicForwardMessage | PublicForwardStory;
  export type TypePeerColor = PeerColor | PeerColorCollectible | InputPeerColorCollectible;
  export type TypeStoryReaction = StoryReaction | StoryReactionPublicForward | StoryReactionPublicRepost;
  export type TypeSavedDialog = SavedDialog | MonoForumDialog;
  export type TypeSavedReactionTag = SavedReactionTag;
  export type TypeOutboxReadDate = OutboxReadDate;
  export type TypeSmsJob = SmsJob;
  export type TypeBusinessWeeklyOpen = BusinessWeeklyOpen;
  export type TypeBusinessWorkHours = BusinessWorkHours;
  export type TypeBusinessLocation = BusinessLocation;
  export type TypeInputBusinessRecipients = InputBusinessRecipients;
  export type TypeBusinessRecipients = BusinessRecipients;
  export type TypeBusinessAwayMessageSchedule = BusinessAwayMessageScheduleAlways | BusinessAwayMessageScheduleOutsideWorkHours | BusinessAwayMessageScheduleCustom;
  export type TypeInputBusinessGreetingMessage = InputBusinessGreetingMessage;
  export type TypeBusinessGreetingMessage = BusinessGreetingMessage;
  export type TypeInputBusinessAwayMessage = InputBusinessAwayMessage;
  export type TypeBusinessAwayMessage = BusinessAwayMessage;
  export type TypeTimezone = Timezone;
  export type TypeQuickReply = QuickReply;
  export type TypeInputQuickReplyShortcut = InputQuickReplyShortcut | InputQuickReplyShortcutId;
  export type TypeConnectedBot = ConnectedBot;
  export type TypeBirthday = Birthday;
  export type TypeBotBusinessConnection = BotBusinessConnection;
  export type TypeInputBusinessIntro = InputBusinessIntro;
  export type TypeBusinessIntro = BusinessIntro;
  export type TypeInputCollectible = InputCollectibleUsername | InputCollectiblePhone;
  export type TypeInputBusinessBotRecipients = InputBusinessBotRecipients;
  export type TypeBusinessBotRecipients = BusinessBotRecipients;
  export type TypeContactBirthday = ContactBirthday;
  export type TypeMissingInvitee = MissingInvitee;
  export type TypeInputBusinessChatLink = InputBusinessChatLink;
  export type TypeBusinessChatLink = BusinessChatLink;
  export type TypeRequestedPeer = RequestedPeerUser | RequestedPeerChat | RequestedPeerChannel;
  export type TypeSponsoredMessageReportOption = SponsoredMessageReportOption;
  export type TypeReactionNotificationsFrom = ReactionNotificationsFromContacts | ReactionNotificationsFromAll;
  export type TypeReactionsNotifySettings = ReactionsNotifySettings;
  export type TypeAvailableEffect = AvailableEffect;
  export type TypeFactCheck = FactCheck;
  export type TypeStarsTransactionPeer = StarsTransactionPeerUnsupported | StarsTransactionPeerAppStore | StarsTransactionPeerPlayMarket | StarsTransactionPeerPremiumBot | StarsTransactionPeerFragment | StarsTransactionPeer | StarsTransactionPeerAds | StarsTransactionPeerAPI;
  export type TypeStarsTopupOption = StarsTopupOption;
  export type TypeStarsTransaction = StarsTransaction;
  export type TypeFoundStory = FoundStory;
  export type TypeGeoPointAddress = GeoPointAddress;
  export type TypeStarsRevenueStatus = StarsRevenueStatus;
  export type TypeInputStarsTransaction = InputStarsTransaction;
  export type TypeStarsGiftOption = StarsGiftOption;
  export type TypeBotPreviewMedia = BotPreviewMedia;
  export type TypeStarsSubscriptionPricing = StarsSubscriptionPricing;
  export type TypeStarsSubscription = StarsSubscription;
  export type TypeMessageReactor = MessageReactor;
  export type TypeStarsGiveawayOption = StarsGiveawayOption;
  export type TypeStarsGiveawayWinnersOption = StarsGiveawayWinnersOption;
  export type TypeStarGift = StarGift | StarGiftUnique;
  export type TypeMessageReportOption = MessageReportOption;
  export type TypeReportResult = ReportResultChooseOption | ReportResultAddComment | ReportResultReported;
  export type TypeBotAppSettings = BotAppSettings;
  export type TypeStarRefProgram = StarRefProgram;
  export type TypeConnectedBotStarRef = ConnectedBotStarRef;
  export type TypeStarsAmount = StarsAmount | StarsTonAmount;
  export type TypeBotVerifierSettings = BotVerifierSettings;
  export type TypeBotVerification = BotVerification;
  export type TypeStarGiftAttribute = StarGiftAttributeModel | StarGiftAttributePattern | StarGiftAttributeBackdrop | StarGiftAttributeOriginalDetails;
  export type TypeSavedStarGift = SavedStarGift;
  export type TypeInputSavedStarGift = InputSavedStarGiftUser | InputSavedStarGiftChat | InputSavedStarGiftSlug;
  export type TypePaidReactionPrivacy = PaidReactionPrivacyDefault | PaidReactionPrivacyAnonymous | PaidReactionPrivacyPeer;
  export type TypeRequirementToContact = RequirementToContactEmpty | RequirementToContactPremium | RequirementToContactPaidMessages;
  export type TypeBusinessBotRights = BusinessBotRights;
  export type TypeDisallowedGiftsSettings = DisallowedGiftsSettings;
  export type TypeSponsoredPeer = SponsoredPeer;
  export type TypeStarGiftAttributeId = StarGiftAttributeIdModel | StarGiftAttributeIdPattern | StarGiftAttributeIdBackdrop;
  export type TypeStarGiftAttributeCounter = StarGiftAttributeCounter;
  export type TypePendingSuggestion = PendingSuggestion;
  export type TypeTodoItem = TodoItem;
  export type TypeTodoList = TodoList;
  export type TypeTodoCompletion = TodoCompletion;
  export type TypeSuggestedPost = SuggestedPost;
  export type TypeStarsRating = StarsRating;
  export type TypeStarGiftCollection = StarGiftCollection;
  export type TypeStoryAlbum = StoryAlbum;
  export type TypeSearchPostsFlood = SearchPostsFlood;
  export type TypeProfileTab = ProfileTabPosts | ProfileTabGifts | ProfileTabMedia | ProfileTabFiles | ProfileTabMusic | ProfileTabVoice | ProfileTabLinks | ProfileTabGifs;
  export type TypeInputChatTheme = InputChatThemeEmpty | InputChatTheme | InputChatThemeUniqueGift;
  export type TypeStarGiftUpgradePrice = StarGiftUpgradePrice;
  export type TypeGroupCallMessage = GroupCallMessage;
  export type TypeGroupCallDonor = GroupCallDonor;
  export type TypeRecentStory = RecentStory;
  export type TypeAuctionBidLevel = AuctionBidLevel;
  export type TypeStarGiftAuctionState = StarGiftAuctionStateNotModified | StarGiftAuctionState | StarGiftAuctionStateFinished;
  export type TypeStarGiftAuctionUserState = StarGiftAuctionUserState;
  export type TypeStarGiftAuctionAcquiredGift = StarGiftAuctionAcquiredGift;
  export type TypeStarGiftActiveAuctionState = StarGiftActiveAuctionState;
  export type TypeInputStarGiftAuction = InputStarGiftAuction | InputStarGiftAuctionSlug;
  export type TypePasskey = Passkey;
  export type TypeInputPasskeyResponse = InputPasskeyResponseRegister | InputPasskeyResponseLogin;
  export type TypeInputPasskeyCredential = InputPasskeyCredentialPublicKey | InputPasskeyCredentialFirebasePNV;
  export type TypeStarGiftBackground = StarGiftBackground;
  export type TypeStarGiftAuctionRound = StarGiftAuctionRound | StarGiftAuctionRoundExtendable;
  export type TypeStarGiftAttributeRarity = StarGiftAttributeRarity | StarGiftAttributeRarityUncommon | StarGiftAttributeRarityRare | StarGiftAttributeRarityEpic | StarGiftAttributeRarityLegendary;
  export type TypeKeyboardButtonStyle = KeyboardButtonStyle;
  export type TypeInputMessageReadMetric = InputMessageReadMetric;
  export type TypeInputAiComposeTone = InputAiComposeToneDefault | InputAiComposeToneID | InputAiComposeToneSlug;
  export type TypeAiComposeTone = AiComposeTone | AiComposeToneDefault;
  export type TypeAiComposeToneExample = AiComposeToneExample;
  export type TypeResPQ = ResPQ;
  export type TypeP_Q_inner_data = PQInnerData | PQInnerDataDc | PQInnerDataTemp | PQInnerDataTempDc;
  export type TypeServer_DH_Params = ServerDHParamsFail | ServerDHParamsOk;
  export type TypeServer_DH_inner_data = ServerDHInnerData;
  export type TypeClient_DH_Inner_Data = ClientDHInnerData;
  export type TypeSet_client_DH_params_answer = DhGenOk | DhGenRetry | DhGenFail;
  export type TypeDestroyAuthKeyRes = DestroyAuthKeyOk | DestroyAuthKeyNone | DestroyAuthKeyFail;
  export type TypeMsgsAck = MsgsAck;
  export type TypeBadMsgNotification = BadMsgNotification | BadServerSalt;
  export type TypeMsgsStateReq = MsgsStateReq;
  export type TypeMsgsStateInfo = MsgsStateInfo;
  export type TypeMsgsAllInfo = MsgsAllInfo;
  export type TypeMsgDetailedInfo = MsgDetailedInfo | MsgNewDetailedInfo;
  export type TypeMsgResendReq = MsgResendReq;
  export type TypeRpcError = RpcError;
  export type TypeRpcDropAnswer = RpcAnswerUnknown | RpcAnswerDroppedRunning | RpcAnswerDropped;
  export type TypeFutureSalt = FutureSalt;
  export type TypeFutureSalts = FutureSalts;
  export type TypePong = Pong;
  export type TypeDestroySessionRes = DestroySessionOk | DestroySessionNone;
  export type TypeNewSession = NewSessionCreated;
  export type TypeHttpWait = HttpWait;
  export type TypeIpPort = IpPort | IpPortSecret;
  export type TypeAccessPointRule = AccessPointRule;
  export type TypeTlsClientHello = TlsClientHello;
  export type TypeTlsBlock = TlsBlockString | TlsBlockRandom | TlsBlockZero | TlsBlockDomain | TlsBlockGrease | TlsBlockScope;
  

  export namespace storage {
    export type TypeFileType = storage.FileUnknown | storage.FilePartial | storage.FileJpeg | storage.FileGif | storage.FilePng | storage.FilePdf | storage.FileMp3 | storage.FileMov | storage.FileMp4 | storage.FileWebp;
  }

  export namespace auth {
    export type TypeSentCode = auth.SentCode | auth.SentCodeSuccess | auth.SentCodePaymentRequired;
    export type TypeAuthorization = auth.Authorization | auth.AuthorizationSignUpRequired;
    export type TypeExportedAuthorization = auth.ExportedAuthorization;
    export type TypePasswordRecovery = auth.PasswordRecovery;
    export type TypeCodeType = auth.CodeTypeSms | auth.CodeTypeCall | auth.CodeTypeFlashCall | auth.CodeTypeMissedCall | auth.CodeTypeFragmentSms;
    export type TypeSentCodeType = auth.SentCodeTypeApp | auth.SentCodeTypeSms | auth.SentCodeTypeCall | auth.SentCodeTypeFlashCall | auth.SentCodeTypeMissedCall | auth.SentCodeTypeEmailCode | auth.SentCodeTypeSetUpEmailRequired | auth.SentCodeTypeFragmentSms | auth.SentCodeTypeFirebaseSms | auth.SentCodeTypeSmsWord | auth.SentCodeTypeSmsPhrase;
    export type TypeLoginToken = auth.LoginToken | auth.LoginTokenMigrateTo | auth.LoginTokenSuccess;
    export type TypeLoggedOut = auth.LoggedOut;
    export type TypePasskeyLoginOptions = auth.PasskeyLoginOptions;
  }

  export namespace contacts {
    export type TypeContacts = contacts.ContactsNotModified | contacts.Contacts;
    export type TypeImportedContacts = contacts.ImportedContacts;
    export type TypeBlocked = contacts.Blocked | contacts.BlockedSlice;
    export type TypeFound = contacts.Found;
    export type TypeResolvedPeer = contacts.ResolvedPeer;
    export type TypeTopPeers = contacts.TopPeersNotModified | contacts.TopPeers | contacts.TopPeersDisabled;
    export type TypeContactBirthdays = contacts.ContactBirthdays;
    export type TypeSponsoredPeers = contacts.SponsoredPeersEmpty | contacts.SponsoredPeers;
  }

  export namespace messages {
    export type TypeDialogs = messages.Dialogs | messages.DialogsSlice | messages.DialogsNotModified;
    export type TypeMessages = messages.Messages | messages.MessagesSlice | messages.ChannelMessages | messages.MessagesNotModified;
    export type TypeChats = messages.Chats | messages.ChatsSlice;
    export type TypeChatFull = messages.ChatFull;
    export type TypeAffectedHistory = messages.AffectedHistory;
    export type TypeDhConfig = messages.DhConfigNotModified | messages.DhConfig;
    export type TypeSentEncryptedMessage = messages.SentEncryptedMessage | messages.SentEncryptedFile;
    export type TypeStickers = messages.StickersNotModified | messages.Stickers;
    export type TypeAllStickers = messages.AllStickersNotModified | messages.AllStickers;
    export type TypeAffectedMessages = messages.AffectedMessages;
    export type TypeStickerSet = messages.StickerSet | messages.StickerSetNotModified;
    export type TypeSavedGifs = messages.SavedGifsNotModified | messages.SavedGifs;
    export type TypeBotResults = messages.BotResults;
    export type TypeBotCallbackAnswer = messages.BotCallbackAnswer;
    export type TypeMessageEditData = messages.MessageEditData;
    export type TypePeerDialogs = messages.PeerDialogs;
    export type TypeFeaturedStickers = messages.FeaturedStickersNotModified | messages.FeaturedStickers;
    export type TypeRecentStickers = messages.RecentStickersNotModified | messages.RecentStickers;
    export type TypeArchivedStickers = messages.ArchivedStickers;
    export type TypeStickerSetInstallResult = messages.StickerSetInstallResultSuccess | messages.StickerSetInstallResultArchive;
    export type TypeHighScores = messages.HighScores;
    export type TypeFavedStickers = messages.FavedStickersNotModified | messages.FavedStickers;
    export type TypeFoundStickerSets = messages.FoundStickerSetsNotModified | messages.FoundStickerSets;
    export type TypeSearchCounter = messages.SearchCounter;
    export type TypeInactiveChats = messages.InactiveChats;
    export type TypeVotesList = messages.VotesList;
    export type TypeMessageViews = messages.MessageViews;
    export type TypeDiscussionMessage = messages.DiscussionMessage;
    export type TypeHistoryImport = messages.HistoryImport;
    export type TypeHistoryImportParsed = messages.HistoryImportParsed;
    export type TypeAffectedFoundMessages = messages.AffectedFoundMessages;
    export type TypeExportedChatInvites = messages.ExportedChatInvites;
    export type TypeExportedChatInvite = messages.ExportedChatInvite | messages.ExportedChatInviteReplaced;
    export type TypeChatInviteImporters = messages.ChatInviteImporters;
    export type TypeChatAdminsWithInvites = messages.ChatAdminsWithInvites;
    export type TypeCheckedHistoryImportPeer = messages.CheckedHistoryImportPeer;
    export type TypeSponsoredMessages = messages.SponsoredMessages | messages.SponsoredMessagesEmpty;
    export type TypeSearchResultsCalendar = messages.SearchResultsCalendar;
    export type TypeSearchResultsPositions = messages.SearchResultsPositions;
    export type TypePeerSettings = messages.PeerSettings;
    export type TypeMessageReactionsList = messages.MessageReactionsList;
    export type TypeAvailableReactions = messages.AvailableReactionsNotModified | messages.AvailableReactions;
    export type TypeTranscribedAudio = messages.TranscribedAudio;
    export type TypeReactions = messages.ReactionsNotModified | messages.Reactions;
    export type TypeForumTopics = messages.ForumTopics;
    export type TypeEmojiGroups = messages.EmojiGroupsNotModified | messages.EmojiGroups;
    export type TypeTranslatedText = messages.TranslateResult;
    export type TypeBotApp = messages.BotApp;
    export type TypeWebPage = messages.WebPage;
    export type TypeSavedDialogs = messages.SavedDialogs | messages.SavedDialogsSlice | messages.SavedDialogsNotModified;
    export type TypeSavedReactionTags = messages.SavedReactionTagsNotModified | messages.SavedReactionTags;
    export type TypeQuickReplies = messages.QuickReplies | messages.QuickRepliesNotModified;
    export type TypeDialogFilters = messages.DialogFilters;
    export type TypeMyStickers = messages.MyStickers;
    export type TypeInvitedUsers = messages.InvitedUsers;
    export type TypeAvailableEffects = messages.AvailableEffectsNotModified | messages.AvailableEffects;
    export type TypeBotPreparedInlineMessage = messages.BotPreparedInlineMessage;
    export type TypePreparedInlineMessage = messages.PreparedInlineMessage;
    export type TypeFoundStickers = messages.FoundStickersNotModified | messages.FoundStickers;
    export type TypeWebPagePreview = messages.WebPagePreview;
    export type TypeEmojiGameOutcome = messages.EmojiGameOutcome;
    export type TypeEmojiGameInfo = messages.EmojiGameUnavailable | messages.EmojiGameDiceInfo;
    export type TypeComposedMessageWithAI = messages.ComposedMessageWithAI;
  }

  export namespace updates {
    export type TypeState = updates.State;
    export type TypeDifference = updates.DifferenceEmpty | updates.Difference | updates.DifferenceSlice | updates.DifferenceTooLong;
    export type TypeChannelDifference = updates.ChannelDifferenceEmpty | updates.ChannelDifferenceTooLong | updates.ChannelDifference;
  }

  export namespace photos {
    export type TypePhotos = photos.Photos | photos.PhotosSlice;
    export type TypePhoto = photos.Photo;
  }

  export namespace upload {
    export type TypeFile = upload.File | upload.FileCdnRedirect;
    export type TypeWebFile = upload.WebFile;
    export type TypeCdnFile = upload.CdnFileReuploadNeeded | upload.CdnFile;
  }

  export namespace help {
    export type TypeAppUpdate = help.AppUpdate | help.NoAppUpdate;
    export type TypeInviteText = help.InviteText;
    export type TypeSupport = help.Support;
    export type TypeTermsOfService = help.TermsOfService;
    export type TypeRecentMeUrls = help.RecentMeUrls;
    export type TypeTermsOfServiceUpdate = help.TermsOfServiceUpdateEmpty | help.TermsOfServiceUpdate;
    export type TypeDeepLinkInfo = help.DeepLinkInfoEmpty | help.DeepLinkInfo;
    export type TypePassportConfig = help.PassportConfigNotModified | help.PassportConfig;
    export type TypeSupportName = help.SupportName;
    export type TypeUserInfo = help.UserInfoEmpty | help.UserInfo;
    export type TypePromoData = help.PromoDataEmpty | help.PromoData;
    export type TypeCountryCode = help.CountryCode;
    export type TypeCountry = help.Country;
    export type TypeCountriesList = help.CountriesListNotModified | help.CountriesList;
    export type TypePremiumPromo = help.PremiumPromo;
    export type TypeAppConfig = help.AppConfigNotModified | help.AppConfig;
    export type TypePeerColorSet = help.PeerColorSet | help.PeerColorProfileSet;
    export type TypePeerColorOption = help.PeerColorOption;
    export type TypePeerColors = help.PeerColorsNotModified | help.PeerColors;
    export type TypeTimezonesList = help.TimezonesListNotModified | help.TimezonesList;
    export type TypeConfigSimple = help.ConfigSimple;
  }

  export namespace account {
    export type TypePrivacyRules = account.PrivacyRules;
    export type TypeAuthorizations = account.Authorizations;
    export type TypePassword = account.Password;
    export type TypePasswordSettings = account.PasswordSettings;
    export type TypePasswordInputSettings = account.PasswordInputSettings;
    export type TypeTmpPassword = account.TmpPassword;
    export type TypeWebAuthorizations = account.WebAuthorizations;
    export type TypeAuthorizationForm = account.AuthorizationForm;
    export type TypeSentEmailCode = account.SentEmailCode;
    export type TypeTakeout = account.Takeout;
    export type TypeWallPapers = account.WallPapersNotModified | account.WallPapers;
    export type TypeAutoDownloadSettings = account.AutoDownloadSettings;
    export type TypeThemes = account.ThemesNotModified | account.Themes;
    export type TypeContentSettings = account.ContentSettings;
    export type TypeResetPasswordResult = account.ResetPasswordFailedWait | account.ResetPasswordRequestedWait | account.ResetPasswordOk;
    export type TypeChatThemes = account.ChatThemesNotModified | account.ChatThemes;
    export type TypeSavedRingtones = account.SavedRingtonesNotModified | account.SavedRingtones;
    export type TypeSavedRingtone = account.SavedRingtone | account.SavedRingtoneConverted;
    export type TypeEmojiStatuses = account.EmojiStatusesNotModified | account.EmojiStatuses;
    export type TypeEmailVerified = account.EmailVerified | account.EmailVerifiedLogin;
    export type TypeAutoSaveSettings = account.AutoSaveSettings;
    export type TypeConnectedBots = account.ConnectedBots;
    export type TypeBusinessChatLinks = account.BusinessChatLinks;
    export type TypeResolvedBusinessChatLinks = account.ResolvedBusinessChatLinks;
    export type TypePaidMessagesRevenue = account.PaidMessagesRevenue;
    export type TypeSavedMusicIds = account.SavedMusicIdsNotModified | account.SavedMusicIds;
    export type TypePasskeys = account.Passkeys;
    export type TypePasskeyRegistrationOptions = account.PasskeyRegistrationOptions;
  }

  export namespace channels {
    export type TypeChannelParticipants = channels.ChannelParticipants | channels.ChannelParticipantsNotModified;
    export type TypeChannelParticipant = channels.ChannelParticipant;
    export type TypeAdminLogResults = channels.AdminLogResults;
    export type TypeSendAsPeers = channels.SendAsPeers;
    export type TypeSponsoredMessageReportResult = channels.SponsoredMessageReportResultChooseOption | channels.SponsoredMessageReportResultAdsHidden | channels.SponsoredMessageReportResultReported;
  }

  export namespace payments {
    export type TypePaymentForm = payments.PaymentForm | payments.PaymentFormStars | payments.PaymentFormStarGift;
    export type TypeValidatedRequestedInfo = payments.ValidatedRequestedInfo;
    export type TypePaymentResult = payments.PaymentResult | payments.PaymentVerificationNeeded;
    export type TypePaymentReceipt = payments.PaymentReceipt | payments.PaymentReceiptStars;
    export type TypeSavedInfo = payments.SavedInfo;
    export type TypeBankCardData = payments.BankCardData;
    export type TypeExportedInvoice = payments.ExportedInvoice;
    export type TypeCheckedGiftCode = payments.CheckedGiftCode;
    export type TypeGiveawayInfo = payments.GiveawayInfo | payments.GiveawayInfoResults;
    export type TypeStarsStatus = payments.StarsStatus;
    export type TypeStarsRevenueStats = payments.StarsRevenueStats;
    export type TypeStarsRevenueWithdrawalUrl = payments.StarsRevenueWithdrawalUrl;
    export type TypeStarsRevenueAdsAccountUrl = payments.StarsRevenueAdsAccountUrl;
    export type TypeStarGifts = payments.StarGiftsNotModified | payments.StarGifts;
    export type TypeConnectedStarRefBots = payments.ConnectedStarRefBots;
    export type TypeSuggestedStarRefBots = payments.SuggestedStarRefBots;
    export type TypeStarGiftUpgradePreview = payments.StarGiftUpgradePreview;
    export type TypeUniqueStarGift = payments.UniqueStarGift;
    export type TypeSavedStarGifts = payments.SavedStarGifts;
    export type TypeStarGiftWithdrawalUrl = payments.StarGiftWithdrawalUrl;
    export type TypeResaleStarGifts = payments.ResaleStarGifts;
    export type TypeStarGiftCollections = payments.StarGiftCollectionsNotModified | payments.StarGiftCollections;
    export type TypeUniqueStarGiftValueInfo = payments.UniqueStarGiftValueInfo;
    export type TypeCheckCanSendGiftResult = payments.CheckCanSendGiftResultOk | payments.CheckCanSendGiftResultFail;
    export type TypeStarGiftAuctionState = payments.StarGiftAuctionState;
    export type TypeStarGiftAuctionAcquiredGifts = payments.StarGiftAuctionAcquiredGifts;
    export type TypeStarGiftActiveAuctions = payments.StarGiftActiveAuctionsNotModified | payments.StarGiftActiveAuctions;
    export type TypeStarGiftUpgradeAttributes = payments.StarGiftUpgradeAttributes;
  }

  export namespace phone {
    export type TypePhoneCall = phone.PhoneCall;
    export type TypeGroupCall = phone.GroupCall;
    export type TypeGroupParticipants = phone.GroupParticipants;
    export type TypeJoinAsPeers = phone.JoinAsPeers;
    export type TypeExportedGroupCallInvite = phone.ExportedGroupCallInvite;
    export type TypeGroupCallStreamChannels = phone.GroupCallStreamChannels;
    export type TypeGroupCallStreamRtmpUrl = phone.GroupCallStreamRtmpUrl;
    export type TypeGroupCallStars = phone.GroupCallStars;
  }

  export namespace stats {
    export type TypeBroadcastStats = stats.BroadcastStats;
    export type TypeMegagroupStats = stats.MegagroupStats;
    export type TypeMessageStats = stats.MessageStats;
    export type TypeStoryStats = stats.StoryStats;
    export type TypePublicForwards = stats.PublicForwards;
    export type TypePollStats = stats.PollStats;
  }

  export namespace stickers {
    export type TypeSuggestedShortName = stickers.SuggestedShortName;
  }

  export namespace users {
    export type TypeUserFull = users.UserFull;
    export type TypeUsers = users.Users | users.UsersSlice;
    export type TypeSavedMusic = users.SavedMusicNotModified | users.SavedMusic;
  }

  export namespace chatlists {
    export type TypeExportedChatlistInvite = chatlists.ExportedChatlistInvite;
    export type TypeExportedInvites = chatlists.ExportedInvites;
    export type TypeChatlistInvite = chatlists.ChatlistInviteAlready | chatlists.ChatlistInvite;
    export type TypeChatlistUpdates = chatlists.ChatlistUpdates;
  }

  export namespace bots {
    export type TypeBotInfo = bots.BotInfo;
    export type TypePopularAppBots = bots.PopularAppBots;
    export type TypePreviewInfo = bots.PreviewInfo;
    export type TypeExportedBotToken = bots.ExportedBotToken;
    export type TypeRequestedButton = bots.RequestedButton;
    export type TypeAccessSettings = bots.AccessSettings;
  }

  export namespace stories {
    export type TypeAllStories = stories.AllStoriesNotModified | stories.AllStories;
    export type TypeStories = stories.Stories;
    export type TypeStoryViewsList = stories.StoryViewsList;
    export type TypeStoryViews = stories.StoryViews;
    export type TypePeerStories = stories.PeerStories;
    export type TypeStoryReactionsList = stories.StoryReactionsList;
    export type TypeFoundStories = stories.FoundStories;
    export type TypeCanSendStoryCount = stories.CanSendStoryCount;
    export type TypeAlbums = stories.AlbumsNotModified | stories.Albums;
  }

  export namespace premium {
    export type TypeBoostsList = premium.BoostsList;
    export type TypeMyBoosts = premium.MyBoosts;
    export type TypeBoostsStatus = premium.BoostsStatus;
  }

  export namespace smsjobs {
    export type TypeEligibilityToJoin = smsjobs.EligibleToJoin;
    export type TypeStatus = smsjobs.Status;
  }

  export namespace fragment {
    export type TypeCollectibleInfo = fragment.CollectibleInfo;
  }

  export namespace aicompose {
    export type TypeTones = aicompose.TonesNotModified | aicompose.Tones;
  }

  export class InputPeerEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2134579434;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerEmpty';

    static fromReader(reader: Reader): InputPeerEmpty;
  }
  export class InputPeerSelf extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2107670217;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerSelf';

    static fromReader(reader: Reader): InputPeerSelf;
  }
  export class InputPeerChat extends VirtualClass<{
    chatId: long;
  }> {
    chatId: long;
    CONSTRUCTOR_ID: 900291769;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerChat';

    static fromReader(reader: Reader): InputPeerChat;
  }
  export class InputPeerUser extends VirtualClass<{
    userId: long;
    accessHash: long;
  }> {
    userId: long;
    accessHash: long;
    CONSTRUCTOR_ID: 3723011404;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerUser';

    static fromReader(reader: Reader): InputPeerUser;
  }
  export class InputPeerChannel extends VirtualClass<{
    channelId: long;
    accessHash: long;
  }> {
    channelId: long;
    accessHash: long;
    CONSTRUCTOR_ID: 666680316;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerChannel';

    static fromReader(reader: Reader): InputPeerChannel;
  }
  export class InputPeerUserFromMessage extends VirtualClass<{
    peer: Api.TypeInputPeer;
    msgId: int;
    userId: long;
  }> {
    peer: Api.TypeInputPeer;
    msgId: int;
    userId: long;
    CONSTRUCTOR_ID: 2826635804;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerUserFromMessage';

    static fromReader(reader: Reader): InputPeerUserFromMessage;
  }
  export class InputPeerChannelFromMessage extends VirtualClass<{
    peer: Api.TypeInputPeer;
    msgId: int;
    channelId: long;
  }> {
    peer: Api.TypeInputPeer;
    msgId: int;
    channelId: long;
    CONSTRUCTOR_ID: 3173648448;
    SUBCLASS_OF_ID: 3374092470;
    className: 'InputPeerChannelFromMessage';

    static fromReader(reader: Reader): InputPeerChannelFromMessage;
  }
  export class InputUserEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3112732367;
    SUBCLASS_OF_ID: 3865689926;
    className: 'InputUserEmpty';

    static fromReader(reader: Reader): InputUserEmpty;
  }
  export class InputUserSelf extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4156666175;
    SUBCLASS_OF_ID: 3865689926;
    className: 'InputUserSelf';

    static fromReader(reader: Reader): InputUserSelf;
  }
  export class InputUser extends VirtualClass<{
    userId: long;
    accessHash: long;
  }> {
    userId: long;
    accessHash: long;
    CONSTRUCTOR_ID: 4061223110;
    SUBCLASS_OF_ID: 3865689926;
    className: 'InputUser';

    static fromReader(reader: Reader): InputUser;
  }
  export class InputUserFromMessage extends VirtualClass<{
    peer: Api.TypeInputPeer;
    msgId: int;
    userId: long;
  }> {
    peer: Api.TypeInputPeer;
    msgId: int;
    userId: long;
    CONSTRUCTOR_ID: 497305826;
    SUBCLASS_OF_ID: 3865689926;
    className: 'InputUserFromMessage';

    static fromReader(reader: Reader): InputUserFromMessage;
  }
  export class InputPhoneContact extends VirtualClass<{
    // flags: Api.Type;
    clientId: long;
    phone: string;
    firstName: string;
    lastName: string;
    note?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    clientId: long;
    phone: string;
    firstName: string;
    lastName: string;
    note?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 1780335806;
    SUBCLASS_OF_ID: 2926144130;
    className: 'InputPhoneContact';

    static fromReader(reader: Reader): InputPhoneContact;
  }
  export class InputFile extends VirtualClass<{
    id: long;
    parts: int;
    name: string;
    md5Checksum: string;
  }> {
    id: long;
    parts: int;
    name: string;
    md5Checksum: string;
    CONSTRUCTOR_ID: 4113560191;
    SUBCLASS_OF_ID: 3882180383;
    className: 'InputFile';

    static fromReader(reader: Reader): InputFile;
  }
  export class InputFileBig extends VirtualClass<{
    id: long;
    parts: int;
    name: string;
  }> {
    id: long;
    parts: int;
    name: string;
    CONSTRUCTOR_ID: 4199484341;
    SUBCLASS_OF_ID: 3882180383;
    className: 'InputFileBig';

    static fromReader(reader: Reader): InputFileBig;
  }
  export class InputFileStoryDocument extends VirtualClass<{
    id: Api.TypeInputDocument;
  }> {
    id: Api.TypeInputDocument;
    CONSTRUCTOR_ID: 1658620744;
    SUBCLASS_OF_ID: 3882180383;
    className: 'InputFileStoryDocument';

    static fromReader(reader: Reader): InputFileStoryDocument;
  }
  export class InputMediaEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2523198847;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaEmpty';

    static fromReader(reader: Reader): InputMediaEmpty;
  }
  export class InputMediaUploadedPhoto extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    file: Api.TypeInputFile;
    stickers?: Api.TypeInputDocument[];
    ttlSeconds?: int;
    video?: Api.TypeInputDocument;
  }> {
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    file: Api.TypeInputFile;
    stickers?: Api.TypeInputDocument[];
    ttlSeconds?: int;
    video?: Api.TypeInputDocument;
    CONSTRUCTOR_ID: 2105767386;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaUploadedPhoto';

    static fromReader(reader: Reader): InputMediaUploadedPhoto;
  }
  export class InputMediaPhoto extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    id: Api.TypeInputPhoto;
    ttlSeconds?: int;
    video?: Api.TypeInputDocument;
  }> {
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    id: Api.TypeInputPhoto;
    ttlSeconds?: int;
    video?: Api.TypeInputDocument;
    CONSTRUCTOR_ID: 3819914292;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaPhoto';

    static fromReader(reader: Reader): InputMediaPhoto;
  }
  export class InputMediaGeoPoint extends VirtualClass<{
    geoPoint: Api.TypeInputGeoPoint;
  }> {
    geoPoint: Api.TypeInputGeoPoint;
    CONSTRUCTOR_ID: 4190388548;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaGeoPoint';

    static fromReader(reader: Reader): InputMediaGeoPoint;
  }
  export class InputMediaContact extends VirtualClass<{
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
  }> {
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    CONSTRUCTOR_ID: 4171988475;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaContact';

    static fromReader(reader: Reader): InputMediaContact;
  }
  export class InputMediaUploadedDocument extends VirtualClass<{
    // flags: Api.Type;
    nosoundVideo?: true;
    forceFile?: true;
    spoiler?: true;
    file: Api.TypeInputFile;
    thumb?: Api.TypeInputFile;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
    stickers?: Api.TypeInputDocument[];
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
  }> {
    // flags: Api.Type;
    nosoundVideo?: true;
    forceFile?: true;
    spoiler?: true;
    file: Api.TypeInputFile;
    thumb?: Api.TypeInputFile;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
    stickers?: Api.TypeInputDocument[];
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
    CONSTRUCTOR_ID: 58495792;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaUploadedDocument';

    static fromReader(reader: Reader): InputMediaUploadedDocument;
  }
  export class InputMediaDocument extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    id: Api.TypeInputDocument;
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
    query?: string;
  }> {
    // flags: Api.Type;
    spoiler?: true;
    id: Api.TypeInputDocument;
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
    query?: string;
    CONSTRUCTOR_ID: 2826320565;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaDocument';

    static fromReader(reader: Reader): InputMediaDocument;
  }
  export class InputMediaVenue extends VirtualClass<{
    geoPoint: Api.TypeInputGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
  }> {
    geoPoint: Api.TypeInputGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    CONSTRUCTOR_ID: 3242007569;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaVenue';

    static fromReader(reader: Reader): InputMediaVenue;
  }
  export class InputMediaPhotoExternal extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    url: string;
    ttlSeconds?: int;
  }> {
    // flags: Api.Type;
    spoiler?: true;
    url: string;
    ttlSeconds?: int;
    CONSTRUCTOR_ID: 3854302746;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaPhotoExternal';

    static fromReader(reader: Reader): InputMediaPhotoExternal;
  }
  export class InputMediaDocumentExternal extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    url: string;
    ttlSeconds?: int;
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
  }> {
    // flags: Api.Type;
    spoiler?: true;
    url: string;
    ttlSeconds?: int;
    videoCover?: Api.TypeInputPhoto;
    videoTimestamp?: int;
    CONSTRUCTOR_ID: 2006319353;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaDocumentExternal';

    static fromReader(reader: Reader): InputMediaDocumentExternal;
  }
  export class InputMediaGame extends VirtualClass<{
    id: Api.TypeInputGame;
  }> {
    id: Api.TypeInputGame;
    CONSTRUCTOR_ID: 3544138739;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaGame';

    static fromReader(reader: Reader): InputMediaGame;
  }
  export class InputMediaInvoice extends VirtualClass<{
    // flags: Api.Type;
    title: string;
    description: string;
    photo?: Api.TypeInputWebDocument;
    invoice: Api.TypeInvoice;
    payload: bytes;
    provider?: string;
    providerData: Api.TypeDataJSON;
    startParam?: string;
    extendedMedia?: Api.TypeInputMedia;
  }> {
    // flags: Api.Type;
    title: string;
    description: string;
    photo?: Api.TypeInputWebDocument;
    invoice: Api.TypeInvoice;
    payload: bytes;
    provider?: string;
    providerData: Api.TypeDataJSON;
    startParam?: string;
    extendedMedia?: Api.TypeInputMedia;
    CONSTRUCTOR_ID: 1080028941;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaInvoice';

    static fromReader(reader: Reader): InputMediaInvoice;
  }
  export class InputMediaGeoLive extends VirtualClass<{
    // flags: Api.Type;
    stopped?: true;
    geoPoint: Api.TypeInputGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
  }> {
    // flags: Api.Type;
    stopped?: true;
    geoPoint: Api.TypeInputGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
    CONSTRUCTOR_ID: 2535434307;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaGeoLive';

    static fromReader(reader: Reader): InputMediaGeoLive;
  }
  export class InputMediaPoll extends VirtualClass<{
    // flags: Api.Type;
    poll: Api.TypePoll;
    correctAnswers?: int[];
    attachedMedia?: Api.TypeInputMedia;
    solution?: string;
    solutionEntities?: Api.TypeMessageEntity[];
    solutionMedia?: Api.TypeInputMedia;
  }> {
    // flags: Api.Type;
    poll: Api.TypePoll;
    correctAnswers?: int[];
    attachedMedia?: Api.TypeInputMedia;
    solution?: string;
    solutionEntities?: Api.TypeMessageEntity[];
    solutionMedia?: Api.TypeInputMedia;
    CONSTRUCTOR_ID: 2285519112;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaPoll';

    static fromReader(reader: Reader): InputMediaPoll;
  }
  export class InputMediaDice extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 3866083195;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaDice';

    static fromReader(reader: Reader): InputMediaDice;
  }
  export class InputMediaStory extends VirtualClass<{
    peer: Api.TypeInputPeer;
    id: int;
  }> {
    peer: Api.TypeInputPeer;
    id: int;
    CONSTRUCTOR_ID: 2315114360;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaStory';

    static fromReader(reader: Reader): InputMediaStory;
  }
  export class InputMediaWebPage extends VirtualClass<{
    // flags: Api.Type;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    optional?: true;
    url: string;
  }> {
    // flags: Api.Type;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    optional?: true;
    url: string;
    CONSTRUCTOR_ID: 3256584265;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaWebPage';

    static fromReader(reader: Reader): InputMediaWebPage;
  }
  export class InputMediaPaidMedia extends VirtualClass<{
    // flags: Api.Type;
    starsAmount: long;
    extendedMedia: Api.TypeInputMedia[];
    payload?: string;
  }> {
    // flags: Api.Type;
    starsAmount: long;
    extendedMedia: Api.TypeInputMedia[];
    payload?: string;
    CONSTRUCTOR_ID: 3289396102;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaPaidMedia';

    static fromReader(reader: Reader): InputMediaPaidMedia;
  }
  export class InputMediaTodo extends VirtualClass<{
    todo: Api.TypeTodoList;
  }> {
    todo: Api.TypeTodoList;
    CONSTRUCTOR_ID: 2680512478;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaTodo';

    static fromReader(reader: Reader): InputMediaTodo;
  }
  export class InputMediaStakeDice extends VirtualClass<{
    gameHash: string;
    tonAmount: long;
    clientSeed: bytes;
  }> {
    gameHash: string;
    tonAmount: long;
    clientSeed: bytes;
    CONSTRUCTOR_ID: 4087948362;
    SUBCLASS_OF_ID: 4210575092;
    className: 'InputMediaStakeDice';

    static fromReader(reader: Reader): InputMediaStakeDice;
  }
  export class InputChatPhotoEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 480546647;
    SUBCLASS_OF_ID: 3572182388;
    className: 'InputChatPhotoEmpty';

    static fromReader(reader: Reader): InputChatPhotoEmpty;
  }
  export class InputChatUploadedPhoto extends VirtualClass<{
    // flags: Api.Type;
    file?: Api.TypeInputFile;
    video?: Api.TypeInputFile;
    videoStartTs?: double;
    videoEmojiMarkup?: Api.TypeVideoSize;
  } | void> {
    // flags: Api.Type;
    file?: Api.TypeInputFile;
    video?: Api.TypeInputFile;
    videoStartTs?: double;
    videoEmojiMarkup?: Api.TypeVideoSize;
    CONSTRUCTOR_ID: 3184373440;
    SUBCLASS_OF_ID: 3572182388;
    className: 'InputChatUploadedPhoto';

    static fromReader(reader: Reader): InputChatUploadedPhoto;
  }
  export class InputChatPhoto extends VirtualClass<{
    id: Api.TypeInputPhoto;
  }> {
    id: Api.TypeInputPhoto;
    CONSTRUCTOR_ID: 2303962423;
    SUBCLASS_OF_ID: 3572182388;
    className: 'InputChatPhoto';

    static fromReader(reader: Reader): InputChatPhoto;
  }
  export class InputGeoPointEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3837862870;
    SUBCLASS_OF_ID: 70308389;
    className: 'InputGeoPointEmpty';

    static fromReader(reader: Reader): InputGeoPointEmpty;
  }
  export class InputGeoPoint extends VirtualClass<{
    // flags: Api.Type;
    lat: double;
    long: double;
    accuracyRadius?: int;
  }> {
    // flags: Api.Type;
    lat: double;
    long: double;
    accuracyRadius?: int;
    CONSTRUCTOR_ID: 1210199983;
    SUBCLASS_OF_ID: 70308389;
    className: 'InputGeoPoint';

    static fromReader(reader: Reader): InputGeoPoint;
  }
  export class InputPhotoEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 483901197;
    SUBCLASS_OF_ID: 2221106144;
    className: 'InputPhotoEmpty';

    static fromReader(reader: Reader): InputPhotoEmpty;
  }
  export class InputPhoto extends VirtualClass<{
    id: long;
    accessHash: long;
    fileReference: bytes;
  }> {
    id: long;
    accessHash: long;
    fileReference: bytes;
    CONSTRUCTOR_ID: 1001634122;
    SUBCLASS_OF_ID: 2221106144;
    className: 'InputPhoto';

    static fromReader(reader: Reader): InputPhoto;
  }
  export class InputFileLocation extends VirtualClass<{
    volumeId: long;
    localId: int;
    secret: long;
    fileReference: bytes;
  }> {
    volumeId: long;
    localId: int;
    secret: long;
    fileReference: bytes;
    CONSTRUCTOR_ID: 3755650017;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputFileLocation';

    static fromReader(reader: Reader): InputFileLocation;
  }
  export class InputEncryptedFileLocation extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 4112735573;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputEncryptedFileLocation';

    static fromReader(reader: Reader): InputEncryptedFileLocation;
  }
  export class InputDocumentFileLocation extends VirtualClass<{
    id: long;
    accessHash: long;
    fileReference: bytes;
    thumbSize: string;
  }> {
    id: long;
    accessHash: long;
    fileReference: bytes;
    thumbSize: string;
    CONSTRUCTOR_ID: 3134223748;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputDocumentFileLocation';

    static fromReader(reader: Reader): InputDocumentFileLocation;
  }
  export class InputSecureFileLocation extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 3418877480;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputSecureFileLocation';

    static fromReader(reader: Reader): InputSecureFileLocation;
  }
  export class InputTakeoutFileLocation extends VirtualClass<void> {
    CONSTRUCTOR_ID: 700340377;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputTakeoutFileLocation';

    static fromReader(reader: Reader): InputTakeoutFileLocation;
  }
  export class InputPhotoFileLocation extends VirtualClass<{
    id: long;
    accessHash: long;
    fileReference: bytes;
    thumbSize: string;
  }> {
    id: long;
    accessHash: long;
    fileReference: bytes;
    thumbSize: string;
    CONSTRUCTOR_ID: 1075322878;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputPhotoFileLocation';

    static fromReader(reader: Reader): InputPhotoFileLocation;
  }
  export class InputPhotoLegacyFileLocation extends VirtualClass<{
    id: long;
    accessHash: long;
    fileReference: bytes;
    volumeId: long;
    localId: int;
    secret: long;
  }> {
    id: long;
    accessHash: long;
    fileReference: bytes;
    volumeId: long;
    localId: int;
    secret: long;
    CONSTRUCTOR_ID: 3627312883;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputPhotoLegacyFileLocation';

    static fromReader(reader: Reader): InputPhotoLegacyFileLocation;
  }
  export class InputPeerPhotoFileLocation extends VirtualClass<{
    // flags: Api.Type;
    big?: true;
    peer: Api.TypeInputPeer;
    photoId: long;
  }> {
    // flags: Api.Type;
    big?: true;
    peer: Api.TypeInputPeer;
    photoId: long;
    CONSTRUCTOR_ID: 925204121;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputPeerPhotoFileLocation';

    static fromReader(reader: Reader): InputPeerPhotoFileLocation;
  }
  export class InputStickerSetThumb extends VirtualClass<{
    stickerset: Api.TypeInputStickerSet;
    thumbVersion: int;
  }> {
    stickerset: Api.TypeInputStickerSet;
    thumbVersion: int;
    CONSTRUCTOR_ID: 2642736091;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputStickerSetThumb';

    static fromReader(reader: Reader): InputStickerSetThumb;
  }
  export class InputGroupCallStream extends VirtualClass<{
    // flags: Api.Type;
    call: Api.TypeInputGroupCall;
    timeMs: long;
    scale: int;
    videoChannel?: int;
    videoQuality?: int;
  }> {
    // flags: Api.Type;
    call: Api.TypeInputGroupCall;
    timeMs: long;
    scale: int;
    videoChannel?: int;
    videoQuality?: int;
    CONSTRUCTOR_ID: 93890858;
    SUBCLASS_OF_ID: 354669666;
    className: 'InputGroupCallStream';

    static fromReader(reader: Reader): InputGroupCallStream;
  }
  export class PeerUser extends VirtualClass<{
    userId: long;
  }> {
    userId: long;
    CONSTRUCTOR_ID: 1498486562;
    SUBCLASS_OF_ID: 47470215;
    className: 'PeerUser';

    static fromReader(reader: Reader): PeerUser;
  }
  export class PeerChat extends VirtualClass<{
    chatId: long;
  }> {
    chatId: long;
    CONSTRUCTOR_ID: 918946202;
    SUBCLASS_OF_ID: 47470215;
    className: 'PeerChat';

    static fromReader(reader: Reader): PeerChat;
  }
  export class PeerChannel extends VirtualClass<{
    channelId: long;
  }> {
    channelId: long;
    CONSTRUCTOR_ID: 2728736542;
    SUBCLASS_OF_ID: 47470215;
    className: 'PeerChannel';

    static fromReader(reader: Reader): PeerChannel;
  }
  export class UserEmpty extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 3552332666;
    SUBCLASS_OF_ID: 765557111;
    className: 'UserEmpty';

    static fromReader(reader: Reader): UserEmpty;
  }
  export class User extends VirtualClass<{
    // flags: Api.Type;
    self?: true;
    contact?: true;
    mutualContact?: true;
    deleted?: true;
    bot?: true;
    botChatHistory?: true;
    botNochats?: true;
    verified?: true;
    restricted?: true;
    min?: true;
    botInlineGeo?: true;
    support?: true;
    scam?: true;
    applyMinPhoto?: true;
    fake?: true;
    botAttachMenu?: true;
    premium?: true;
    attachMenuEnabled?: true;
    // flags2: Api.Type;
    botCanEdit?: true;
    closeFriend?: true;
    storiesHidden?: true;
    storiesUnavailable?: true;
    contactRequirePremium?: true;
    botBusiness?: true;
    botHasMainApp?: true;
    botForumView?: true;
    botForumCanManageTopics?: true;
    botCanManageBots?: true;
    botGuestchat?: true;
    id: long;
    accessHash?: long;
    firstName?: string;
    lastName?: string;
    username?: string;
    phone?: string;
    photo?: Api.TypeUserProfilePhoto;
    status?: Api.TypeUserStatus;
    botInfoVersion?: int;
    restrictionReason?: Api.TypeRestrictionReason[];
    botInlinePlaceholder?: string;
    langCode?: string;
    emojiStatus?: Api.TypeEmojiStatus;
    usernames?: Api.TypeUsername[];
    storiesMaxId?: Api.TypeRecentStory;
    color?: Api.TypePeerColor;
    profileColor?: Api.TypePeerColor;
    botActiveUsers?: int;
    botVerificationIcon?: long;
    sendPaidMessagesStars?: long;
  }> {
    // flags: Api.Type;
    self?: true;
    contact?: true;
    mutualContact?: true;
    deleted?: true;
    bot?: true;
    botChatHistory?: true;
    botNochats?: true;
    verified?: true;
    restricted?: true;
    min?: true;
    botInlineGeo?: true;
    support?: true;
    scam?: true;
    applyMinPhoto?: true;
    fake?: true;
    botAttachMenu?: true;
    premium?: true;
    attachMenuEnabled?: true;
    // flags2: Api.Type;
    botCanEdit?: true;
    closeFriend?: true;
    storiesHidden?: true;
    storiesUnavailable?: true;
    contactRequirePremium?: true;
    botBusiness?: true;
    botHasMainApp?: true;
    botForumView?: true;
    botForumCanManageTopics?: true;
    botCanManageBots?: true;
    botGuestchat?: true;
    id: long;
    accessHash?: long;
    firstName?: string;
    lastName?: string;
    username?: string;
    phone?: string;
    photo?: Api.TypeUserProfilePhoto;
    status?: Api.TypeUserStatus;
    botInfoVersion?: int;
    restrictionReason?: Api.TypeRestrictionReason[];
    botInlinePlaceholder?: string;
    langCode?: string;
    emojiStatus?: Api.TypeEmojiStatus;
    usernames?: Api.TypeUsername[];
    storiesMaxId?: Api.TypeRecentStory;
    color?: Api.TypePeerColor;
    profileColor?: Api.TypePeerColor;
    botActiveUsers?: int;
    botVerificationIcon?: long;
    sendPaidMessagesStars?: long;
    CONSTRUCTOR_ID: 829899656;
    SUBCLASS_OF_ID: 765557111;
    className: 'User';

    static fromReader(reader: Reader): User;
  }
  export class UserProfilePhotoEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1326562017;
    SUBCLASS_OF_ID: 3325267837;
    className: 'UserProfilePhotoEmpty';

    static fromReader(reader: Reader): UserProfilePhotoEmpty;
  }
  export class UserProfilePhoto extends VirtualClass<{
    // flags: Api.Type;
    hasVideo?: true;
    personal?: true;
    photoId: long;
    strippedThumb?: bytes;
    dcId: int;
  }> {
    // flags: Api.Type;
    hasVideo?: true;
    personal?: true;
    photoId: long;
    strippedThumb?: bytes;
    dcId: int;
    CONSTRUCTOR_ID: 2194798342;
    SUBCLASS_OF_ID: 3325267837;
    className: 'UserProfilePhoto';

    static fromReader(reader: Reader): UserProfilePhoto;
  }
  export class UserStatusEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 164646985;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusEmpty';

    static fromReader(reader: Reader): UserStatusEmpty;
  }
  export class UserStatusOnline extends VirtualClass<{
    expires: int;
  }> {
    expires: int;
    CONSTRUCTOR_ID: 3988339017;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusOnline';

    static fromReader(reader: Reader): UserStatusOnline;
  }
  export class UserStatusOffline extends VirtualClass<{
    wasOnline: int;
  }> {
    wasOnline: int;
    CONSTRUCTOR_ID: 9203775;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusOffline';

    static fromReader(reader: Reader): UserStatusOffline;
  }
  export class UserStatusRecently extends VirtualClass<{
    // flags: Api.Type;
    byMe?: true;
  } | void> {
    // flags: Api.Type;
    byMe?: true;
    CONSTRUCTOR_ID: 2065268168;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusRecently';

    static fromReader(reader: Reader): UserStatusRecently;
  }
  export class UserStatusLastWeek extends VirtualClass<{
    // flags: Api.Type;
    byMe?: true;
  } | void> {
    // flags: Api.Type;
    byMe?: true;
    CONSTRUCTOR_ID: 1410997530;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusLastWeek';

    static fromReader(reader: Reader): UserStatusLastWeek;
  }
  export class UserStatusLastMonth extends VirtualClass<{
    // flags: Api.Type;
    byMe?: true;
  } | void> {
    // flags: Api.Type;
    byMe?: true;
    CONSTRUCTOR_ID: 1703516023;
    SUBCLASS_OF_ID: 1527477310;
    className: 'UserStatusLastMonth';

    static fromReader(reader: Reader): UserStatusLastMonth;
  }
  export class ChatEmpty extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 693512293;
    SUBCLASS_OF_ID: 3316604308;
    className: 'ChatEmpty';

    static fromReader(reader: Reader): ChatEmpty;
  }
  export class Chat extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    left?: true;
    deactivated?: true;
    callActive?: true;
    callNotEmpty?: true;
    noforwards?: true;
    id: long;
    title: string;
    photo: Api.TypeChatPhoto;
    participantsCount: int;
    date: int;
    version: int;
    migratedTo?: Api.TypeInputChannel;
    adminRights?: Api.TypeChatAdminRights;
    defaultBannedRights?: Api.TypeChatBannedRights;
  }> {
    // flags: Api.Type;
    creator?: true;
    left?: true;
    deactivated?: true;
    callActive?: true;
    callNotEmpty?: true;
    noforwards?: true;
    id: long;
    title: string;
    photo: Api.TypeChatPhoto;
    participantsCount: int;
    date: int;
    version: int;
    migratedTo?: Api.TypeInputChannel;
    adminRights?: Api.TypeChatAdminRights;
    defaultBannedRights?: Api.TypeChatBannedRights;
    CONSTRUCTOR_ID: 1103884886;
    SUBCLASS_OF_ID: 3316604308;
    className: 'Chat';

    static fromReader(reader: Reader): Chat;
  }
  export class ChatForbidden extends VirtualClass<{
    id: long;
    title: string;
  }> {
    id: long;
    title: string;
    CONSTRUCTOR_ID: 1704108455;
    SUBCLASS_OF_ID: 3316604308;
    className: 'ChatForbidden';

    static fromReader(reader: Reader): ChatForbidden;
  }
  export class Channel extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    left?: true;
    broadcast?: true;
    verified?: true;
    megagroup?: true;
    restricted?: true;
    signatures?: true;
    min?: true;
    scam?: true;
    hasLink?: true;
    hasGeo?: true;
    slowmodeEnabled?: true;
    callActive?: true;
    callNotEmpty?: true;
    fake?: true;
    gigagroup?: true;
    noforwards?: true;
    joinToSend?: true;
    joinRequest?: true;
    forum?: true;
    // flags2: Api.Type;
    storiesHidden?: true;
    storiesHiddenMin?: true;
    storiesUnavailable?: true;
    signatureProfiles?: true;
    autotranslation?: true;
    broadcastMessagesAllowed?: true;
    monoforum?: true;
    forumTabs?: true;
    id: long;
    accessHash?: long;
    title: string;
    username?: string;
    photo: Api.TypeChatPhoto;
    date: int;
    restrictionReason?: Api.TypeRestrictionReason[];
    adminRights?: Api.TypeChatAdminRights;
    bannedRights?: Api.TypeChatBannedRights;
    defaultBannedRights?: Api.TypeChatBannedRights;
    participantsCount?: int;
    usernames?: Api.TypeUsername[];
    storiesMaxId?: Api.TypeRecentStory;
    color?: Api.TypePeerColor;
    profileColor?: Api.TypePeerColor;
    emojiStatus?: Api.TypeEmojiStatus;
    level?: int;
    subscriptionUntilDate?: int;
    botVerificationIcon?: long;
    sendPaidMessagesStars?: long;
    linkedMonoforumId?: long;
  }> {
    // flags: Api.Type;
    creator?: true;
    left?: true;
    broadcast?: true;
    verified?: true;
    megagroup?: true;
    restricted?: true;
    signatures?: true;
    min?: true;
    scam?: true;
    hasLink?: true;
    hasGeo?: true;
    slowmodeEnabled?: true;
    callActive?: true;
    callNotEmpty?: true;
    fake?: true;
    gigagroup?: true;
    noforwards?: true;
    joinToSend?: true;
    joinRequest?: true;
    forum?: true;
    // flags2: Api.Type;
    storiesHidden?: true;
    storiesHiddenMin?: true;
    storiesUnavailable?: true;
    signatureProfiles?: true;
    autotranslation?: true;
    broadcastMessagesAllowed?: true;
    monoforum?: true;
    forumTabs?: true;
    id: long;
    accessHash?: long;
    title: string;
    username?: string;
    photo: Api.TypeChatPhoto;
    date: int;
    restrictionReason?: Api.TypeRestrictionReason[];
    adminRights?: Api.TypeChatAdminRights;
    bannedRights?: Api.TypeChatBannedRights;
    defaultBannedRights?: Api.TypeChatBannedRights;
    participantsCount?: int;
    usernames?: Api.TypeUsername[];
    storiesMaxId?: Api.TypeRecentStory;
    color?: Api.TypePeerColor;
    profileColor?: Api.TypePeerColor;
    emojiStatus?: Api.TypeEmojiStatus;
    level?: int;
    subscriptionUntilDate?: int;
    botVerificationIcon?: long;
    sendPaidMessagesStars?: long;
    linkedMonoforumId?: long;
    CONSTRUCTOR_ID: 473084188;
    SUBCLASS_OF_ID: 3316604308;
    className: 'Channel';

    static fromReader(reader: Reader): Channel;
  }
  export class ChannelForbidden extends VirtualClass<{
    // flags: Api.Type;
    broadcast?: true;
    megagroup?: true;
    monoforum?: true;
    id: long;
    accessHash: long;
    title: string;
    untilDate?: int;
  }> {
    // flags: Api.Type;
    broadcast?: true;
    megagroup?: true;
    monoforum?: true;
    id: long;
    accessHash: long;
    title: string;
    untilDate?: int;
    CONSTRUCTOR_ID: 399807445;
    SUBCLASS_OF_ID: 3316604308;
    className: 'ChannelForbidden';

    static fromReader(reader: Reader): ChannelForbidden;
  }
  export class ChatFull extends VirtualClass<{
    // flags: Api.Type;
    canSetUsername?: true;
    hasScheduled?: true;
    translationsDisabled?: true;
    id: long;
    about: string;
    participants: Api.TypeChatParticipants;
    chatPhoto?: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    exportedInvite?: Api.TypeExportedChatInvite;
    botInfo?: Api.TypeBotInfo[];
    pinnedMsgId?: int;
    folderId?: int;
    call?: Api.TypeInputGroupCall;
    ttlPeriod?: int;
    groupcallDefaultJoinAs?: Api.TypePeer;
    themeEmoticon?: string;
    requestsPending?: int;
    recentRequesters?: long[];
    availableReactions?: Api.TypeChatReactions;
    reactionsLimit?: int;
  }> {
    // flags: Api.Type;
    canSetUsername?: true;
    hasScheduled?: true;
    translationsDisabled?: true;
    id: long;
    about: string;
    participants: Api.TypeChatParticipants;
    chatPhoto?: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    exportedInvite?: Api.TypeExportedChatInvite;
    botInfo?: Api.TypeBotInfo[];
    pinnedMsgId?: int;
    folderId?: int;
    call?: Api.TypeInputGroupCall;
    ttlPeriod?: int;
    groupcallDefaultJoinAs?: Api.TypePeer;
    themeEmoticon?: string;
    requestsPending?: int;
    recentRequesters?: long[];
    availableReactions?: Api.TypeChatReactions;
    reactionsLimit?: int;
    CONSTRUCTOR_ID: 640893467;
    SUBCLASS_OF_ID: 3566872215;
    className: 'ChatFull';

    static fromReader(reader: Reader): ChatFull;
  }
  export class ChannelFull extends VirtualClass<{
    // flags: Api.Type;
    canViewParticipants?: true;
    canSetUsername?: true;
    canSetStickers?: true;
    hiddenPrehistory?: true;
    canSetLocation?: true;
    hasScheduled?: true;
    canViewStats?: true;
    blocked?: true;
    // flags2: Api.Type;
    canDeleteChannel?: true;
    antispam?: true;
    participantsHidden?: true;
    translationsDisabled?: true;
    storiesPinnedAvailable?: true;
    viewForumAsMessages?: true;
    restrictedSponsored?: true;
    canViewRevenue?: true;
    paidMediaAllowed?: true;
    canViewStarsRevenue?: true;
    paidReactionsAvailable?: true;
    stargiftsAvailable?: true;
    paidMessagesAvailable?: true;
    id: long;
    about: string;
    participantsCount?: int;
    adminsCount?: int;
    kickedCount?: int;
    bannedCount?: int;
    onlineCount?: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    chatPhoto: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    exportedInvite?: Api.TypeExportedChatInvite;
    botInfo: Api.TypeBotInfo[];
    migratedFromChatId?: long;
    migratedFromMaxId?: int;
    pinnedMsgId?: int;
    stickerset?: Api.TypeStickerSet;
    availableMinId?: int;
    folderId?: int;
    linkedChatId?: long;
    location?: Api.TypeChannelLocation;
    slowmodeSeconds?: int;
    slowmodeNextSendDate?: int;
    statsDc?: int;
    pts: int;
    call?: Api.TypeInputGroupCall;
    ttlPeriod?: int;
    pendingSuggestions?: string[];
    groupcallDefaultJoinAs?: Api.TypePeer;
    themeEmoticon?: string;
    requestsPending?: int;
    recentRequesters?: long[];
    defaultSendAs?: Api.TypePeer;
    availableReactions?: Api.TypeChatReactions;
    reactionsLimit?: int;
    stories?: Api.TypePeerStories;
    wallpaper?: Api.TypeWallPaper;
    boostsApplied?: int;
    boostsUnrestrict?: int;
    emojiset?: Api.TypeStickerSet;
    botVerification?: Api.TypeBotVerification;
    stargiftsCount?: int;
    sendPaidMessagesStars?: long;
    mainTab?: Api.TypeProfileTab;
  }> {
    // flags: Api.Type;
    canViewParticipants?: true;
    canSetUsername?: true;
    canSetStickers?: true;
    hiddenPrehistory?: true;
    canSetLocation?: true;
    hasScheduled?: true;
    canViewStats?: true;
    blocked?: true;
    // flags2: Api.Type;
    canDeleteChannel?: true;
    antispam?: true;
    participantsHidden?: true;
    translationsDisabled?: true;
    storiesPinnedAvailable?: true;
    viewForumAsMessages?: true;
    restrictedSponsored?: true;
    canViewRevenue?: true;
    paidMediaAllowed?: true;
    canViewStarsRevenue?: true;
    paidReactionsAvailable?: true;
    stargiftsAvailable?: true;
    paidMessagesAvailable?: true;
    id: long;
    about: string;
    participantsCount?: int;
    adminsCount?: int;
    kickedCount?: int;
    bannedCount?: int;
    onlineCount?: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    chatPhoto: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    exportedInvite?: Api.TypeExportedChatInvite;
    botInfo: Api.TypeBotInfo[];
    migratedFromChatId?: long;
    migratedFromMaxId?: int;
    pinnedMsgId?: int;
    stickerset?: Api.TypeStickerSet;
    availableMinId?: int;
    folderId?: int;
    linkedChatId?: long;
    location?: Api.TypeChannelLocation;
    slowmodeSeconds?: int;
    slowmodeNextSendDate?: int;
    statsDc?: int;
    pts: int;
    call?: Api.TypeInputGroupCall;
    ttlPeriod?: int;
    pendingSuggestions?: string[];
    groupcallDefaultJoinAs?: Api.TypePeer;
    themeEmoticon?: string;
    requestsPending?: int;
    recentRequesters?: long[];
    defaultSendAs?: Api.TypePeer;
    availableReactions?: Api.TypeChatReactions;
    reactionsLimit?: int;
    stories?: Api.TypePeerStories;
    wallpaper?: Api.TypeWallPaper;
    boostsApplied?: int;
    boostsUnrestrict?: int;
    emojiset?: Api.TypeStickerSet;
    botVerification?: Api.TypeBotVerification;
    stargiftsCount?: int;
    sendPaidMessagesStars?: long;
    mainTab?: Api.TypeProfileTab;
    CONSTRUCTOR_ID: 3839931037;
    SUBCLASS_OF_ID: 3566872215;
    className: 'ChannelFull';

    static fromReader(reader: Reader): ChannelFull;
  }
  export class ChatParticipant extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    inviterId: long;
    date: int;
    rank?: string;
  }> {
    // flags: Api.Type;
    userId: long;
    inviterId: long;
    date: int;
    rank?: string;
    CONSTRUCTOR_ID: 954703838;
    SUBCLASS_OF_ID: 2105307014;
    className: 'ChatParticipant';

    static fromReader(reader: Reader): ChatParticipant;
  }
  export class ChatParticipantCreator extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    rank?: string;
  }> {
    // flags: Api.Type;
    userId: long;
    rank?: string;
    CONSTRUCTOR_ID: 3791153080;
    SUBCLASS_OF_ID: 2105307014;
    className: 'ChatParticipantCreator';

    static fromReader(reader: Reader): ChatParticipantCreator;
  }
  export class ChatParticipantAdmin extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    inviterId: long;
    date: int;
    rank?: string;
  }> {
    // flags: Api.Type;
    userId: long;
    inviterId: long;
    date: int;
    rank?: string;
    CONSTRUCTOR_ID: 56677842;
    SUBCLASS_OF_ID: 2105307014;
    className: 'ChatParticipantAdmin';

    static fromReader(reader: Reader): ChatParticipantAdmin;
  }
  export class ChatParticipantsForbidden extends VirtualClass<{
    // flags: Api.Type;
    chatId: long;
    selfParticipant?: Api.TypeChatParticipant;
  }> {
    // flags: Api.Type;
    chatId: long;
    selfParticipant?: Api.TypeChatParticipant;
    CONSTRUCTOR_ID: 2271466465;
    SUBCLASS_OF_ID: 531142001;
    className: 'ChatParticipantsForbidden';

    static fromReader(reader: Reader): ChatParticipantsForbidden;
  }
  export class ChatParticipants extends VirtualClass<{
    chatId: long;
    participants: Api.TypeChatParticipant[];
    version: int;
  }> {
    chatId: long;
    participants: Api.TypeChatParticipant[];
    version: int;
    CONSTRUCTOR_ID: 1018991608;
    SUBCLASS_OF_ID: 531142001;
    className: 'ChatParticipants';

    static fromReader(reader: Reader): ChatParticipants;
  }
  export class ChatPhotoEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 935395612;
    SUBCLASS_OF_ID: 2889794789;
    className: 'ChatPhotoEmpty';

    static fromReader(reader: Reader): ChatPhotoEmpty;
  }
  export class ChatPhoto extends VirtualClass<{
    // flags: Api.Type;
    hasVideo?: true;
    photoId: long;
    strippedThumb?: bytes;
    dcId: int;
  }> {
    // flags: Api.Type;
    hasVideo?: true;
    photoId: long;
    strippedThumb?: bytes;
    dcId: int;
    CONSTRUCTOR_ID: 476978193;
    SUBCLASS_OF_ID: 2889794789;
    className: 'ChatPhoto';

    static fromReader(reader: Reader): ChatPhoto;
  }
  export class MessageEmpty extends VirtualClass<{
    // flags: Api.Type;
    id: int;
    peerId?: Api.TypePeer;
  }> {
    // flags: Api.Type;
    id: int;
    peerId?: Api.TypePeer;
    CONSTRUCTOR_ID: 2426849924;
    SUBCLASS_OF_ID: 2030045667;
    className: 'MessageEmpty';

    static fromReader(reader: Reader): MessageEmpty;
  }
  export class Message extends VirtualClass<{
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    post?: true;
    fromScheduled?: true;
    legacy?: true;
    editHide?: true;
    pinned?: true;
    noforwards?: true;
    invertMedia?: true;
    // flags2: Api.Type;
    offline?: true;
    videoProcessingPending?: true;
    paidSuggestedPostStars?: true;
    paidSuggestedPostTon?: true;
    id: int;
    fromId?: Api.TypePeer;
    fromBoostsApplied?: int;
    fromRank?: string;
    peerId: Api.TypePeer;
    savedPeerId?: Api.TypePeer;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    viaBusinessBotId?: long;
    guestchatViaFrom?: Api.TypePeer;
    replyTo?: Api.TypeMessageReplyHeader;
    date: int;
    message: string;
    media?: Api.TypeMessageMedia;
    replyMarkup?: Api.TypeReplyMarkup;
    entities?: Api.TypeMessageEntity[];
    views?: int;
    forwards?: int;
    replies?: Api.TypeMessageReplies;
    editDate?: int;
    postAuthor?: string;
    groupedId?: long;
    reactions?: Api.TypeMessageReactions;
    restrictionReason?: Api.TypeRestrictionReason[];
    ttlPeriod?: int;
    quickReplyShortcutId?: int;
    effect?: long;
    factcheck?: Api.TypeFactCheck;
    reportDeliveryUntilDate?: int;
    paidMessageStars?: long;
    suggestedPost?: Api.TypeSuggestedPost;
    scheduleRepeatPeriod?: int;
    summaryFromLanguage?: string;
  }> {
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    post?: true;
    fromScheduled?: true;
    legacy?: true;
    editHide?: true;
    pinned?: true;
    noforwards?: true;
    invertMedia?: true;
    // flags2: Api.Type;
    offline?: true;
    videoProcessingPending?: true;
    paidSuggestedPostStars?: true;
    paidSuggestedPostTon?: true;
    id: int;
    fromId?: Api.TypePeer;
    fromBoostsApplied?: int;
    fromRank?: string;
    peerId: Api.TypePeer;
    savedPeerId?: Api.TypePeer;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    viaBusinessBotId?: long;
    guestchatViaFrom?: Api.TypePeer;
    replyTo?: Api.TypeMessageReplyHeader;
    date: int;
    message: string;
    media?: Api.TypeMessageMedia;
    replyMarkup?: Api.TypeReplyMarkup;
    entities?: Api.TypeMessageEntity[];
    views?: int;
    forwards?: int;
    replies?: Api.TypeMessageReplies;
    editDate?: int;
    postAuthor?: string;
    groupedId?: long;
    reactions?: Api.TypeMessageReactions;
    restrictionReason?: Api.TypeRestrictionReason[];
    ttlPeriod?: int;
    quickReplyShortcutId?: int;
    effect?: long;
    factcheck?: Api.TypeFactCheck;
    reportDeliveryUntilDate?: int;
    paidMessageStars?: long;
    suggestedPost?: Api.TypeSuggestedPost;
    scheduleRepeatPeriod?: int;
    summaryFromLanguage?: string;
    CONSTRUCTOR_ID: 2515496747;
    SUBCLASS_OF_ID: 2030045667;
    className: 'Message';

    static fromReader(reader: Reader): Message;
  }
  export class MessageService extends VirtualClass<{
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    reactionsArePossible?: true;
    silent?: true;
    post?: true;
    legacy?: true;
    id: int;
    fromId?: Api.TypePeer;
    peerId: Api.TypePeer;
    savedPeerId?: Api.TypePeer;
    replyTo?: Api.TypeMessageReplyHeader;
    date: int;
    action: Api.TypeMessageAction;
    reactions?: Api.TypeMessageReactions;
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    reactionsArePossible?: true;
    silent?: true;
    post?: true;
    legacy?: true;
    id: int;
    fromId?: Api.TypePeer;
    peerId: Api.TypePeer;
    savedPeerId?: Api.TypePeer;
    replyTo?: Api.TypeMessageReplyHeader;
    date: int;
    action: Api.TypeMessageAction;
    reactions?: Api.TypeMessageReactions;
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 2055212554;
    SUBCLASS_OF_ID: 2030045667;
    className: 'MessageService';

    static fromReader(reader: Reader): MessageService;
  }
  export class MessageMediaEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1038967584;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaEmpty';

    static fromReader(reader: Reader): MessageMediaEmpty;
  }
  export class MessageMediaPhoto extends VirtualClass<{
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    photo?: Api.TypePhoto;
    ttlSeconds?: int;
    video?: Api.TypeDocument;
  } | void> {
    // flags: Api.Type;
    spoiler?: true;
    livePhoto?: true;
    photo?: Api.TypePhoto;
    ttlSeconds?: int;
    video?: Api.TypeDocument;
    CONSTRUCTOR_ID: 3793152867;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaPhoto';

    static fromReader(reader: Reader): MessageMediaPhoto;
  }
  export class MessageMediaGeo extends VirtualClass<{
    geo: Api.TypeGeoPoint;
  }> {
    geo: Api.TypeGeoPoint;
    CONSTRUCTOR_ID: 1457575028;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaGeo';

    static fromReader(reader: Reader): MessageMediaGeo;
  }
  export class MessageMediaContact extends VirtualClass<{
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    userId: long;
  }> {
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    userId: long;
    CONSTRUCTOR_ID: 1882335561;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaContact';

    static fromReader(reader: Reader): MessageMediaContact;
  }
  export class MessageMediaUnsupported extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2676290718;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaUnsupported';

    static fromReader(reader: Reader): MessageMediaUnsupported;
  }
  export class MessageMediaDocument extends VirtualClass<{
    // flags: Api.Type;
    nopremium?: true;
    spoiler?: true;
    video?: true;
    round?: true;
    voice?: true;
    document?: Api.TypeDocument;
    altDocuments?: Api.TypeDocument[];
    videoCover?: Api.TypePhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
  } | void> {
    // flags: Api.Type;
    nopremium?: true;
    spoiler?: true;
    video?: true;
    round?: true;
    voice?: true;
    document?: Api.TypeDocument;
    altDocuments?: Api.TypeDocument[];
    videoCover?: Api.TypePhoto;
    videoTimestamp?: int;
    ttlSeconds?: int;
    CONSTRUCTOR_ID: 1389939929;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaDocument';

    static fromReader(reader: Reader): MessageMediaDocument;
  }
  export class MessageMediaWebPage extends VirtualClass<{
    // flags: Api.Type;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    manual?: true;
    safe?: true;
    webpage: Api.TypeWebPage;
  }> {
    // flags: Api.Type;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    manual?: true;
    safe?: true;
    webpage: Api.TypeWebPage;
    CONSTRUCTOR_ID: 3723562043;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaWebPage';

    static fromReader(reader: Reader): MessageMediaWebPage;
  }
  export class MessageMediaVenue extends VirtualClass<{
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
  }> {
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    CONSTRUCTOR_ID: 784356159;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaVenue';

    static fromReader(reader: Reader): MessageMediaVenue;
  }
  export class MessageMediaGame extends VirtualClass<{
    game: Api.TypeGame;
  }> {
    game: Api.TypeGame;
    CONSTRUCTOR_ID: 4256272392;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaGame';

    static fromReader(reader: Reader): MessageMediaGame;
  }
  export class MessageMediaInvoice extends VirtualClass<{
    // flags: Api.Type;
    shippingAddressRequested?: true;
    test?: true;
    title: string;
    description: string;
    photo?: Api.TypeWebDocument;
    receiptMsgId?: int;
    currency: string;
    totalAmount: long;
    startParam: string;
    extendedMedia?: Api.TypeMessageExtendedMedia;
  }> {
    // flags: Api.Type;
    shippingAddressRequested?: true;
    test?: true;
    title: string;
    description: string;
    photo?: Api.TypeWebDocument;
    receiptMsgId?: int;
    currency: string;
    totalAmount: long;
    startParam: string;
    extendedMedia?: Api.TypeMessageExtendedMedia;
    CONSTRUCTOR_ID: 4138027219;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaInvoice';

    static fromReader(reader: Reader): MessageMediaInvoice;
  }
  export class MessageMediaGeoLive extends VirtualClass<{
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    heading?: int;
    period: int;
    proximityNotificationRadius?: int;
  }> {
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    heading?: int;
    period: int;
    proximityNotificationRadius?: int;
    CONSTRUCTOR_ID: 3108030054;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaGeoLive';

    static fromReader(reader: Reader): MessageMediaGeoLive;
  }
  export class MessageMediaPoll extends VirtualClass<{
    // flags: Api.Type;
    poll: Api.TypePoll;
    results: Api.TypePollResults;
    attachedMedia?: Api.TypeMessageMedia;
  }> {
    // flags: Api.Type;
    poll: Api.TypePoll;
    results: Api.TypePollResults;
    attachedMedia?: Api.TypeMessageMedia;
    CONSTRUCTOR_ID: 2000637542;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaPoll';

    static fromReader(reader: Reader): MessageMediaPoll;
  }
  export class MessageMediaDice extends VirtualClass<{
    // flags: Api.Type;
    value: int;
    emoticon: string;
    gameOutcome?: messages.TypeEmojiGameOutcome;
  }> {
    // flags: Api.Type;
    value: int;
    emoticon: string;
    gameOutcome?: messages.TypeEmojiGameOutcome;
    CONSTRUCTOR_ID: 147581959;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaDice';

    static fromReader(reader: Reader): MessageMediaDice;
  }
  export class MessageMediaStory extends VirtualClass<{
    // flags: Api.Type;
    viaMention?: true;
    peer: Api.TypePeer;
    id: int;
    story?: Api.TypeStoryItem;
  }> {
    // flags: Api.Type;
    viaMention?: true;
    peer: Api.TypePeer;
    id: int;
    story?: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 1758159491;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaStory';

    static fromReader(reader: Reader): MessageMediaStory;
  }
  export class MessageMediaGiveaway extends VirtualClass<{
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    channels: long[];
    countriesIso2?: string[];
    prizeDescription?: string;
    quantity: int;
    months?: int;
    stars?: long;
    untilDate: int;
  }> {
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    channels: long[];
    countriesIso2?: string[];
    prizeDescription?: string;
    quantity: int;
    months?: int;
    stars?: long;
    untilDate: int;
    CONSTRUCTOR_ID: 2852600811;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaGiveaway';

    static fromReader(reader: Reader): MessageMediaGiveaway;
  }
  export class MessageMediaGiveawayResults extends VirtualClass<{
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    refunded?: true;
    channelId: long;
    additionalPeersCount?: int;
    launchMsgId: int;
    winnersCount: int;
    unclaimedCount: int;
    winners: long[];
    months?: int;
    stars?: long;
    prizeDescription?: string;
    untilDate: int;
  }> {
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    refunded?: true;
    channelId: long;
    additionalPeersCount?: int;
    launchMsgId: int;
    winnersCount: int;
    unclaimedCount: int;
    winners: long[];
    months?: int;
    stars?: long;
    prizeDescription?: string;
    untilDate: int;
    CONSTRUCTOR_ID: 3467263649;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaGiveawayResults';

    static fromReader(reader: Reader): MessageMediaGiveawayResults;
  }
  export class MessageMediaPaidMedia extends VirtualClass<{
    starsAmount: long;
    extendedMedia: Api.TypeMessageExtendedMedia[];
  }> {
    starsAmount: long;
    extendedMedia: Api.TypeMessageExtendedMedia[];
    CONSTRUCTOR_ID: 2827297937;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaPaidMedia';

    static fromReader(reader: Reader): MessageMediaPaidMedia;
  }
  export class MessageMediaToDo extends VirtualClass<{
    // flags: Api.Type;
    todo: Api.TypeTodoList;
    completions?: Api.TypeTodoCompletion[];
  }> {
    // flags: Api.Type;
    todo: Api.TypeTodoList;
    completions?: Api.TypeTodoCompletion[];
    CONSTRUCTOR_ID: 2320740372;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaToDo';

    static fromReader(reader: Reader): MessageMediaToDo;
  }
  export class MessageMediaVideoStream extends VirtualClass<{
    // flags: Api.Type;
    rtmpStream?: true;
    call: Api.TypeInputGroupCall;
  }> {
    // flags: Api.Type;
    rtmpStream?: true;
    call: Api.TypeInputGroupCall;
    CONSTRUCTOR_ID: 3395070857;
    SUBCLASS_OF_ID: 1198308914;
    className: 'MessageMediaVideoStream';

    static fromReader(reader: Reader): MessageMediaVideoStream;
  }
  export class MessageActionEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3064919984;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionEmpty';

    static fromReader(reader: Reader): MessageActionEmpty;
  }
  export class MessageActionChatCreate extends VirtualClass<{
    title: string;
    users: long[];
  }> {
    title: string;
    users: long[];
    CONSTRUCTOR_ID: 3175599021;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatCreate';

    static fromReader(reader: Reader): MessageActionChatCreate;
  }
  export class MessageActionChatEditTitle extends VirtualClass<{
    title: string;
  }> {
    title: string;
    CONSTRUCTOR_ID: 3047280218;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatEditTitle';

    static fromReader(reader: Reader): MessageActionChatEditTitle;
  }
  export class MessageActionChatEditPhoto extends VirtualClass<{
    photo: Api.TypePhoto;
  }> {
    photo: Api.TypePhoto;
    CONSTRUCTOR_ID: 2144015272;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatEditPhoto';

    static fromReader(reader: Reader): MessageActionChatEditPhoto;
  }
  export class MessageActionChatDeletePhoto extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2514746351;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatDeletePhoto';

    static fromReader(reader: Reader): MessageActionChatDeletePhoto;
  }
  export class MessageActionChatAddUser extends VirtualClass<{
    users: long[];
  }> {
    users: long[];
    CONSTRUCTOR_ID: 365886720;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatAddUser';

    static fromReader(reader: Reader): MessageActionChatAddUser;
  }
  export class MessageActionChatDeleteUser extends VirtualClass<{
    userId: long;
  }> {
    userId: long;
    CONSTRUCTOR_ID: 2755604684;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatDeleteUser';

    static fromReader(reader: Reader): MessageActionChatDeleteUser;
  }
  export class MessageActionChatJoinedByLink extends VirtualClass<{
    inviterId: long;
  }> {
    inviterId: long;
    CONSTRUCTOR_ID: 51520707;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatJoinedByLink';

    static fromReader(reader: Reader): MessageActionChatJoinedByLink;
  }
  export class MessageActionChannelCreate extends VirtualClass<{
    title: string;
  }> {
    title: string;
    CONSTRUCTOR_ID: 2513611922;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChannelCreate';

    static fromReader(reader: Reader): MessageActionChannelCreate;
  }
  export class MessageActionChatMigrateTo extends VirtualClass<{
    channelId: long;
  }> {
    channelId: long;
    CONSTRUCTOR_ID: 3775102866;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatMigrateTo';

    static fromReader(reader: Reader): MessageActionChatMigrateTo;
  }
  export class MessageActionChannelMigrateFrom extends VirtualClass<{
    title: string;
    chatId: long;
  }> {
    title: string;
    chatId: long;
    CONSTRUCTOR_ID: 3929622761;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChannelMigrateFrom';

    static fromReader(reader: Reader): MessageActionChannelMigrateFrom;
  }
  export class MessageActionPinMessage extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2495428845;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPinMessage';

    static fromReader(reader: Reader): MessageActionPinMessage;
  }
  export class MessageActionHistoryClear extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2679813636;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionHistoryClear';

    static fromReader(reader: Reader): MessageActionHistoryClear;
  }
  export class MessageActionGameScore extends VirtualClass<{
    gameId: long;
    score: int;
  }> {
    gameId: long;
    score: int;
    CONSTRUCTOR_ID: 2460428406;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGameScore';

    static fromReader(reader: Reader): MessageActionGameScore;
  }
  export class MessageActionPaymentSentMe extends VirtualClass<{
    // flags: Api.Type;
    recurringInit?: true;
    recurringUsed?: true;
    currency: string;
    totalAmount: long;
    payload: bytes;
    info?: Api.TypePaymentRequestedInfo;
    shippingOptionId?: string;
    charge: Api.TypePaymentCharge;
    subscriptionUntilDate?: int;
  }> {
    // flags: Api.Type;
    recurringInit?: true;
    recurringUsed?: true;
    currency: string;
    totalAmount: long;
    payload: bytes;
    info?: Api.TypePaymentRequestedInfo;
    shippingOptionId?: string;
    charge: Api.TypePaymentCharge;
    subscriptionUntilDate?: int;
    CONSTRUCTOR_ID: 4288679116;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPaymentSentMe';

    static fromReader(reader: Reader): MessageActionPaymentSentMe;
  }
  export class MessageActionPaymentSent extends VirtualClass<{
    // flags: Api.Type;
    recurringInit?: true;
    recurringUsed?: true;
    currency: string;
    totalAmount: long;
    invoiceSlug?: string;
    subscriptionUntilDate?: int;
  }> {
    // flags: Api.Type;
    recurringInit?: true;
    recurringUsed?: true;
    currency: string;
    totalAmount: long;
    invoiceSlug?: string;
    subscriptionUntilDate?: int;
    CONSTRUCTOR_ID: 3324293486;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPaymentSent';

    static fromReader(reader: Reader): MessageActionPaymentSent;
  }
  export class MessageActionPhoneCall extends VirtualClass<{
    // flags: Api.Type;
    video?: true;
    callId: long;
    reason?: Api.TypePhoneCallDiscardReason;
    duration?: int;
  }> {
    // flags: Api.Type;
    video?: true;
    callId: long;
    reason?: Api.TypePhoneCallDiscardReason;
    duration?: int;
    CONSTRUCTOR_ID: 2162236031;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPhoneCall';

    static fromReader(reader: Reader): MessageActionPhoneCall;
  }
  export class MessageActionScreenshotTaken extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1200788123;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionScreenshotTaken';

    static fromReader(reader: Reader): MessageActionScreenshotTaken;
  }
  export class MessageActionCustomAction extends VirtualClass<{
    message: string;
  }> {
    message: string;
    CONSTRUCTOR_ID: 4209418070;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionCustomAction';

    static fromReader(reader: Reader): MessageActionCustomAction;
  }
  export class MessageActionBotAllowed extends VirtualClass<{
    // flags: Api.Type;
    attachMenu?: true;
    fromRequest?: true;
    domain?: string;
    app?: Api.TypeBotApp;
  } | void> {
    // flags: Api.Type;
    attachMenu?: true;
    fromRequest?: true;
    domain?: string;
    app?: Api.TypeBotApp;
    CONSTRUCTOR_ID: 3306608249;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionBotAllowed';

    static fromReader(reader: Reader): MessageActionBotAllowed;
  }
  export class MessageActionSecureValuesSentMe extends VirtualClass<{
    values: Api.TypeSecureValue[];
    credentials: Api.TypeSecureCredentialsEncrypted;
  }> {
    values: Api.TypeSecureValue[];
    credentials: Api.TypeSecureCredentialsEncrypted;
    CONSTRUCTOR_ID: 455635795;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSecureValuesSentMe';

    static fromReader(reader: Reader): MessageActionSecureValuesSentMe;
  }
  export class MessageActionSecureValuesSent extends VirtualClass<{
    types: Api.TypeSecureValueType[];
  }> {
    types: Api.TypeSecureValueType[];
    CONSTRUCTOR_ID: 3646710100;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSecureValuesSent';

    static fromReader(reader: Reader): MessageActionSecureValuesSent;
  }
  export class MessageActionContactSignUp extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4092747638;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionContactSignUp';

    static fromReader(reader: Reader): MessageActionContactSignUp;
  }
  export class MessageActionGeoProximityReached extends VirtualClass<{
    fromId: Api.TypePeer;
    toId: Api.TypePeer;
    distance: int;
  }> {
    fromId: Api.TypePeer;
    toId: Api.TypePeer;
    distance: int;
    CONSTRUCTOR_ID: 2564871831;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGeoProximityReached';

    static fromReader(reader: Reader): MessageActionGeoProximityReached;
  }
  export class MessageActionGroupCall extends VirtualClass<{
    // flags: Api.Type;
    call: Api.TypeInputGroupCall;
    duration?: int;
  }> {
    // flags: Api.Type;
    call: Api.TypeInputGroupCall;
    duration?: int;
    CONSTRUCTOR_ID: 2047704898;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGroupCall';

    static fromReader(reader: Reader): MessageActionGroupCall;
  }
  export class MessageActionInviteToGroupCall extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    users: long[];
  }> {
    call: Api.TypeInputGroupCall;
    users: long[];
    CONSTRUCTOR_ID: 1345295095;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionInviteToGroupCall';

    static fromReader(reader: Reader): MessageActionInviteToGroupCall;
  }
  export class MessageActionSetMessagesTTL extends VirtualClass<{
    // flags: Api.Type;
    period: int;
    autoSettingFrom?: long;
  }> {
    // flags: Api.Type;
    period: int;
    autoSettingFrom?: long;
    CONSTRUCTOR_ID: 1007897979;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSetMessagesTTL';

    static fromReader(reader: Reader): MessageActionSetMessagesTTL;
  }
  export class MessageActionGroupCallScheduled extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    scheduleDate: int;
  }> {
    call: Api.TypeInputGroupCall;
    scheduleDate: int;
    CONSTRUCTOR_ID: 3013637729;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGroupCallScheduled';

    static fromReader(reader: Reader): MessageActionGroupCallScheduled;
  }
  export class MessageActionSetChatTheme extends VirtualClass<{
    theme: Api.TypeChatTheme;
  }> {
    theme: Api.TypeChatTheme;
    CONSTRUCTOR_ID: 3105602874;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSetChatTheme';

    static fromReader(reader: Reader): MessageActionSetChatTheme;
  }
  export class MessageActionChatJoinedByRequest extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3955008459;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChatJoinedByRequest';

    static fromReader(reader: Reader): MessageActionChatJoinedByRequest;
  }
  export class MessageActionWebViewDataSentMe extends VirtualClass<{
    text: string;
    data: string;
  }> {
    text: string;
    data: string;
    CONSTRUCTOR_ID: 1205698681;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionWebViewDataSentMe';

    static fromReader(reader: Reader): MessageActionWebViewDataSentMe;
  }
  export class MessageActionWebViewDataSent extends VirtualClass<{
    text: string;
  }> {
    text: string;
    CONSTRUCTOR_ID: 3032714421;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionWebViewDataSent';

    static fromReader(reader: Reader): MessageActionWebViewDataSent;
  }
  export class MessageActionGiftPremium extends VirtualClass<{
    // flags: Api.Type;
    currency: string;
    amount: long;
    days: int;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    currency: string;
    amount: long;
    days: int;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 1223234306;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiftPremium';

    static fromReader(reader: Reader): MessageActionGiftPremium;
  }
  export class MessageActionTopicCreate extends VirtualClass<{
    // flags: Api.Type;
    titleMissing?: true;
    title: string;
    iconColor: int;
    iconEmojiId?: long;
  }> {
    // flags: Api.Type;
    titleMissing?: true;
    title: string;
    iconColor: int;
    iconEmojiId?: long;
    CONSTRUCTOR_ID: 228168278;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionTopicCreate';

    static fromReader(reader: Reader): MessageActionTopicCreate;
  }
  export class MessageActionTopicEdit extends VirtualClass<{
    // flags: Api.Type;
    title?: string;
    iconEmojiId?: long;
    closed?: Bool;
    hidden?: Bool;
  } | void> {
    // flags: Api.Type;
    title?: string;
    iconEmojiId?: long;
    closed?: Bool;
    hidden?: Bool;
    CONSTRUCTOR_ID: 3230943264;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionTopicEdit';

    static fromReader(reader: Reader): MessageActionTopicEdit;
  }
  export class MessageActionSuggestProfilePhoto extends VirtualClass<{
    photo: Api.TypePhoto;
  }> {
    photo: Api.TypePhoto;
    CONSTRUCTOR_ID: 1474192222;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSuggestProfilePhoto';

    static fromReader(reader: Reader): MessageActionSuggestProfilePhoto;
  }
  export class MessageActionRequestedPeer extends VirtualClass<{
    buttonId: int;
    peers: Api.TypePeer[];
  }> {
    buttonId: int;
    peers: Api.TypePeer[];
    CONSTRUCTOR_ID: 827428507;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionRequestedPeer';

    static fromReader(reader: Reader): MessageActionRequestedPeer;
  }
  export class MessageActionSetChatWallPaper extends VirtualClass<{
    // flags: Api.Type;
    same?: true;
    forBoth?: true;
    wallpaper: Api.TypeWallPaper;
  }> {
    // flags: Api.Type;
    same?: true;
    forBoth?: true;
    wallpaper: Api.TypeWallPaper;
    CONSTRUCTOR_ID: 1348510708;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSetChatWallPaper';

    static fromReader(reader: Reader): MessageActionSetChatWallPaper;
  }
  export class MessageActionGiftCode extends VirtualClass<{
    // flags: Api.Type;
    viaGiveaway?: true;
    unclaimed?: true;
    boostPeer?: Api.TypePeer;
    days: int;
    slug: string;
    currency?: string;
    amount?: long;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    viaGiveaway?: true;
    unclaimed?: true;
    boostPeer?: Api.TypePeer;
    days: int;
    slug: string;
    currency?: string;
    amount?: long;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 834962247;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiftCode';

    static fromReader(reader: Reader): MessageActionGiftCode;
  }
  export class MessageActionGiveawayLaunch extends VirtualClass<{
    // flags: Api.Type;
    stars?: long;
  } | void> {
    // flags: Api.Type;
    stars?: long;
    CONSTRUCTOR_ID: 2819576292;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiveawayLaunch';

    static fromReader(reader: Reader): MessageActionGiveawayLaunch;
  }
  export class MessageActionGiveawayResults extends VirtualClass<{
    // flags: Api.Type;
    stars?: true;
    winnersCount: int;
    unclaimedCount: int;
  }> {
    // flags: Api.Type;
    stars?: true;
    winnersCount: int;
    unclaimedCount: int;
    CONSTRUCTOR_ID: 2279797077;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiveawayResults';

    static fromReader(reader: Reader): MessageActionGiveawayResults;
  }
  export class MessageActionBoostApply extends VirtualClass<{
    boosts: int;
  }> {
    boosts: int;
    CONSTRUCTOR_ID: 3422726765;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionBoostApply';

    static fromReader(reader: Reader): MessageActionBoostApply;
  }
  export class MessageActionRequestedPeerSentMe extends VirtualClass<{
    buttonId: int;
    peers: Api.TypeRequestedPeer[];
  }> {
    buttonId: int;
    peers: Api.TypeRequestedPeer[];
    CONSTRUCTOR_ID: 2477987912;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionRequestedPeerSentMe';

    static fromReader(reader: Reader): MessageActionRequestedPeerSentMe;
  }
  export class MessageActionPaymentRefunded extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    currency: string;
    totalAmount: long;
    payload?: bytes;
    charge: Api.TypePaymentCharge;
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    currency: string;
    totalAmount: long;
    payload?: bytes;
    charge: Api.TypePaymentCharge;
    CONSTRUCTOR_ID: 1102307842;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPaymentRefunded';

    static fromReader(reader: Reader): MessageActionPaymentRefunded;
  }
  export class MessageActionGiftStars extends VirtualClass<{
    // flags: Api.Type;
    currency: string;
    amount: long;
    stars: long;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    transactionId?: string;
  }> {
    // flags: Api.Type;
    currency: string;
    amount: long;
    stars: long;
    cryptoCurrency?: string;
    cryptoAmount?: long;
    transactionId?: string;
    CONSTRUCTOR_ID: 1171632161;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiftStars';

    static fromReader(reader: Reader): MessageActionGiftStars;
  }
  export class MessageActionPrizeStars extends VirtualClass<{
    // flags: Api.Type;
    unclaimed?: true;
    stars: long;
    transactionId: string;
    boostPeer: Api.TypePeer;
    giveawayMsgId: int;
  }> {
    // flags: Api.Type;
    unclaimed?: true;
    stars: long;
    transactionId: string;
    boostPeer: Api.TypePeer;
    giveawayMsgId: int;
    CONSTRUCTOR_ID: 2953594786;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPrizeStars';

    static fromReader(reader: Reader): MessageActionPrizeStars;
  }
  export class MessageActionStarGift extends VirtualClass<{
    // flags: Api.Type;
    nameHidden?: true;
    saved?: true;
    converted?: true;
    upgraded?: true;
    refunded?: true;
    canUpgrade?: true;
    prepaidUpgrade?: true;
    upgradeSeparate?: true;
    auctionAcquired?: true;
    gift: Api.TypeStarGift;
    message?: Api.TypeTextWithEntities;
    convertStars?: long;
    upgradeMsgId?: int;
    upgradeStars?: long;
    fromId?: Api.TypePeer;
    peer?: Api.TypePeer;
    savedId?: long;
    prepaidUpgradeHash?: string;
    giftMsgId?: int;
    toId?: Api.TypePeer;
    giftNum?: int;
  }> {
    // flags: Api.Type;
    nameHidden?: true;
    saved?: true;
    converted?: true;
    upgraded?: true;
    refunded?: true;
    canUpgrade?: true;
    prepaidUpgrade?: true;
    upgradeSeparate?: true;
    auctionAcquired?: true;
    gift: Api.TypeStarGift;
    message?: Api.TypeTextWithEntities;
    convertStars?: long;
    upgradeMsgId?: int;
    upgradeStars?: long;
    fromId?: Api.TypePeer;
    peer?: Api.TypePeer;
    savedId?: long;
    prepaidUpgradeHash?: string;
    giftMsgId?: int;
    toId?: Api.TypePeer;
    giftNum?: int;
    CONSTRUCTOR_ID: 3928764883;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionStarGift';

    static fromReader(reader: Reader): MessageActionStarGift;
  }
  export class MessageActionStarGiftUnique extends VirtualClass<{
    // flags: Api.Type;
    upgrade?: true;
    transferred?: true;
    saved?: true;
    refunded?: true;
    prepaidUpgrade?: true;
    assigned?: true;
    fromOffer?: true;
    craft?: true;
    gift: Api.TypeStarGift;
    canExportAt?: int;
    transferStars?: long;
    fromId?: Api.TypePeer;
    peer?: Api.TypePeer;
    savedId?: long;
    resaleAmount?: Api.TypeStarsAmount;
    canTransferAt?: int;
    canResellAt?: int;
    dropOriginalDetailsStars?: long;
    canCraftAt?: int;
  }> {
    // flags: Api.Type;
    upgrade?: true;
    transferred?: true;
    saved?: true;
    refunded?: true;
    prepaidUpgrade?: true;
    assigned?: true;
    fromOffer?: true;
    craft?: true;
    gift: Api.TypeStarGift;
    canExportAt?: int;
    transferStars?: long;
    fromId?: Api.TypePeer;
    peer?: Api.TypePeer;
    savedId?: long;
    resaleAmount?: Api.TypeStarsAmount;
    canTransferAt?: int;
    canResellAt?: int;
    dropOriginalDetailsStars?: long;
    canCraftAt?: int;
    CONSTRUCTOR_ID: 3871544610;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionStarGiftUnique';

    static fromReader(reader: Reader): MessageActionStarGiftUnique;
  }
  export class MessageActionPaidMessagesRefunded extends VirtualClass<{
    count: int;
    stars: long;
  }> {
    count: int;
    stars: long;
    CONSTRUCTOR_ID: 2887720909;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPaidMessagesRefunded';

    static fromReader(reader: Reader): MessageActionPaidMessagesRefunded;
  }
  export class MessageActionPaidMessagesPrice extends VirtualClass<{
    // flags: Api.Type;
    broadcastMessagesAllowed?: true;
    stars: long;
  }> {
    // flags: Api.Type;
    broadcastMessagesAllowed?: true;
    stars: long;
    CONSTRUCTOR_ID: 2226685304;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPaidMessagesPrice';

    static fromReader(reader: Reader): MessageActionPaidMessagesPrice;
  }
  export class MessageActionConferenceCall extends VirtualClass<{
    // flags: Api.Type;
    missed?: true;
    active?: true;
    video?: true;
    callId: long;
    duration?: int;
    otherParticipants?: Api.TypePeer[];
  }> {
    // flags: Api.Type;
    missed?: true;
    active?: true;
    video?: true;
    callId: long;
    duration?: int;
    otherParticipants?: Api.TypePeer[];
    CONSTRUCTOR_ID: 805187450;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionConferenceCall';

    static fromReader(reader: Reader): MessageActionConferenceCall;
  }
  export class MessageActionTodoCompletions extends VirtualClass<{
    completed: int[];
    incompleted: int[];
  }> {
    completed: int[];
    incompleted: int[];
    CONSTRUCTOR_ID: 3430702217;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionTodoCompletions';

    static fromReader(reader: Reader): MessageActionTodoCompletions;
  }
  export class MessageActionTodoAppendTasks extends VirtualClass<{
    list: Api.TypeTodoItem[];
  }> {
    list: Api.TypeTodoItem[];
    CONSTRUCTOR_ID: 3354246275;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionTodoAppendTasks';

    static fromReader(reader: Reader): MessageActionTodoAppendTasks;
  }
  export class MessageActionSuggestedPostApproval extends VirtualClass<{
    // flags: Api.Type;
    rejected?: true;
    balanceTooLow?: true;
    rejectComment?: string;
    scheduleDate?: int;
    price?: Api.TypeStarsAmount;
  } | void> {
    // flags: Api.Type;
    rejected?: true;
    balanceTooLow?: true;
    rejectComment?: string;
    scheduleDate?: int;
    price?: Api.TypeStarsAmount;
    CONSTRUCTOR_ID: 4000978326;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSuggestedPostApproval';

    static fromReader(reader: Reader): MessageActionSuggestedPostApproval;
  }
  export class MessageActionSuggestedPostSuccess extends VirtualClass<{
    price: Api.TypeStarsAmount;
  }> {
    price: Api.TypeStarsAmount;
    CONSTRUCTOR_ID: 2514341737;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSuggestedPostSuccess';

    static fromReader(reader: Reader): MessageActionSuggestedPostSuccess;
  }
  export class MessageActionSuggestedPostRefund extends VirtualClass<{
    // flags: Api.Type;
    payerInitiated?: true;
  } | void> {
    // flags: Api.Type;
    payerInitiated?: true;
    CONSTRUCTOR_ID: 1777932024;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSuggestedPostRefund';

    static fromReader(reader: Reader): MessageActionSuggestedPostRefund;
  }
  export class MessageActionGiftTon extends VirtualClass<{
    // flags: Api.Type;
    currency: string;
    amount: long;
    cryptoCurrency: string;
    cryptoAmount: long;
    transactionId?: string;
  }> {
    // flags: Api.Type;
    currency: string;
    amount: long;
    cryptoCurrency: string;
    cryptoAmount: long;
    transactionId?: string;
    CONSTRUCTOR_ID: 2829305497;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionGiftTon';

    static fromReader(reader: Reader): MessageActionGiftTon;
  }
  export class MessageActionSuggestBirthday extends VirtualClass<{
    birthday: Api.TypeBirthday;
  }> {
    birthday: Api.TypeBirthday;
    CONSTRUCTOR_ID: 747579941;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionSuggestBirthday';

    static fromReader(reader: Reader): MessageActionSuggestBirthday;
  }
  export class MessageActionStarGiftPurchaseOffer extends VirtualClass<{
    // flags: Api.Type;
    accepted?: true;
    declined?: true;
    gift: Api.TypeStarGift;
    price: Api.TypeStarsAmount;
    expiresAt: int;
  }> {
    // flags: Api.Type;
    accepted?: true;
    declined?: true;
    gift: Api.TypeStarGift;
    price: Api.TypeStarsAmount;
    expiresAt: int;
    CONSTRUCTOR_ID: 2000845012;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionStarGiftPurchaseOffer';

    static fromReader(reader: Reader): MessageActionStarGiftPurchaseOffer;
  }
  export class MessageActionStarGiftPurchaseOfferDeclined extends VirtualClass<{
    // flags: Api.Type;
    expired?: true;
    gift: Api.TypeStarGift;
    price: Api.TypeStarsAmount;
  }> {
    // flags: Api.Type;
    expired?: true;
    gift: Api.TypeStarGift;
    price: Api.TypeStarsAmount;
    CONSTRUCTOR_ID: 1940760427;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionStarGiftPurchaseOfferDeclined';

    static fromReader(reader: Reader): MessageActionStarGiftPurchaseOfferDeclined;
  }
  export class MessageActionNewCreatorPending extends VirtualClass<{
    newCreatorId: long;
  }> {
    newCreatorId: long;
    CONSTRUCTOR_ID: 2961100933;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionNewCreatorPending';

    static fromReader(reader: Reader): MessageActionNewCreatorPending;
  }
  export class MessageActionChangeCreator extends VirtualClass<{
    newCreatorId: long;
  }> {
    newCreatorId: long;
    CONSTRUCTOR_ID: 3783807035;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionChangeCreator';

    static fromReader(reader: Reader): MessageActionChangeCreator;
  }
  export class MessageActionNoForwardsToggle extends VirtualClass<{
    prevValue: Bool;
    newValue: Bool;
  }> {
    prevValue: Bool;
    newValue: Bool;
    CONSTRUCTOR_ID: 3212666226;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionNoForwardsToggle';

    static fromReader(reader: Reader): MessageActionNoForwardsToggle;
  }
  export class MessageActionNoForwardsRequest extends VirtualClass<{
    // flags: Api.Type;
    expired?: true;
    prevValue: Bool;
    newValue: Bool;
  }> {
    // flags: Api.Type;
    expired?: true;
    prevValue: Bool;
    newValue: Bool;
    CONSTRUCTOR_ID: 1042781114;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionNoForwardsRequest';

    static fromReader(reader: Reader): MessageActionNoForwardsRequest;
  }
  export class MessageActionPollAppendAnswer extends VirtualClass<{
    answer: Api.TypePollAnswer;
  }> {
    answer: Api.TypePollAnswer;
    CONSTRUCTOR_ID: 2644626796;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPollAppendAnswer';

    static fromReader(reader: Reader): MessageActionPollAppendAnswer;
  }
  export class MessageActionPollDeleteAnswer extends VirtualClass<{
    answer: Api.TypePollAnswer;
  }> {
    answer: Api.TypePollAnswer;
    CONSTRUCTOR_ID: 966161628;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionPollDeleteAnswer';

    static fromReader(reader: Reader): MessageActionPollDeleteAnswer;
  }
  export class MessageActionManagedBotCreated extends VirtualClass<{
    botId: long;
  }> {
    botId: long;
    CONSTRUCTOR_ID: 375414334;
    SUBCLASS_OF_ID: 2256589094;
    className: 'MessageActionManagedBotCreated';

    static fromReader(reader: Reader): MessageActionManagedBotCreated;
  }
  export class Dialog extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    unreadMark?: true;
    viewForumAsMessages?: true;
    peer: Api.TypePeer;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadMentionsCount: int;
    unreadReactionsCount: int;
    unreadPollVotesCount: int;
    notifySettings: Api.TypePeerNotifySettings;
    pts?: int;
    draft?: Api.TypeDraftMessage;
    folderId?: int;
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    unreadMark?: true;
    viewForumAsMessages?: true;
    peer: Api.TypePeer;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadMentionsCount: int;
    unreadReactionsCount: int;
    unreadPollVotesCount: int;
    notifySettings: Api.TypePeerNotifySettings;
    pts?: int;
    draft?: Api.TypeDraftMessage;
    folderId?: int;
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 4236900339;
    SUBCLASS_OF_ID: 1120787796;
    className: 'Dialog';

    static fromReader(reader: Reader): Dialog;
  }
  export class DialogFolder extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    folder: Api.TypeFolder;
    peer: Api.TypePeer;
    topMessage: int;
    unreadMutedPeersCount: int;
    unreadUnmutedPeersCount: int;
    unreadMutedMessagesCount: int;
    unreadUnmutedMessagesCount: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    folder: Api.TypeFolder;
    peer: Api.TypePeer;
    topMessage: int;
    unreadMutedPeersCount: int;
    unreadUnmutedPeersCount: int;
    unreadMutedMessagesCount: int;
    unreadUnmutedMessagesCount: int;
    CONSTRUCTOR_ID: 1908216652;
    SUBCLASS_OF_ID: 1120787796;
    className: 'DialogFolder';

    static fromReader(reader: Reader): DialogFolder;
  }
  export class PhotoEmpty extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 590459437;
    SUBCLASS_OF_ID: 3581324060;
    className: 'PhotoEmpty';

    static fromReader(reader: Reader): PhotoEmpty;
  }
  export class Photo extends VirtualClass<{
    // flags: Api.Type;
    hasStickers?: true;
    id: long;
    accessHash: long;
    fileReference: bytes;
    date: int;
    sizes: Api.TypePhotoSize[];
    videoSizes?: Api.TypeVideoSize[];
    dcId: int;
  }> {
    // flags: Api.Type;
    hasStickers?: true;
    id: long;
    accessHash: long;
    fileReference: bytes;
    date: int;
    sizes: Api.TypePhotoSize[];
    videoSizes?: Api.TypeVideoSize[];
    dcId: int;
    CONSTRUCTOR_ID: 4212750949;
    SUBCLASS_OF_ID: 3581324060;
    className: 'Photo';

    static fromReader(reader: Reader): Photo;
  }
  export class PhotoSizeEmpty extends VirtualClass<{
    type: string;
  }> {
    type: string;
    CONSTRUCTOR_ID: 236446268;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoSizeEmpty';

    static fromReader(reader: Reader): PhotoSizeEmpty;
  }
  export class PhotoSize extends VirtualClass<{
    type: string;
    w: int;
    h: int;
    size: int;
  }> {
    type: string;
    w: int;
    h: int;
    size: int;
    CONSTRUCTOR_ID: 1976012384;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoSize';

    static fromReader(reader: Reader): PhotoSize;
  }
  export class PhotoCachedSize extends VirtualClass<{
    type: string;
    w: int;
    h: int;
    bytes: bytes;
  }> {
    type: string;
    w: int;
    h: int;
    bytes: bytes;
    CONSTRUCTOR_ID: 35527382;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoCachedSize';

    static fromReader(reader: Reader): PhotoCachedSize;
  }
  export class PhotoStrippedSize extends VirtualClass<{
    type: string;
    bytes: bytes;
  }> {
    type: string;
    bytes: bytes;
    CONSTRUCTOR_ID: 3769678894;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoStrippedSize';

    static fromReader(reader: Reader): PhotoStrippedSize;
  }
  export class PhotoSizeProgressive extends VirtualClass<{
    type: string;
    w: int;
    h: int;
    sizes: int[];
  }> {
    type: string;
    w: int;
    h: int;
    sizes: int[];
    CONSTRUCTOR_ID: 4198431637;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoSizeProgressive';

    static fromReader(reader: Reader): PhotoSizeProgressive;
  }
  export class PhotoPathSize extends VirtualClass<{
    type: string;
    bytes: bytes;
  }> {
    type: string;
    bytes: bytes;
    CONSTRUCTOR_ID: 3626061121;
    SUBCLASS_OF_ID: 399256025;
    className: 'PhotoPathSize';

    static fromReader(reader: Reader): PhotoPathSize;
  }
  export class GeoPointEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 286776671;
    SUBCLASS_OF_ID: 3591430509;
    className: 'GeoPointEmpty';

    static fromReader(reader: Reader): GeoPointEmpty;
  }
  export class GeoPoint extends VirtualClass<{
    // flags: Api.Type;
    long: double;
    lat: double;
    accessHash: long;
    accuracyRadius?: int;
  }> {
    // flags: Api.Type;
    long: double;
    lat: double;
    accessHash: long;
    accuracyRadius?: int;
    CONSTRUCTOR_ID: 2997024355;
    SUBCLASS_OF_ID: 3591430509;
    className: 'GeoPoint';

    static fromReader(reader: Reader): GeoPoint;
  }
  export class InputNotifyPeer extends VirtualClass<{
    peer: Api.TypeInputPeer;
  }> {
    peer: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 3099351820;
    SUBCLASS_OF_ID: 1486362133;
    className: 'InputNotifyPeer';

    static fromReader(reader: Reader): InputNotifyPeer;
  }
  export class InputNotifyUsers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 423314455;
    SUBCLASS_OF_ID: 1486362133;
    className: 'InputNotifyUsers';

    static fromReader(reader: Reader): InputNotifyUsers;
  }
  export class InputNotifyChats extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1251338318;
    SUBCLASS_OF_ID: 1486362133;
    className: 'InputNotifyChats';

    static fromReader(reader: Reader): InputNotifyChats;
  }
  export class InputNotifyBroadcasts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2983951486;
    SUBCLASS_OF_ID: 1486362133;
    className: 'InputNotifyBroadcasts';

    static fromReader(reader: Reader): InputNotifyBroadcasts;
  }
  export class InputNotifyForumTopic extends VirtualClass<{
    peer: Api.TypeInputPeer;
    topMsgId: int;
  }> {
    peer: Api.TypeInputPeer;
    topMsgId: int;
    CONSTRUCTOR_ID: 1548122514;
    SUBCLASS_OF_ID: 1486362133;
    className: 'InputNotifyForumTopic';

    static fromReader(reader: Reader): InputNotifyForumTopic;
  }
  export class InputPeerNotifySettings extends VirtualClass<{
    // flags: Api.Type;
    showPreviews?: Bool;
    silent?: Bool;
    muteUntil?: int;
    sound?: Api.TypeNotificationSound;
    storiesMuted?: Bool;
    storiesHideSender?: Bool;
    storiesSound?: Api.TypeNotificationSound;
  } | void> {
    // flags: Api.Type;
    showPreviews?: Bool;
    silent?: Bool;
    muteUntil?: int;
    sound?: Api.TypeNotificationSound;
    storiesMuted?: Bool;
    storiesHideSender?: Bool;
    storiesSound?: Api.TypeNotificationSound;
    CONSTRUCTOR_ID: 3402328802;
    SUBCLASS_OF_ID: 2430274317;
    className: 'InputPeerNotifySettings';

    static fromReader(reader: Reader): InputPeerNotifySettings;
  }
  export class PeerNotifySettings extends VirtualClass<{
    // flags: Api.Type;
    showPreviews?: Bool;
    silent?: Bool;
    muteUntil?: int;
    iosSound?: Api.TypeNotificationSound;
    androidSound?: Api.TypeNotificationSound;
    otherSound?: Api.TypeNotificationSound;
    storiesMuted?: Bool;
    storiesHideSender?: Bool;
    storiesIosSound?: Api.TypeNotificationSound;
    storiesAndroidSound?: Api.TypeNotificationSound;
    storiesOtherSound?: Api.TypeNotificationSound;
  } | void> {
    // flags: Api.Type;
    showPreviews?: Bool;
    silent?: Bool;
    muteUntil?: int;
    iosSound?: Api.TypeNotificationSound;
    androidSound?: Api.TypeNotificationSound;
    otherSound?: Api.TypeNotificationSound;
    storiesMuted?: Bool;
    storiesHideSender?: Bool;
    storiesIosSound?: Api.TypeNotificationSound;
    storiesAndroidSound?: Api.TypeNotificationSound;
    storiesOtherSound?: Api.TypeNotificationSound;
    CONSTRUCTOR_ID: 2573347852;
    SUBCLASS_OF_ID: 3475030132;
    className: 'PeerNotifySettings';

    static fromReader(reader: Reader): PeerNotifySettings;
  }
  export class PeerSettings extends VirtualClass<{
    // flags: Api.Type;
    reportSpam?: true;
    addContact?: true;
    blockContact?: true;
    shareContact?: true;
    needContactsException?: true;
    reportGeo?: true;
    autoarchived?: true;
    inviteMembers?: true;
    requestChatBroadcast?: true;
    businessBotPaused?: true;
    businessBotCanReply?: true;
    geoDistance?: int;
    requestChatTitle?: string;
    requestChatDate?: int;
    businessBotId?: long;
    businessBotManageUrl?: string;
    chargePaidMessageStars?: long;
    registrationMonth?: string;
    phoneCountry?: string;
    nameChangeDate?: int;
    photoChangeDate?: int;
  } | void> {
    // flags: Api.Type;
    reportSpam?: true;
    addContact?: true;
    blockContact?: true;
    shareContact?: true;
    needContactsException?: true;
    reportGeo?: true;
    autoarchived?: true;
    inviteMembers?: true;
    requestChatBroadcast?: true;
    businessBotPaused?: true;
    businessBotCanReply?: true;
    geoDistance?: int;
    requestChatTitle?: string;
    requestChatDate?: int;
    businessBotId?: long;
    businessBotManageUrl?: string;
    chargePaidMessageStars?: long;
    registrationMonth?: string;
    phoneCountry?: string;
    nameChangeDate?: int;
    photoChangeDate?: int;
    CONSTRUCTOR_ID: 4101456375;
    SUBCLASS_OF_ID: 4138180484;
    className: 'PeerSettings';

    static fromReader(reader: Reader): PeerSettings;
  }
  export class WallPaper extends VirtualClass<{
    id: long;
    // flags: Api.Type;
    creator?: true;
    default?: true;
    pattern?: true;
    dark?: true;
    accessHash: long;
    slug: string;
    document: Api.TypeDocument;
    settings?: Api.TypeWallPaperSettings;
  }> {
    id: long;
    // flags: Api.Type;
    creator?: true;
    default?: true;
    pattern?: true;
    dark?: true;
    accessHash: long;
    slug: string;
    document: Api.TypeDocument;
    settings?: Api.TypeWallPaperSettings;
    CONSTRUCTOR_ID: 2755118061;
    SUBCLASS_OF_ID: 2527250827;
    className: 'WallPaper';

    static fromReader(reader: Reader): WallPaper;
  }
  export class WallPaperNoFile extends VirtualClass<{
    id: long;
    // flags: Api.Type;
    default?: true;
    dark?: true;
    settings?: Api.TypeWallPaperSettings;
  }> {
    id: long;
    // flags: Api.Type;
    default?: true;
    dark?: true;
    settings?: Api.TypeWallPaperSettings;
    CONSTRUCTOR_ID: 3766501654;
    SUBCLASS_OF_ID: 2527250827;
    className: 'WallPaperNoFile';

    static fromReader(reader: Reader): WallPaperNoFile;
  }
  export class InputReportReasonSpam extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1490799288;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonSpam';

    static fromReader(reader: Reader): InputReportReasonSpam;
  }
  export class InputReportReasonViolence extends VirtualClass<void> {
    CONSTRUCTOR_ID: 505595789;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonViolence';

    static fromReader(reader: Reader): InputReportReasonViolence;
  }
  export class InputReportReasonPornography extends VirtualClass<void> {
    CONSTRUCTOR_ID: 777640226;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonPornography';

    static fromReader(reader: Reader): InputReportReasonPornography;
  }
  export class InputReportReasonChildAbuse extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2918469347;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonChildAbuse';

    static fromReader(reader: Reader): InputReportReasonChildAbuse;
  }
  export class InputReportReasonOther extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3252986545;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonOther';

    static fromReader(reader: Reader): InputReportReasonOther;
  }
  export class InputReportReasonCopyright extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2609510714;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonCopyright';

    static fromReader(reader: Reader): InputReportReasonCopyright;
  }
  export class InputReportReasonGeoIrrelevant extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3688169197;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonGeoIrrelevant';

    static fromReader(reader: Reader): InputReportReasonGeoIrrelevant;
  }
  export class InputReportReasonFake extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4124956391;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonFake';

    static fromReader(reader: Reader): InputReportReasonFake;
  }
  export class InputReportReasonIllegalDrugs extends VirtualClass<void> {
    CONSTRUCTOR_ID: 177124030;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonIllegalDrugs';

    static fromReader(reader: Reader): InputReportReasonIllegalDrugs;
  }
  export class InputReportReasonPersonalDetails extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2663876157;
    SUBCLASS_OF_ID: 2214706471;
    className: 'InputReportReasonPersonalDetails';

    static fromReader(reader: Reader): InputReportReasonPersonalDetails;
  }
  export class UserFull extends VirtualClass<{
    // flags: Api.Type;
    blocked?: true;
    phoneCallsAvailable?: true;
    phoneCallsPrivate?: true;
    canPinMessage?: true;
    hasScheduled?: true;
    videoCallsAvailable?: true;
    voiceMessagesForbidden?: true;
    translationsDisabled?: true;
    storiesPinnedAvailable?: true;
    blockedMyStoriesFrom?: true;
    wallpaperOverridden?: true;
    contactRequirePremium?: true;
    readDatesPrivate?: true;
    // flags2: Api.Type;
    sponsoredEnabled?: true;
    canViewRevenue?: true;
    botCanManageEmojiStatus?: true;
    displayGiftsButton?: true;
    noforwardsMyEnabled?: true;
    noforwardsPeerEnabled?: true;
    unofficialSecurityRisk?: true;
    id: long;
    about?: string;
    settings: Api.TypePeerSettings;
    personalPhoto?: Api.TypePhoto;
    profilePhoto?: Api.TypePhoto;
    fallbackPhoto?: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    botInfo?: Api.TypeBotInfo;
    pinnedMsgId?: int;
    commonChatsCount: int;
    folderId?: int;
    ttlPeriod?: int;
    theme?: Api.TypeChatTheme;
    privateForwardName?: string;
    botGroupAdminRights?: Api.TypeChatAdminRights;
    botBroadcastAdminRights?: Api.TypeChatAdminRights;
    wallpaper?: Api.TypeWallPaper;
    stories?: Api.TypePeerStories;
    businessWorkHours?: Api.TypeBusinessWorkHours;
    businessLocation?: Api.TypeBusinessLocation;
    businessGreetingMessage?: Api.TypeBusinessGreetingMessage;
    businessAwayMessage?: Api.TypeBusinessAwayMessage;
    businessIntro?: Api.TypeBusinessIntro;
    birthday?: Api.TypeBirthday;
    personalChannelId?: long;
    personalChannelMessage?: int;
    stargiftsCount?: int;
    starrefProgram?: Api.TypeStarRefProgram;
    botVerification?: Api.TypeBotVerification;
    sendPaidMessagesStars?: long;
    disallowedGifts?: Api.TypeDisallowedGiftsSettings;
    starsRating?: Api.TypeStarsRating;
    starsMyPendingRating?: Api.TypeStarsRating;
    starsMyPendingRatingDate?: int;
    mainTab?: Api.TypeProfileTab;
    savedMusic?: Api.TypeDocument;
    note?: Api.TypeTextWithEntities;
    botManagerId?: long;
  }> {
    // flags: Api.Type;
    blocked?: true;
    phoneCallsAvailable?: true;
    phoneCallsPrivate?: true;
    canPinMessage?: true;
    hasScheduled?: true;
    videoCallsAvailable?: true;
    voiceMessagesForbidden?: true;
    translationsDisabled?: true;
    storiesPinnedAvailable?: true;
    blockedMyStoriesFrom?: true;
    wallpaperOverridden?: true;
    contactRequirePremium?: true;
    readDatesPrivate?: true;
    // flags2: Api.Type;
    sponsoredEnabled?: true;
    canViewRevenue?: true;
    botCanManageEmojiStatus?: true;
    displayGiftsButton?: true;
    noforwardsMyEnabled?: true;
    noforwardsPeerEnabled?: true;
    unofficialSecurityRisk?: true;
    id: long;
    about?: string;
    settings: Api.TypePeerSettings;
    personalPhoto?: Api.TypePhoto;
    profilePhoto?: Api.TypePhoto;
    fallbackPhoto?: Api.TypePhoto;
    notifySettings: Api.TypePeerNotifySettings;
    botInfo?: Api.TypeBotInfo;
    pinnedMsgId?: int;
    commonChatsCount: int;
    folderId?: int;
    ttlPeriod?: int;
    theme?: Api.TypeChatTheme;
    privateForwardName?: string;
    botGroupAdminRights?: Api.TypeChatAdminRights;
    botBroadcastAdminRights?: Api.TypeChatAdminRights;
    wallpaper?: Api.TypeWallPaper;
    stories?: Api.TypePeerStories;
    businessWorkHours?: Api.TypeBusinessWorkHours;
    businessLocation?: Api.TypeBusinessLocation;
    businessGreetingMessage?: Api.TypeBusinessGreetingMessage;
    businessAwayMessage?: Api.TypeBusinessAwayMessage;
    businessIntro?: Api.TypeBusinessIntro;
    birthday?: Api.TypeBirthday;
    personalChannelId?: long;
    personalChannelMessage?: int;
    stargiftsCount?: int;
    starrefProgram?: Api.TypeStarRefProgram;
    botVerification?: Api.TypeBotVerification;
    sendPaidMessagesStars?: long;
    disallowedGifts?: Api.TypeDisallowedGiftsSettings;
    starsRating?: Api.TypeStarsRating;
    starsMyPendingRating?: Api.TypeStarsRating;
    starsMyPendingRatingDate?: int;
    mainTab?: Api.TypeProfileTab;
    savedMusic?: Api.TypeDocument;
    note?: Api.TypeTextWithEntities;
    botManagerId?: long;
    CONSTRUCTOR_ID: 114026053;
    SUBCLASS_OF_ID: 524706233;
    className: 'UserFull';

    static fromReader(reader: Reader): UserFull;
  }
  export class Contact extends VirtualClass<{
    userId: long;
    mutual: Bool;
  }> {
    userId: long;
    mutual: Bool;
    CONSTRUCTOR_ID: 341499403;
    SUBCLASS_OF_ID: 2212487076;
    className: 'Contact';

    static fromReader(reader: Reader): Contact;
  }
  export class ImportedContact extends VirtualClass<{
    userId: long;
    clientId: long;
  }> {
    userId: long;
    clientId: long;
    CONSTRUCTOR_ID: 3242081360;
    SUBCLASS_OF_ID: 3041246170;
    className: 'ImportedContact';

    static fromReader(reader: Reader): ImportedContact;
  }
  export class ContactStatus extends VirtualClass<{
    userId: long;
    status: Api.TypeUserStatus;
  }> {
    userId: long;
    status: Api.TypeUserStatus;
    CONSTRUCTOR_ID: 383348795;
    SUBCLASS_OF_ID: 1757468492;
    className: 'ContactStatus';

    static fromReader(reader: Reader): ContactStatus;
  }
  export class InputMessagesFilterEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1474492012;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterEmpty';

    static fromReader(reader: Reader): InputMessagesFilterEmpty;
  }
  export class InputMessagesFilterPhotos extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2517214492;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterPhotos';

    static fromReader(reader: Reader): InputMessagesFilterPhotos;
  }
  export class InputMessagesFilterVideo extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2680163941;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterVideo';

    static fromReader(reader: Reader): InputMessagesFilterVideo;
  }
  export class InputMessagesFilterPhotoVideo extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1458172132;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterPhotoVideo';

    static fromReader(reader: Reader): InputMessagesFilterPhotoVideo;
  }
  export class InputMessagesFilterDocument extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2665345416;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterDocument';

    static fromReader(reader: Reader): InputMessagesFilterDocument;
  }
  export class InputMessagesFilterUrl extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2129714567;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterUrl';

    static fromReader(reader: Reader): InputMessagesFilterUrl;
  }
  export class InputMessagesFilterGif extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4291323271;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterGif';

    static fromReader(reader: Reader): InputMessagesFilterGif;
  }
  export class InputMessagesFilterVoice extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1358283666;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterVoice';

    static fromReader(reader: Reader): InputMessagesFilterVoice;
  }
  export class InputMessagesFilterMusic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 928101534;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterMusic';

    static fromReader(reader: Reader): InputMessagesFilterMusic;
  }
  export class InputMessagesFilterChatPhotos extends VirtualClass<void> {
    CONSTRUCTOR_ID: 975236280;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterChatPhotos';

    static fromReader(reader: Reader): InputMessagesFilterChatPhotos;
  }
  export class InputMessagesFilterPhoneCalls extends VirtualClass<{
    // flags: Api.Type;
    missed?: true;
  } | void> {
    // flags: Api.Type;
    missed?: true;
    CONSTRUCTOR_ID: 2160695144;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterPhoneCalls';

    static fromReader(reader: Reader): InputMessagesFilterPhoneCalls;
  }
  export class InputMessagesFilterRoundVoice extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2054952868;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterRoundVoice';

    static fromReader(reader: Reader): InputMessagesFilterRoundVoice;
  }
  export class InputMessagesFilterRoundVideo extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3041516115;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterRoundVideo';

    static fromReader(reader: Reader): InputMessagesFilterRoundVideo;
  }
  export class InputMessagesFilterMyMentions extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3254314650;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterMyMentions';

    static fromReader(reader: Reader): InputMessagesFilterMyMentions;
  }
  export class InputMessagesFilterGeo extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3875695885;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterGeo';

    static fromReader(reader: Reader): InputMessagesFilterGeo;
  }
  export class InputMessagesFilterContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3764575107;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterContacts';

    static fromReader(reader: Reader): InputMessagesFilterContacts;
  }
  export class InputMessagesFilterPinned extends VirtualClass<void> {
    CONSTRUCTOR_ID: 464520273;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterPinned';

    static fromReader(reader: Reader): InputMessagesFilterPinned;
  }
  export class InputMessagesFilterPoll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4197173514;
    SUBCLASS_OF_ID: 2318855188;
    className: 'InputMessagesFilterPoll';

    static fromReader(reader: Reader): InputMessagesFilterPoll;
  }
  export class UpdateNewMessage extends VirtualClass<{
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
  }> {
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 522914557;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewMessage';

    static fromReader(reader: Reader): UpdateNewMessage;
  }
  export class UpdateMessageID extends VirtualClass<{
    id: int;
    randomId: long;
  }> {
    id: int;
    randomId: long;
    CONSTRUCTOR_ID: 1318109142;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMessageID';

    static fromReader(reader: Reader): UpdateMessageID;
  }
  export class UpdateDeleteMessages extends VirtualClass<{
    messages: int[];
    pts: int;
    ptsCount: int;
  }> {
    messages: int[];
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 2718806245;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteMessages';

    static fromReader(reader: Reader): UpdateDeleteMessages;
  }
  export class UpdateUserTyping extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    topMsgId?: int;
    action: Api.TypeSendMessageAction;
  }> {
    // flags: Api.Type;
    userId: long;
    topMsgId?: int;
    action: Api.TypeSendMessageAction;
    CONSTRUCTOR_ID: 706199388;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUserTyping';

    static fromReader(reader: Reader): UpdateUserTyping;
  }
  export class UpdateChatUserTyping extends VirtualClass<{
    chatId: long;
    fromId: Api.TypePeer;
    action: Api.TypeSendMessageAction;
  }> {
    chatId: long;
    fromId: Api.TypePeer;
    action: Api.TypeSendMessageAction;
    CONSTRUCTOR_ID: 2202565360;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatUserTyping';

    static fromReader(reader: Reader): UpdateChatUserTyping;
  }
  export class UpdateChatParticipants extends VirtualClass<{
    participants: Api.TypeChatParticipants;
  }> {
    participants: Api.TypeChatParticipants;
    CONSTRUCTOR_ID: 125178264;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipants';

    static fromReader(reader: Reader): UpdateChatParticipants;
  }
  export class UpdateUserStatus extends VirtualClass<{
    userId: long;
    status: Api.TypeUserStatus;
  }> {
    userId: long;
    status: Api.TypeUserStatus;
    CONSTRUCTOR_ID: 3854432478;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUserStatus';

    static fromReader(reader: Reader): UpdateUserStatus;
  }
  export class UpdateUserName extends VirtualClass<{
    userId: long;
    firstName: string;
    lastName: string;
    usernames: Api.TypeUsername[];
  }> {
    userId: long;
    firstName: string;
    lastName: string;
    usernames: Api.TypeUsername[];
    CONSTRUCTOR_ID: 2810480932;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUserName';

    static fromReader(reader: Reader): UpdateUserName;
  }
  export class UpdateNewAuthorization extends VirtualClass<{
    // flags: Api.Type;
    unconfirmed?: true;
    hash: long;
    date?: int;
    device?: string;
    location?: string;
  }> {
    // flags: Api.Type;
    unconfirmed?: true;
    hash: long;
    date?: int;
    device?: string;
    location?: string;
    CONSTRUCTOR_ID: 2303831023;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewAuthorization';

    static fromReader(reader: Reader): UpdateNewAuthorization;
  }
  export class UpdateNewEncryptedMessage extends VirtualClass<{
    message: Api.TypeEncryptedMessage;
    qts: int;
  }> {
    message: Api.TypeEncryptedMessage;
    qts: int;
    CONSTRUCTOR_ID: 314359194;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewEncryptedMessage';

    static fromReader(reader: Reader): UpdateNewEncryptedMessage;
  }
  export class UpdateEncryptedChatTyping extends VirtualClass<{
    chatId: int;
  }> {
    chatId: int;
    CONSTRUCTOR_ID: 386986326;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEncryptedChatTyping';

    static fromReader(reader: Reader): UpdateEncryptedChatTyping;
  }
  export class UpdateEncryption extends VirtualClass<{
    chat: Api.TypeEncryptedChat;
    date: int;
  }> {
    chat: Api.TypeEncryptedChat;
    date: int;
    CONSTRUCTOR_ID: 3030575245;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEncryption';

    static fromReader(reader: Reader): UpdateEncryption;
  }
  export class UpdateEncryptedMessagesRead extends VirtualClass<{
    chatId: int;
    maxDate: int;
    date: int;
  }> {
    chatId: int;
    maxDate: int;
    date: int;
    CONSTRUCTOR_ID: 956179895;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEncryptedMessagesRead';

    static fromReader(reader: Reader): UpdateEncryptedMessagesRead;
  }
  export class UpdateChatParticipantAdd extends VirtualClass<{
    chatId: long;
    userId: long;
    inviterId: long;
    date: int;
    version: int;
  }> {
    chatId: long;
    userId: long;
    inviterId: long;
    date: int;
    version: int;
    CONSTRUCTOR_ID: 1037718609;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipantAdd';

    static fromReader(reader: Reader): UpdateChatParticipantAdd;
  }
  export class UpdateChatParticipantDelete extends VirtualClass<{
    chatId: long;
    userId: long;
    version: int;
  }> {
    chatId: long;
    userId: long;
    version: int;
    CONSTRUCTOR_ID: 3811523959;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipantDelete';

    static fromReader(reader: Reader): UpdateChatParticipantDelete;
  }
  export class UpdateDcOptions extends VirtualClass<{
    dcOptions: Api.TypeDcOption[];
  }> {
    dcOptions: Api.TypeDcOption[];
    CONSTRUCTOR_ID: 2388564083;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDcOptions';

    static fromReader(reader: Reader): UpdateDcOptions;
  }
  export class UpdateNotifySettings extends VirtualClass<{
    peer: Api.TypeNotifyPeer;
    notifySettings: Api.TypePeerNotifySettings;
  }> {
    peer: Api.TypeNotifyPeer;
    notifySettings: Api.TypePeerNotifySettings;
    CONSTRUCTOR_ID: 3200411887;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNotifySettings';

    static fromReader(reader: Reader): UpdateNotifySettings;
  }
  export class UpdateServiceNotification extends VirtualClass<{
    // flags: Api.Type;
    popup?: true;
    invertMedia?: true;
    inboxDate?: int;
    type: string;
    message: string;
    media: Api.TypeMessageMedia;
    entities: Api.TypeMessageEntity[];
  }> {
    // flags: Api.Type;
    popup?: true;
    invertMedia?: true;
    inboxDate?: int;
    type: string;
    message: string;
    media: Api.TypeMessageMedia;
    entities: Api.TypeMessageEntity[];
    CONSTRUCTOR_ID: 3957614617;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateServiceNotification';

    static fromReader(reader: Reader): UpdateServiceNotification;
  }
  export class UpdatePrivacy extends VirtualClass<{
    key: Api.TypePrivacyKey;
    rules: Api.TypePrivacyRule[];
  }> {
    key: Api.TypePrivacyKey;
    rules: Api.TypePrivacyRule[];
    CONSTRUCTOR_ID: 3996854058;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePrivacy';

    static fromReader(reader: Reader): UpdatePrivacy;
  }
  export class UpdateUserPhone extends VirtualClass<{
    userId: long;
    phone: string;
  }> {
    userId: long;
    phone: string;
    CONSTRUCTOR_ID: 88680979;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUserPhone';

    static fromReader(reader: Reader): UpdateUserPhone;
  }
  export class UpdateReadHistoryInbox extends VirtualClass<{
    // flags: Api.Type;
    folderId?: int;
    peer: Api.TypePeer;
    topMsgId?: int;
    maxId: int;
    stillUnreadCount: int;
    pts: int;
    ptsCount: int;
  }> {
    // flags: Api.Type;
    folderId?: int;
    peer: Api.TypePeer;
    topMsgId?: int;
    maxId: int;
    stillUnreadCount: int;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 2659499161;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadHistoryInbox';

    static fromReader(reader: Reader): UpdateReadHistoryInbox;
  }
  export class UpdateReadHistoryOutbox extends VirtualClass<{
    peer: Api.TypePeer;
    maxId: int;
    pts: int;
    ptsCount: int;
  }> {
    peer: Api.TypePeer;
    maxId: int;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 791617983;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadHistoryOutbox';

    static fromReader(reader: Reader): UpdateReadHistoryOutbox;
  }
  export class UpdateWebPage extends VirtualClass<{
    webpage: Api.TypeWebPage;
    pts: int;
    ptsCount: int;
  }> {
    webpage: Api.TypeWebPage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 2139689491;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateWebPage';

    static fromReader(reader: Reader): UpdateWebPage;
  }
  export class UpdateReadMessagesContents extends VirtualClass<{
    // flags: Api.Type;
    messages: int[];
    pts: int;
    ptsCount: int;
    date?: int;
  }> {
    // flags: Api.Type;
    messages: int[];
    pts: int;
    ptsCount: int;
    date?: int;
    CONSTRUCTOR_ID: 4163006849;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadMessagesContents';

    static fromReader(reader: Reader): UpdateReadMessagesContents;
  }
  export class UpdateChannelTooLong extends VirtualClass<{
    // flags: Api.Type;
    channelId: long;
    pts?: int;
  }> {
    // flags: Api.Type;
    channelId: long;
    pts?: int;
    CONSTRUCTOR_ID: 277713951;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelTooLong';

    static fromReader(reader: Reader): UpdateChannelTooLong;
  }
  export class UpdateChannel extends VirtualClass<{
    channelId: long;
  }> {
    channelId: long;
    CONSTRUCTOR_ID: 1666927625;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannel';

    static fromReader(reader: Reader): UpdateChannel;
  }
  export class UpdateNewChannelMessage extends VirtualClass<{
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
  }> {
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 1656358105;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewChannelMessage';

    static fromReader(reader: Reader): UpdateNewChannelMessage;
  }
  export class UpdateReadChannelInbox extends VirtualClass<{
    // flags: Api.Type;
    folderId?: int;
    channelId: long;
    maxId: int;
    stillUnreadCount: int;
    pts: int;
  }> {
    // flags: Api.Type;
    folderId?: int;
    channelId: long;
    maxId: int;
    stillUnreadCount: int;
    pts: int;
    CONSTRUCTOR_ID: 2452516368;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadChannelInbox';

    static fromReader(reader: Reader): UpdateReadChannelInbox;
  }
  export class UpdateDeleteChannelMessages extends VirtualClass<{
    channelId: long;
    messages: int[];
    pts: int;
    ptsCount: int;
  }> {
    channelId: long;
    messages: int[];
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 3274529554;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteChannelMessages';

    static fromReader(reader: Reader): UpdateDeleteChannelMessages;
  }
  export class UpdateChannelMessageViews extends VirtualClass<{
    channelId: long;
    id: int;
    views: int;
  }> {
    channelId: long;
    id: int;
    views: int;
    CONSTRUCTOR_ID: 4062620680;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelMessageViews';

    static fromReader(reader: Reader): UpdateChannelMessageViews;
  }
  export class UpdateChatParticipantAdmin extends VirtualClass<{
    chatId: long;
    userId: long;
    isAdmin: Bool;
    version: int;
  }> {
    chatId: long;
    userId: long;
    isAdmin: Bool;
    version: int;
    CONSTRUCTOR_ID: 3620364706;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipantAdmin';

    static fromReader(reader: Reader): UpdateChatParticipantAdmin;
  }
  export class UpdateNewStickerSet extends VirtualClass<{
    stickerset: messages.TypeStickerSet;
  }> {
    stickerset: messages.TypeStickerSet;
    CONSTRUCTOR_ID: 1753886890;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewStickerSet';

    static fromReader(reader: Reader): UpdateNewStickerSet;
  }
  export class UpdateStickerSetsOrder extends VirtualClass<{
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
    order: long[];
  }> {
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
    order: long[];
    CONSTRUCTOR_ID: 196268545;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStickerSetsOrder';

    static fromReader(reader: Reader): UpdateStickerSetsOrder;
  }
  export class UpdateStickerSets extends VirtualClass<{
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
  } | void> {
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
    CONSTRUCTOR_ID: 834816008;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStickerSets';

    static fromReader(reader: Reader): UpdateStickerSets;
  }
  export class UpdateSavedGifs extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2473931806;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSavedGifs';

    static fromReader(reader: Reader): UpdateSavedGifs;
  }
  export class UpdateBotInlineQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    userId: long;
    query: string;
    geo?: Api.TypeGeoPoint;
    peerType?: Api.TypeInlineQueryPeerType;
    offset: string;
  }> {
    // flags: Api.Type;
    queryId: long;
    userId: long;
    query: string;
    geo?: Api.TypeGeoPoint;
    peerType?: Api.TypeInlineQueryPeerType;
    offset: string;
    CONSTRUCTOR_ID: 1232025500;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotInlineQuery';

    static fromReader(reader: Reader): UpdateBotInlineQuery;
  }
  export class UpdateBotInlineSend extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    query: string;
    geo?: Api.TypeGeoPoint;
    id: string;
    msgId?: Api.TypeInputBotInlineMessageID;
  }> {
    // flags: Api.Type;
    userId: long;
    query: string;
    geo?: Api.TypeGeoPoint;
    id: string;
    msgId?: Api.TypeInputBotInlineMessageID;
    CONSTRUCTOR_ID: 317794823;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotInlineSend';

    static fromReader(reader: Reader): UpdateBotInlineSend;
  }
  export class UpdateEditChannelMessage extends VirtualClass<{
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
  }> {
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 457133559;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEditChannelMessage';

    static fromReader(reader: Reader): UpdateEditChannelMessage;
  }
  export class UpdateBotCallbackQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    userId: long;
    peer: Api.TypePeer;
    msgId: int;
    chatInstance: long;
    data?: bytes;
    gameShortName?: string;
  }> {
    // flags: Api.Type;
    queryId: long;
    userId: long;
    peer: Api.TypePeer;
    msgId: int;
    chatInstance: long;
    data?: bytes;
    gameShortName?: string;
    CONSTRUCTOR_ID: 3117401229;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotCallbackQuery';

    static fromReader(reader: Reader): UpdateBotCallbackQuery;
  }
  export class UpdateEditMessage extends VirtualClass<{
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
  }> {
    message: Api.TypeMessage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 3825430691;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEditMessage';

    static fromReader(reader: Reader): UpdateEditMessage;
  }
  export class UpdateInlineBotCallbackQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    userId: long;
    msgId: Api.TypeInputBotInlineMessageID;
    chatInstance: long;
    data?: bytes;
    gameShortName?: string;
  }> {
    // flags: Api.Type;
    queryId: long;
    userId: long;
    msgId: Api.TypeInputBotInlineMessageID;
    chatInstance: long;
    data?: bytes;
    gameShortName?: string;
    CONSTRUCTOR_ID: 1763610706;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateInlineBotCallbackQuery';

    static fromReader(reader: Reader): UpdateInlineBotCallbackQuery;
  }
  export class UpdateReadChannelOutbox extends VirtualClass<{
    channelId: long;
    maxId: int;
  }> {
    channelId: long;
    maxId: int;
    CONSTRUCTOR_ID: 3076495785;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadChannelOutbox';

    static fromReader(reader: Reader): UpdateReadChannelOutbox;
  }
  export class UpdateDraftMessage extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    draft: Api.TypeDraftMessage;
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    draft: Api.TypeDraftMessage;
    CONSTRUCTOR_ID: 3992719646;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDraftMessage';

    static fromReader(reader: Reader): UpdateDraftMessage;
  }
  export class UpdateReadFeaturedStickers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1461528386;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadFeaturedStickers';

    static fromReader(reader: Reader): UpdateReadFeaturedStickers;
  }
  export class UpdateRecentStickers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2588027936;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateRecentStickers';

    static fromReader(reader: Reader): UpdateRecentStickers;
  }
  export class UpdateConfig extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2720652550;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateConfig';

    static fromReader(reader: Reader): UpdateConfig;
  }
  export class UpdatePtsChanged extends VirtualClass<void> {
    CONSTRUCTOR_ID: 861169551;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePtsChanged';

    static fromReader(reader: Reader): UpdatePtsChanged;
  }
  export class UpdateChannelWebPage extends VirtualClass<{
    channelId: long;
    webpage: Api.TypeWebPage;
    pts: int;
    ptsCount: int;
  }> {
    channelId: long;
    webpage: Api.TypeWebPage;
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 791390623;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelWebPage';

    static fromReader(reader: Reader): UpdateChannelWebPage;
  }
  export class UpdateDialogPinned extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    folderId?: int;
    peer: Api.TypeDialogPeer;
  }> {
    // flags: Api.Type;
    pinned?: true;
    folderId?: int;
    peer: Api.TypeDialogPeer;
    CONSTRUCTOR_ID: 1852826908;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDialogPinned';

    static fromReader(reader: Reader): UpdateDialogPinned;
  }
  export class UpdatePinnedDialogs extends VirtualClass<{
    // flags: Api.Type;
    folderId?: int;
    order?: Api.TypeDialogPeer[];
  } | void> {
    // flags: Api.Type;
    folderId?: int;
    order?: Api.TypeDialogPeer[];
    CONSTRUCTOR_ID: 4195302562;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedDialogs';

    static fromReader(reader: Reader): UpdatePinnedDialogs;
  }
  export class UpdateBotWebhookJSON extends VirtualClass<{
    data: Api.TypeDataJSON;
  }> {
    data: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 2199371971;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotWebhookJSON';

    static fromReader(reader: Reader): UpdateBotWebhookJSON;
  }
  export class UpdateBotWebhookJSONQuery extends VirtualClass<{
    queryId: long;
    data: Api.TypeDataJSON;
    timeout: int;
  }> {
    queryId: long;
    data: Api.TypeDataJSON;
    timeout: int;
    CONSTRUCTOR_ID: 2610053286;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotWebhookJSONQuery';

    static fromReader(reader: Reader): UpdateBotWebhookJSONQuery;
  }
  export class UpdateBotShippingQuery extends VirtualClass<{
    queryId: long;
    userId: long;
    payload: bytes;
    shippingAddress: Api.TypePostAddress;
  }> {
    queryId: long;
    userId: long;
    payload: bytes;
    shippingAddress: Api.TypePostAddress;
    CONSTRUCTOR_ID: 3048144253;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotShippingQuery';

    static fromReader(reader: Reader): UpdateBotShippingQuery;
  }
  export class UpdateBotPrecheckoutQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    userId: long;
    payload: bytes;
    info?: Api.TypePaymentRequestedInfo;
    shippingOptionId?: string;
    currency: string;
    totalAmount: long;
  }> {
    // flags: Api.Type;
    queryId: long;
    userId: long;
    payload: bytes;
    info?: Api.TypePaymentRequestedInfo;
    shippingOptionId?: string;
    currency: string;
    totalAmount: long;
    CONSTRUCTOR_ID: 2359990934;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotPrecheckoutQuery';

    static fromReader(reader: Reader): UpdateBotPrecheckoutQuery;
  }
  export class UpdatePhoneCall extends VirtualClass<{
    phoneCall: Api.TypePhoneCall;
  }> {
    phoneCall: Api.TypePhoneCall;
    CONSTRUCTOR_ID: 2869914398;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePhoneCall';

    static fromReader(reader: Reader): UpdatePhoneCall;
  }
  export class UpdateLangPackTooLong extends VirtualClass<{
    langCode: string;
  }> {
    langCode: string;
    CONSTRUCTOR_ID: 1180041828;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateLangPackTooLong';

    static fromReader(reader: Reader): UpdateLangPackTooLong;
  }
  export class UpdateLangPack extends VirtualClass<{
    difference: Api.TypeLangPackDifference;
  }> {
    difference: Api.TypeLangPackDifference;
    CONSTRUCTOR_ID: 1442983757;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateLangPack';

    static fromReader(reader: Reader): UpdateLangPack;
  }
  export class UpdateFavedStickers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3843135853;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateFavedStickers';

    static fromReader(reader: Reader): UpdateFavedStickers;
  }
  export class UpdateChannelReadMessagesContents extends VirtualClass<{
    // flags: Api.Type;
    channelId: long;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    messages: int[];
  }> {
    // flags: Api.Type;
    channelId: long;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    messages: int[];
    CONSTRUCTOR_ID: 636691703;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelReadMessagesContents';

    static fromReader(reader: Reader): UpdateChannelReadMessagesContents;
  }
  export class UpdateContactsReset extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1887741886;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateContactsReset';

    static fromReader(reader: Reader): UpdateContactsReset;
  }
  export class UpdateChannelAvailableMessages extends VirtualClass<{
    channelId: long;
    availableMinId: int;
  }> {
    channelId: long;
    availableMinId: int;
    CONSTRUCTOR_ID: 2990524056;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelAvailableMessages';

    static fromReader(reader: Reader): UpdateChannelAvailableMessages;
  }
  export class UpdateDialogUnreadMark extends VirtualClass<{
    // flags: Api.Type;
    unread?: true;
    peer: Api.TypeDialogPeer;
    savedPeerId?: Api.TypePeer;
  }> {
    // flags: Api.Type;
    unread?: true;
    peer: Api.TypeDialogPeer;
    savedPeerId?: Api.TypePeer;
    CONSTRUCTOR_ID: 3059282494;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDialogUnreadMark';

    static fromReader(reader: Reader): UpdateDialogUnreadMark;
  }
  export class UpdateMessagePoll extends VirtualClass<{
    // flags: Api.Type;
    peer?: Api.TypePeer;
    msgId?: int;
    topMsgId?: int;
    pollId: long;
    poll?: Api.TypePoll;
    results: Api.TypePollResults;
  }> {
    // flags: Api.Type;
    peer?: Api.TypePeer;
    msgId?: int;
    topMsgId?: int;
    pollId: long;
    poll?: Api.TypePoll;
    results: Api.TypePollResults;
    CONSTRUCTOR_ID: 3595325995;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMessagePoll';

    static fromReader(reader: Reader): UpdateMessagePoll;
  }
  export class UpdateChatDefaultBannedRights extends VirtualClass<{
    peer: Api.TypePeer;
    defaultBannedRights: Api.TypeChatBannedRights;
    version: int;
  }> {
    peer: Api.TypePeer;
    defaultBannedRights: Api.TypeChatBannedRights;
    version: int;
    CONSTRUCTOR_ID: 1421875280;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatDefaultBannedRights';

    static fromReader(reader: Reader): UpdateChatDefaultBannedRights;
  }
  export class UpdateFolderPeers extends VirtualClass<{
    folderPeers: Api.TypeFolderPeer[];
    pts: int;
    ptsCount: int;
  }> {
    folderPeers: Api.TypeFolderPeer[];
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 422972864;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateFolderPeers';

    static fromReader(reader: Reader): UpdateFolderPeers;
  }
  export class UpdatePeerSettings extends VirtualClass<{
    peer: Api.TypePeer;
    settings: Api.TypePeerSettings;
  }> {
    peer: Api.TypePeer;
    settings: Api.TypePeerSettings;
    CONSTRUCTOR_ID: 1786671974;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePeerSettings';

    static fromReader(reader: Reader): UpdatePeerSettings;
  }
  export class UpdatePeerLocated extends VirtualClass<{
    peers: Api.TypePeerLocated[];
  }> {
    peers: Api.TypePeerLocated[];
    CONSTRUCTOR_ID: 3031420848;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePeerLocated';

    static fromReader(reader: Reader): UpdatePeerLocated;
  }
  export class UpdateNewScheduledMessage extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 967122427;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewScheduledMessage';

    static fromReader(reader: Reader): UpdateNewScheduledMessage;
  }
  export class UpdateDeleteScheduledMessages extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    messages: int[];
    sentMessages?: int[];
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    messages: int[];
    sentMessages?: int[];
    CONSTRUCTOR_ID: 4071037315;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteScheduledMessages';

    static fromReader(reader: Reader): UpdateDeleteScheduledMessages;
  }
  export class UpdateTheme extends VirtualClass<{
    theme: Api.TypeTheme;
  }> {
    theme: Api.TypeTheme;
    CONSTRUCTOR_ID: 2182544291;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateTheme';

    static fromReader(reader: Reader): UpdateTheme;
  }
  export class UpdateGeoLiveViewed extends VirtualClass<{
    peer: Api.TypePeer;
    msgId: int;
  }> {
    peer: Api.TypePeer;
    msgId: int;
    CONSTRUCTOR_ID: 2267003193;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGeoLiveViewed';

    static fromReader(reader: Reader): UpdateGeoLiveViewed;
  }
  export class UpdateLoginToken extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1448076945;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateLoginToken';

    static fromReader(reader: Reader): UpdateLoginToken;
  }
  export class UpdateMessagePollVote extends VirtualClass<{
    pollId: long;
    peer: Api.TypePeer;
    options: bytes[];
    positions: int[];
    qts: int;
  }> {
    pollId: long;
    peer: Api.TypePeer;
    options: bytes[];
    positions: int[];
    qts: int;
    CONSTRUCTOR_ID: 1989799956;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMessagePollVote';

    static fromReader(reader: Reader): UpdateMessagePollVote;
  }
  export class UpdateDialogFilter extends VirtualClass<{
    // flags: Api.Type;
    id: int;
    filter?: Api.TypeDialogFilter;
  }> {
    // flags: Api.Type;
    id: int;
    filter?: Api.TypeDialogFilter;
    CONSTRUCTOR_ID: 654302845;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDialogFilter';

    static fromReader(reader: Reader): UpdateDialogFilter;
  }
  export class UpdateDialogFilterOrder extends VirtualClass<{
    order: int[];
  }> {
    order: int[];
    CONSTRUCTOR_ID: 2782339333;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDialogFilterOrder';

    static fromReader(reader: Reader): UpdateDialogFilterOrder;
  }
  export class UpdateDialogFilters extends VirtualClass<void> {
    CONSTRUCTOR_ID: 889491791;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDialogFilters';

    static fromReader(reader: Reader): UpdateDialogFilters;
  }
  export class UpdatePhoneCallSignalingData extends VirtualClass<{
    phoneCallId: long;
    data: bytes;
  }> {
    phoneCallId: long;
    data: bytes;
    CONSTRUCTOR_ID: 643940105;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePhoneCallSignalingData';

    static fromReader(reader: Reader): UpdatePhoneCallSignalingData;
  }
  export class UpdateChannelMessageForwards extends VirtualClass<{
    channelId: long;
    id: int;
    forwards: int;
  }> {
    channelId: long;
    id: int;
    forwards: int;
    CONSTRUCTOR_ID: 3533318132;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelMessageForwards';

    static fromReader(reader: Reader): UpdateChannelMessageForwards;
  }
  export class UpdateReadChannelDiscussionInbox extends VirtualClass<{
    // flags: Api.Type;
    channelId: long;
    topMsgId: int;
    readMaxId: int;
    broadcastId?: long;
    broadcastPost?: int;
  }> {
    // flags: Api.Type;
    channelId: long;
    topMsgId: int;
    readMaxId: int;
    broadcastId?: long;
    broadcastPost?: int;
    CONSTRUCTOR_ID: 3601962310;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadChannelDiscussionInbox';

    static fromReader(reader: Reader): UpdateReadChannelDiscussionInbox;
  }
  export class UpdateReadChannelDiscussionOutbox extends VirtualClass<{
    channelId: long;
    topMsgId: int;
    readMaxId: int;
  }> {
    channelId: long;
    topMsgId: int;
    readMaxId: int;
    CONSTRUCTOR_ID: 1767677564;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadChannelDiscussionOutbox';

    static fromReader(reader: Reader): UpdateReadChannelDiscussionOutbox;
  }
  export class UpdatePeerBlocked extends VirtualClass<{
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    peerId: Api.TypePeer;
  }> {
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    peerId: Api.TypePeer;
    CONSTRUCTOR_ID: 3957356370;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePeerBlocked';

    static fromReader(reader: Reader): UpdatePeerBlocked;
  }
  export class UpdateChannelUserTyping extends VirtualClass<{
    // flags: Api.Type;
    channelId: long;
    topMsgId?: int;
    fromId: Api.TypePeer;
    action: Api.TypeSendMessageAction;
  }> {
    // flags: Api.Type;
    channelId: long;
    topMsgId?: int;
    fromId: Api.TypePeer;
    action: Api.TypeSendMessageAction;
    CONSTRUCTOR_ID: 2357774627;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelUserTyping';

    static fromReader(reader: Reader): UpdateChannelUserTyping;
  }
  export class UpdatePinnedMessages extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    messages: int[];
    pts: int;
    ptsCount: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    messages: int[];
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 3984976565;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedMessages';

    static fromReader(reader: Reader): UpdatePinnedMessages;
  }
  export class UpdatePinnedChannelMessages extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    channelId: long;
    messages: int[];
    pts: int;
    ptsCount: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    channelId: long;
    messages: int[];
    pts: int;
    ptsCount: int;
    CONSTRUCTOR_ID: 1538885128;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedChannelMessages';

    static fromReader(reader: Reader): UpdatePinnedChannelMessages;
  }
  export class UpdateChat extends VirtualClass<{
    chatId: long;
  }> {
    chatId: long;
    CONSTRUCTOR_ID: 4170869326;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChat';

    static fromReader(reader: Reader): UpdateChat;
  }
  export class UpdateGroupCallParticipants extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    participants: Api.TypeGroupCallParticipant[];
    version: int;
  }> {
    call: Api.TypeInputGroupCall;
    participants: Api.TypeGroupCallParticipant[];
    version: int;
    CONSTRUCTOR_ID: 4075543374;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCallParticipants';

    static fromReader(reader: Reader): UpdateGroupCallParticipants;
  }
  export class UpdateGroupCall extends VirtualClass<{
    // flags: Api.Type;
    liveStory?: true;
    peer?: Api.TypePeer;
    call: Api.TypeGroupCall;
  }> {
    // flags: Api.Type;
    liveStory?: true;
    peer?: Api.TypePeer;
    call: Api.TypeGroupCall;
    CONSTRUCTOR_ID: 2636256992;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCall';

    static fromReader(reader: Reader): UpdateGroupCall;
  }
  export class UpdatePeerHistoryTTL extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 3147544997;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePeerHistoryTTL';

    static fromReader(reader: Reader): UpdatePeerHistoryTTL;
  }
  export class UpdateChatParticipant extends VirtualClass<{
    // flags: Api.Type;
    chatId: long;
    date: int;
    actorId: long;
    userId: long;
    prevParticipant?: Api.TypeChatParticipant;
    newParticipant?: Api.TypeChatParticipant;
    invite?: Api.TypeExportedChatInvite;
    qts: int;
  }> {
    // flags: Api.Type;
    chatId: long;
    date: int;
    actorId: long;
    userId: long;
    prevParticipant?: Api.TypeChatParticipant;
    newParticipant?: Api.TypeChatParticipant;
    invite?: Api.TypeExportedChatInvite;
    qts: int;
    CONSTRUCTOR_ID: 3498534458;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipant';

    static fromReader(reader: Reader): UpdateChatParticipant;
  }
  export class UpdateChannelParticipant extends VirtualClass<{
    // flags: Api.Type;
    viaChatlist?: true;
    channelId: long;
    date: int;
    actorId: long;
    userId: long;
    prevParticipant?: Api.TypeChannelParticipant;
    newParticipant?: Api.TypeChannelParticipant;
    invite?: Api.TypeExportedChatInvite;
    qts: int;
  }> {
    // flags: Api.Type;
    viaChatlist?: true;
    channelId: long;
    date: int;
    actorId: long;
    userId: long;
    prevParticipant?: Api.TypeChannelParticipant;
    newParticipant?: Api.TypeChannelParticipant;
    invite?: Api.TypeExportedChatInvite;
    qts: int;
    CONSTRUCTOR_ID: 2556246715;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelParticipant';

    static fromReader(reader: Reader): UpdateChannelParticipant;
  }
  export class UpdateBotStopped extends VirtualClass<{
    userId: long;
    date: int;
    stopped: Bool;
    qts: int;
  }> {
    userId: long;
    date: int;
    stopped: Bool;
    qts: int;
    CONSTRUCTOR_ID: 3297184329;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotStopped';

    static fromReader(reader: Reader): UpdateBotStopped;
  }
  export class UpdateGroupCallConnection extends VirtualClass<{
    // flags: Api.Type;
    presentation?: true;
    params: Api.TypeDataJSON;
  }> {
    // flags: Api.Type;
    presentation?: true;
    params: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 192428418;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCallConnection';

    static fromReader(reader: Reader): UpdateGroupCallConnection;
  }
  export class UpdateBotCommands extends VirtualClass<{
    peer: Api.TypePeer;
    botId: long;
    commands: Api.TypeBotCommand[];
  }> {
    peer: Api.TypePeer;
    botId: long;
    commands: Api.TypeBotCommand[];
    CONSTRUCTOR_ID: 1299263278;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotCommands';

    static fromReader(reader: Reader): UpdateBotCommands;
  }
  export class UpdatePendingJoinRequests extends VirtualClass<{
    peer: Api.TypePeer;
    requestsPending: int;
    recentRequesters: long[];
  }> {
    peer: Api.TypePeer;
    requestsPending: int;
    recentRequesters: long[];
    CONSTRUCTOR_ID: 1885586395;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePendingJoinRequests';

    static fromReader(reader: Reader): UpdatePendingJoinRequests;
  }
  export class UpdateBotChatInviteRequester extends VirtualClass<{
    peer: Api.TypePeer;
    date: int;
    userId: long;
    about: string;
    invite: Api.TypeExportedChatInvite;
    qts: int;
  }> {
    peer: Api.TypePeer;
    date: int;
    userId: long;
    about: string;
    invite: Api.TypeExportedChatInvite;
    qts: int;
    CONSTRUCTOR_ID: 299870598;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotChatInviteRequester';

    static fromReader(reader: Reader): UpdateBotChatInviteRequester;
  }
  export class UpdateMessageReactions extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    msgId: int;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    reactions: Api.TypeMessageReactions;
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    msgId: int;
    topMsgId?: int;
    savedPeerId?: Api.TypePeer;
    reactions: Api.TypeMessageReactions;
    CONSTRUCTOR_ID: 506035194;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMessageReactions';

    static fromReader(reader: Reader): UpdateMessageReactions;
  }
  export class UpdateAttachMenuBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 397910539;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateAttachMenuBots';

    static fromReader(reader: Reader): UpdateAttachMenuBots;
  }
  export class UpdateWebViewResultSent extends VirtualClass<{
    queryId: long;
  }> {
    queryId: long;
    CONSTRUCTOR_ID: 361936797;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateWebViewResultSent';

    static fromReader(reader: Reader): UpdateWebViewResultSent;
  }
  export class UpdateBotMenuButton extends VirtualClass<{
    botId: long;
    button: Api.TypeBotMenuButton;
  }> {
    botId: long;
    button: Api.TypeBotMenuButton;
    CONSTRUCTOR_ID: 347625491;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotMenuButton';

    static fromReader(reader: Reader): UpdateBotMenuButton;
  }
  export class UpdateSavedRingtones extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1960361625;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSavedRingtones';

    static fromReader(reader: Reader): UpdateSavedRingtones;
  }
  export class UpdateTranscribedAudio extends VirtualClass<{
    // flags: Api.Type;
    pending?: true;
    peer: Api.TypePeer;
    msgId: int;
    transcriptionId: long;
    text: string;
  }> {
    // flags: Api.Type;
    pending?: true;
    peer: Api.TypePeer;
    msgId: int;
    transcriptionId: long;
    text: string;
    CONSTRUCTOR_ID: 8703322;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateTranscribedAudio';

    static fromReader(reader: Reader): UpdateTranscribedAudio;
  }
  export class UpdateReadFeaturedEmojiStickers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4216080748;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadFeaturedEmojiStickers';

    static fromReader(reader: Reader): UpdateReadFeaturedEmojiStickers;
  }
  export class UpdateUserEmojiStatus extends VirtualClass<{
    userId: long;
    emojiStatus: Api.TypeEmojiStatus;
  }> {
    userId: long;
    emojiStatus: Api.TypeEmojiStatus;
    CONSTRUCTOR_ID: 674706841;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUserEmojiStatus';

    static fromReader(reader: Reader): UpdateUserEmojiStatus;
  }
  export class UpdateRecentEmojiStatuses extends VirtualClass<void> {
    CONSTRUCTOR_ID: 821314523;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateRecentEmojiStatuses';

    static fromReader(reader: Reader): UpdateRecentEmojiStatuses;
  }
  export class UpdateRecentReactions extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1870160884;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateRecentReactions';

    static fromReader(reader: Reader): UpdateRecentReactions;
  }
  export class UpdateMoveStickerSetToTop extends VirtualClass<{
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
    stickerset: long;
  }> {
    // flags: Api.Type;
    masks?: true;
    emojis?: true;
    stickerset: long;
    CONSTRUCTOR_ID: 2264715141;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMoveStickerSetToTop';

    static fromReader(reader: Reader): UpdateMoveStickerSetToTop;
  }
  export class UpdateMessageExtendedMedia extends VirtualClass<{
    peer: Api.TypePeer;
    msgId: int;
    extendedMedia: Api.TypeMessageExtendedMedia[];
  }> {
    peer: Api.TypePeer;
    msgId: int;
    extendedMedia: Api.TypeMessageExtendedMedia[];
    CONSTRUCTOR_ID: 3584300836;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMessageExtendedMedia';

    static fromReader(reader: Reader): UpdateMessageExtendedMedia;
  }
  export class UpdateUser extends VirtualClass<{
    userId: long;
  }> {
    userId: long;
    CONSTRUCTOR_ID: 542282808;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateUser';

    static fromReader(reader: Reader): UpdateUser;
  }
  export class UpdateAutoSaveSettings extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3959795863;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateAutoSaveSettings';

    static fromReader(reader: Reader): UpdateAutoSaveSettings;
  }
  export class UpdateStory extends VirtualClass<{
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
  }> {
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 1974712216;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStory';

    static fromReader(reader: Reader): UpdateStory;
  }
  export class UpdateReadStories extends VirtualClass<{
    peer: Api.TypePeer;
    maxId: int;
  }> {
    peer: Api.TypePeer;
    maxId: int;
    CONSTRUCTOR_ID: 4149121835;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadStories';

    static fromReader(reader: Reader): UpdateReadStories;
  }
  export class UpdateStoryID extends VirtualClass<{
    id: int;
    randomId: long;
  }> {
    id: int;
    randomId: long;
    CONSTRUCTOR_ID: 468923833;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStoryID';

    static fromReader(reader: Reader): UpdateStoryID;
  }
  export class UpdateStoriesStealthMode extends VirtualClass<{
    stealthMode: Api.TypeStoriesStealthMode;
  }> {
    stealthMode: Api.TypeStoriesStealthMode;
    CONSTRUCTOR_ID: 738741697;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStoriesStealthMode';

    static fromReader(reader: Reader): UpdateStoriesStealthMode;
  }
  export class UpdateSentStoryReaction extends VirtualClass<{
    peer: Api.TypePeer;
    storyId: int;
    reaction: Api.TypeReaction;
  }> {
    peer: Api.TypePeer;
    storyId: int;
    reaction: Api.TypeReaction;
    CONSTRUCTOR_ID: 2103604867;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSentStoryReaction';

    static fromReader(reader: Reader): UpdateSentStoryReaction;
  }
  export class UpdateBotChatBoost extends VirtualClass<{
    peer: Api.TypePeer;
    boost: Api.TypeBoost;
    qts: int;
  }> {
    peer: Api.TypePeer;
    boost: Api.TypeBoost;
    qts: int;
    CONSTRUCTOR_ID: 2421019804;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotChatBoost';

    static fromReader(reader: Reader): UpdateBotChatBoost;
  }
  export class UpdateChannelViewForumAsMessages extends VirtualClass<{
    channelId: long;
    enabled: Bool;
  }> {
    channelId: long;
    enabled: Bool;
    CONSTRUCTOR_ID: 129403168;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChannelViewForumAsMessages';

    static fromReader(reader: Reader): UpdateChannelViewForumAsMessages;
  }
  export class UpdatePeerWallpaper extends VirtualClass<{
    // flags: Api.Type;
    wallpaperOverridden?: true;
    peer: Api.TypePeer;
    wallpaper?: Api.TypeWallPaper;
  }> {
    // flags: Api.Type;
    wallpaperOverridden?: true;
    peer: Api.TypePeer;
    wallpaper?: Api.TypeWallPaper;
    CONSTRUCTOR_ID: 2923368477;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePeerWallpaper';

    static fromReader(reader: Reader): UpdatePeerWallpaper;
  }
  export class UpdateBotMessageReaction extends VirtualClass<{
    peer: Api.TypePeer;
    msgId: int;
    date: int;
    actor: Api.TypePeer;
    oldReactions: Api.TypeReaction[];
    newReactions: Api.TypeReaction[];
    qts: int;
  }> {
    peer: Api.TypePeer;
    msgId: int;
    date: int;
    actor: Api.TypePeer;
    oldReactions: Api.TypeReaction[];
    newReactions: Api.TypeReaction[];
    qts: int;
    CONSTRUCTOR_ID: 2887898062;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotMessageReaction';

    static fromReader(reader: Reader): UpdateBotMessageReaction;
  }
  export class UpdateBotMessageReactions extends VirtualClass<{
    peer: Api.TypePeer;
    msgId: int;
    date: int;
    reactions: Api.TypeReactionCount[];
    qts: int;
  }> {
    peer: Api.TypePeer;
    msgId: int;
    date: int;
    reactions: Api.TypeReactionCount[];
    qts: int;
    CONSTRUCTOR_ID: 164329305;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotMessageReactions';

    static fromReader(reader: Reader): UpdateBotMessageReactions;
  }
  export class UpdateSavedDialogPinned extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypeDialogPeer;
  }> {
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypeDialogPeer;
    CONSTRUCTOR_ID: 2930744948;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSavedDialogPinned';

    static fromReader(reader: Reader): UpdateSavedDialogPinned;
  }
  export class UpdatePinnedSavedDialogs extends VirtualClass<{
    // flags: Api.Type;
    order?: Api.TypeDialogPeer[];
  } | void> {
    // flags: Api.Type;
    order?: Api.TypeDialogPeer[];
    CONSTRUCTOR_ID: 1751942566;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedSavedDialogs';

    static fromReader(reader: Reader): UpdatePinnedSavedDialogs;
  }
  export class UpdateSavedReactionTags extends VirtualClass<void> {
    CONSTRUCTOR_ID: 969307186;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSavedReactionTags';

    static fromReader(reader: Reader): UpdateSavedReactionTags;
  }
  export class UpdateSmsJob extends VirtualClass<{
    jobId: string;
  }> {
    jobId: string;
    CONSTRUCTOR_ID: 4049758676;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSmsJob';

    static fromReader(reader: Reader): UpdateSmsJob;
  }
  export class UpdateQuickReplies extends VirtualClass<{
    quickReplies: Api.TypeQuickReply[];
  }> {
    quickReplies: Api.TypeQuickReply[];
    CONSTRUCTOR_ID: 4182182578;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateQuickReplies';

    static fromReader(reader: Reader): UpdateQuickReplies;
  }
  export class UpdateNewQuickReply extends VirtualClass<{
    quickReply: Api.TypeQuickReply;
  }> {
    quickReply: Api.TypeQuickReply;
    CONSTRUCTOR_ID: 4114458391;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewQuickReply';

    static fromReader(reader: Reader): UpdateNewQuickReply;
  }
  export class UpdateDeleteQuickReply extends VirtualClass<{
    shortcutId: int;
  }> {
    shortcutId: int;
    CONSTRUCTOR_ID: 1407644140;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteQuickReply';

    static fromReader(reader: Reader): UpdateDeleteQuickReply;
  }
  export class UpdateQuickReplyMessage extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 1040518415;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateQuickReplyMessage';

    static fromReader(reader: Reader): UpdateQuickReplyMessage;
  }
  export class UpdateDeleteQuickReplyMessages extends VirtualClass<{
    shortcutId: int;
    messages: int[];
  }> {
    shortcutId: int;
    messages: int[];
    CONSTRUCTOR_ID: 1450174413;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteQuickReplyMessages';

    static fromReader(reader: Reader): UpdateDeleteQuickReplyMessages;
  }
  export class UpdateBotBusinessConnect extends VirtualClass<{
    connection: Api.TypeBotBusinessConnection;
    qts: int;
  }> {
    connection: Api.TypeBotBusinessConnection;
    qts: int;
    CONSTRUCTOR_ID: 2330315130;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotBusinessConnect';

    static fromReader(reader: Reader): UpdateBotBusinessConnect;
  }
  export class UpdateBotNewBusinessMessage extends VirtualClass<{
    // flags: Api.Type;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    qts: int;
  }> {
    // flags: Api.Type;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    qts: int;
    CONSTRUCTOR_ID: 2648388732;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotNewBusinessMessage';

    static fromReader(reader: Reader): UpdateBotNewBusinessMessage;
  }
  export class UpdateBotEditBusinessMessage extends VirtualClass<{
    // flags: Api.Type;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    qts: int;
  }> {
    // flags: Api.Type;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    qts: int;
    CONSTRUCTOR_ID: 132077692;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotEditBusinessMessage';

    static fromReader(reader: Reader): UpdateBotEditBusinessMessage;
  }
  export class UpdateBotDeleteBusinessMessage extends VirtualClass<{
    connectionId: string;
    peer: Api.TypePeer;
    messages: int[];
    qts: int;
  }> {
    connectionId: string;
    peer: Api.TypePeer;
    messages: int[];
    qts: int;
    CONSTRUCTOR_ID: 2687146030;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotDeleteBusinessMessage';

    static fromReader(reader: Reader): UpdateBotDeleteBusinessMessage;
  }
  export class UpdateNewStoryReaction extends VirtualClass<{
    storyId: int;
    peer: Api.TypePeer;
    reaction: Api.TypeReaction;
  }> {
    storyId: int;
    peer: Api.TypePeer;
    reaction: Api.TypeReaction;
    CONSTRUCTOR_ID: 405070859;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateNewStoryReaction';

    static fromReader(reader: Reader): UpdateNewStoryReaction;
  }
  export class UpdateStarsBalance extends VirtualClass<{
    balance: Api.TypeStarsAmount;
  }> {
    balance: Api.TypeStarsAmount;
    CONSTRUCTOR_ID: 1317053305;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStarsBalance';

    static fromReader(reader: Reader): UpdateStarsBalance;
  }
  export class UpdateBusinessBotCallbackQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    userId: long;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    chatInstance: long;
    data?: bytes;
  }> {
    // flags: Api.Type;
    queryId: long;
    userId: long;
    connectionId: string;
    message: Api.TypeMessage;
    replyToMessage?: Api.TypeMessage;
    chatInstance: long;
    data?: bytes;
    CONSTRUCTOR_ID: 513998247;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBusinessBotCallbackQuery';

    static fromReader(reader: Reader): UpdateBusinessBotCallbackQuery;
  }
  export class UpdateStarsRevenueStatus extends VirtualClass<{
    peer: Api.TypePeer;
    status: Api.TypeStarsRevenueStatus;
  }> {
    peer: Api.TypePeer;
    status: Api.TypeStarsRevenueStatus;
    CONSTRUCTOR_ID: 2776936473;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStarsRevenueStatus';

    static fromReader(reader: Reader): UpdateStarsRevenueStatus;
  }
  export class UpdateBotPurchasedPaidMedia extends VirtualClass<{
    userId: long;
    payload: string;
    qts: int;
  }> {
    userId: long;
    payload: string;
    qts: int;
    CONSTRUCTOR_ID: 675009298;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotPurchasedPaidMedia';

    static fromReader(reader: Reader): UpdateBotPurchasedPaidMedia;
  }
  export class UpdatePaidReactionPrivacy extends VirtualClass<{
    private: Api.TypePaidReactionPrivacy;
  }> {
    private: Api.TypePaidReactionPrivacy;
    CONSTRUCTOR_ID: 2339528654;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePaidReactionPrivacy';

    static fromReader(reader: Reader): UpdatePaidReactionPrivacy;
  }
  export class UpdateSentPhoneCode extends VirtualClass<{
    sentCode: auth.TypeSentCode;
  }> {
    sentCode: auth.TypeSentCode;
    CONSTRUCTOR_ID: 1347068303;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateSentPhoneCode';

    static fromReader(reader: Reader): UpdateSentPhoneCode;
  }
  export class UpdateGroupCallChainBlocks extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    subChainId: int;
    blocks: bytes[];
    nextOffset: int;
  }> {
    call: Api.TypeInputGroupCall;
    subChainId: int;
    blocks: bytes[];
    nextOffset: int;
    CONSTRUCTOR_ID: 2759272591;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCallChainBlocks';

    static fromReader(reader: Reader): UpdateGroupCallChainBlocks;
  }
  export class UpdateReadMonoForumInbox extends VirtualClass<{
    channelId: long;
    savedPeerId: Api.TypePeer;
    readMaxId: int;
  }> {
    channelId: long;
    savedPeerId: Api.TypePeer;
    readMaxId: int;
    CONSTRUCTOR_ID: 2008081266;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadMonoForumInbox';

    static fromReader(reader: Reader): UpdateReadMonoForumInbox;
  }
  export class UpdateReadMonoForumOutbox extends VirtualClass<{
    channelId: long;
    savedPeerId: Api.TypePeer;
    readMaxId: int;
  }> {
    channelId: long;
    savedPeerId: Api.TypePeer;
    readMaxId: int;
    CONSTRUCTOR_ID: 2762445686;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateReadMonoForumOutbox';

    static fromReader(reader: Reader): UpdateReadMonoForumOutbox;
  }
  export class UpdateMonoForumNoPaidException extends VirtualClass<{
    // flags: Api.Type;
    exception?: true;
    channelId: long;
    savedPeerId: Api.TypePeer;
  }> {
    // flags: Api.Type;
    exception?: true;
    channelId: long;
    savedPeerId: Api.TypePeer;
    CONSTRUCTOR_ID: 2676042504;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateMonoForumNoPaidException';

    static fromReader(reader: Reader): UpdateMonoForumNoPaidException;
  }
  export class UpdateGroupCallMessage extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    message: Api.TypeGroupCallMessage;
  }> {
    call: Api.TypeInputGroupCall;
    message: Api.TypeGroupCallMessage;
    CONSTRUCTOR_ID: 3627183885;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCallMessage';

    static fromReader(reader: Reader): UpdateGroupCallMessage;
  }
  export class UpdateGroupCallEncryptedMessage extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    fromId: Api.TypePeer;
    encryptedMessage: bytes;
  }> {
    call: Api.TypeInputGroupCall;
    fromId: Api.TypePeer;
    encryptedMessage: bytes;
    CONSTRUCTOR_ID: 3377964902;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateGroupCallEncryptedMessage';

    static fromReader(reader: Reader): UpdateGroupCallEncryptedMessage;
  }
  export class UpdatePinnedForumTopic extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    topicId: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    topicId: int;
    CONSTRUCTOR_ID: 1748708434;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedForumTopic';

    static fromReader(reader: Reader): UpdatePinnedForumTopic;
  }
  export class UpdatePinnedForumTopics extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    order?: int[];
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    order?: int[];
    CONSTRUCTOR_ID: 3740353488;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdatePinnedForumTopics';

    static fromReader(reader: Reader): UpdatePinnedForumTopics;
  }
  export class UpdateDeleteGroupCallMessages extends VirtualClass<{
    call: Api.TypeInputGroupCall;
    messages: int[];
  }> {
    call: Api.TypeInputGroupCall;
    messages: int[];
    CONSTRUCTOR_ID: 1048963372;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateDeleteGroupCallMessages';

    static fromReader(reader: Reader): UpdateDeleteGroupCallMessages;
  }
  export class UpdateStarGiftAuctionState extends VirtualClass<{
    giftId: long;
    state: Api.TypeStarGiftAuctionState;
  }> {
    giftId: long;
    state: Api.TypeStarGiftAuctionState;
    CONSTRUCTOR_ID: 1222788802;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStarGiftAuctionState';

    static fromReader(reader: Reader): UpdateStarGiftAuctionState;
  }
  export class UpdateStarGiftAuctionUserState extends VirtualClass<{
    giftId: long;
    userState: Api.TypeStarGiftAuctionUserState;
  }> {
    giftId: long;
    userState: Api.TypeStarGiftAuctionUserState;
    CONSTRUCTOR_ID: 3696816926;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStarGiftAuctionUserState';

    static fromReader(reader: Reader): UpdateStarGiftAuctionUserState;
  }
  export class UpdateEmojiGameInfo extends VirtualClass<{
    info: messages.TypeEmojiGameInfo;
  }> {
    info: messages.TypeEmojiGameInfo;
    CONSTRUCTOR_ID: 4221326458;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateEmojiGameInfo';

    static fromReader(reader: Reader): UpdateEmojiGameInfo;
  }
  export class UpdateStarGiftCraftFail extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2886149188;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateStarGiftCraftFail';

    static fromReader(reader: Reader): UpdateStarGiftCraftFail;
  }
  export class UpdateChatParticipantRank extends VirtualClass<{
    chatId: long;
    userId: long;
    rank: string;
    version: int;
  }> {
    chatId: long;
    userId: long;
    rank: string;
    version: int;
    CONSTRUCTOR_ID: 3179505593;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateChatParticipantRank';

    static fromReader(reader: Reader): UpdateChatParticipantRank;
  }
  export class UpdateManagedBot extends VirtualClass<{
    userId: long;
    botId: long;
    qts: int;
  }> {
    userId: long;
    botId: long;
    qts: int;
    CONSTRUCTOR_ID: 1216408986;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateManagedBot';

    static fromReader(reader: Reader): UpdateManagedBot;
  }
  export class UpdateBotGuestChatQuery extends VirtualClass<{
    // flags: Api.Type;
    queryId: long;
    message: Api.TypeMessage;
    referenceMessages?: Api.TypeMessage[];
    qts: int;
  }> {
    // flags: Api.Type;
    queryId: long;
    message: Api.TypeMessage;
    referenceMessages?: Api.TypeMessage[];
    qts: int;
    CONSTRUCTOR_ID: 3453225277;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateBotGuestChatQuery';

    static fromReader(reader: Reader): UpdateBotGuestChatQuery;
  }
  export class UpdateAiComposeTones extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2349830651;
    SUBCLASS_OF_ID: 2676568142;
    className: 'UpdateAiComposeTones';

    static fromReader(reader: Reader): UpdateAiComposeTones;
  }
  export class UpdatesTooLong extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3809980286;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdatesTooLong';

    static fromReader(reader: Reader): UpdatesTooLong;
  }
  export class UpdateShortMessage extends VirtualClass<{
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    id: int;
    userId: long;
    message: string;
    pts: int;
    ptsCount: int;
    date: int;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    replyTo?: Api.TypeMessageReplyHeader;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    id: int;
    userId: long;
    message: string;
    pts: int;
    ptsCount: int;
    date: int;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    replyTo?: Api.TypeMessageReplyHeader;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 826001400;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdateShortMessage';

    static fromReader(reader: Reader): UpdateShortMessage;
  }
  export class UpdateShortChatMessage extends VirtualClass<{
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    id: int;
    fromId: long;
    chatId: long;
    message: string;
    pts: int;
    ptsCount: int;
    date: int;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    replyTo?: Api.TypeMessageReplyHeader;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    out?: true;
    mentioned?: true;
    mediaUnread?: true;
    silent?: true;
    id: int;
    fromId: long;
    chatId: long;
    message: string;
    pts: int;
    ptsCount: int;
    date: int;
    fwdFrom?: Api.TypeMessageFwdHeader;
    viaBotId?: long;
    replyTo?: Api.TypeMessageReplyHeader;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 1299050149;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdateShortChatMessage';

    static fromReader(reader: Reader): UpdateShortChatMessage;
  }
  export class UpdateShort extends VirtualClass<{
    update: Api.TypeUpdate;
    date: int;
  }> {
    update: Api.TypeUpdate;
    date: int;
    CONSTRUCTOR_ID: 2027216577;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdateShort';

    static fromReader(reader: Reader): UpdateShort;
  }
  export class UpdatesCombined extends VirtualClass<{
    updates: Api.TypeUpdate[];
    users: Api.TypeUser[];
    chats: Api.TypeChat[];
    date: int;
    seqStart: int;
    seq: int;
  }> {
    updates: Api.TypeUpdate[];
    users: Api.TypeUser[];
    chats: Api.TypeChat[];
    date: int;
    seqStart: int;
    seq: int;
    CONSTRUCTOR_ID: 1918567619;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdatesCombined';

    static fromReader(reader: Reader): UpdatesCombined;
  }
  export class Updates extends VirtualClass<{
    updates: Api.TypeUpdate[];
    users: Api.TypeUser[];
    chats: Api.TypeChat[];
    date: int;
    seq: int;
  }> {
    updates: Api.TypeUpdate[];
    users: Api.TypeUser[];
    chats: Api.TypeChat[];
    date: int;
    seq: int;
    CONSTRUCTOR_ID: 1957577280;
    SUBCLASS_OF_ID: 2331323052;
    className: 'Updates';

    static fromReader(reader: Reader): Updates;
  }
  export class UpdateShortSentMessage extends VirtualClass<{
    // flags: Api.Type;
    out?: true;
    id: int;
    pts: int;
    ptsCount: int;
    date: int;
    media?: Api.TypeMessageMedia;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
  }> {
    // flags: Api.Type;
    out?: true;
    id: int;
    pts: int;
    ptsCount: int;
    date: int;
    media?: Api.TypeMessageMedia;
    entities?: Api.TypeMessageEntity[];
    ttlPeriod?: int;
    CONSTRUCTOR_ID: 2417352961;
    SUBCLASS_OF_ID: 2331323052;
    className: 'UpdateShortSentMessage';

    static fromReader(reader: Reader): UpdateShortSentMessage;
  }
  export class DcOption extends VirtualClass<{
    // flags: Api.Type;
    ipv6?: true;
    mediaOnly?: true;
    tcpoOnly?: true;
    cdn?: true;
    static?: true;
    thisPortOnly?: true;
    id: int;
    ipAddress: string;
    port: int;
    secret?: bytes;
  }> {
    // flags: Api.Type;
    ipv6?: true;
    mediaOnly?: true;
    tcpoOnly?: true;
    cdn?: true;
    static?: true;
    thisPortOnly?: true;
    id: int;
    ipAddress: string;
    port: int;
    secret?: bytes;
    CONSTRUCTOR_ID: 414687501;
    SUBCLASS_OF_ID: 2655248675;
    className: 'DcOption';

    static fromReader(reader: Reader): DcOption;
  }
  export class Config extends VirtualClass<{
    // flags: Api.Type;
    defaultP2pContacts?: true;
    preloadFeaturedStickers?: true;
    revokePmInbox?: true;
    blockedMode?: true;
    forceTryIpv6?: true;
    date: int;
    expires: int;
    testMode: Bool;
    thisDc: int;
    dcOptions: Api.TypeDcOption[];
    dcTxtDomainName: string;
    chatSizeMax: int;
    megagroupSizeMax: int;
    forwardedCountMax: int;
    onlineUpdatePeriodMs: int;
    offlineBlurTimeoutMs: int;
    offlineIdleTimeoutMs: int;
    onlineCloudTimeoutMs: int;
    notifyCloudDelayMs: int;
    notifyDefaultDelayMs: int;
    pushChatPeriodMs: int;
    pushChatLimit: int;
    editTimeLimit: int;
    revokeTimeLimit: int;
    revokePmTimeLimit: int;
    ratingEDecay: int;
    stickersRecentLimit: int;
    channelsReadMediaPeriod: int;
    tmpSessions?: int;
    callReceiveTimeoutMs: int;
    callRingTimeoutMs: int;
    callConnectTimeoutMs: int;
    callPacketTimeoutMs: int;
    meUrlPrefix: string;
    autoupdateUrlPrefix?: string;
    gifSearchUsername?: string;
    venueSearchUsername?: string;
    imgSearchUsername?: string;
    staticMapsProvider?: string;
    captionLengthMax: int;
    messageLengthMax: int;
    webfileDcId: int;
    suggestedLangCode?: string;
    langPackVersion?: int;
    baseLangPackVersion?: int;
    reactionsDefault?: Api.TypeReaction;
    autologinToken?: string;
  }> {
    // flags: Api.Type;
    defaultP2pContacts?: true;
    preloadFeaturedStickers?: true;
    revokePmInbox?: true;
    blockedMode?: true;
    forceTryIpv6?: true;
    date: int;
    expires: int;
    testMode: Bool;
    thisDc: int;
    dcOptions: Api.TypeDcOption[];
    dcTxtDomainName: string;
    chatSizeMax: int;
    megagroupSizeMax: int;
    forwardedCountMax: int;
    onlineUpdatePeriodMs: int;
    offlineBlurTimeoutMs: int;
    offlineIdleTimeoutMs: int;
    onlineCloudTimeoutMs: int;
    notifyCloudDelayMs: int;
    notifyDefaultDelayMs: int;
    pushChatPeriodMs: int;
    pushChatLimit: int;
    editTimeLimit: int;
    revokeTimeLimit: int;
    revokePmTimeLimit: int;
    ratingEDecay: int;
    stickersRecentLimit: int;
    channelsReadMediaPeriod: int;
    tmpSessions?: int;
    callReceiveTimeoutMs: int;
    callRingTimeoutMs: int;
    callConnectTimeoutMs: int;
    callPacketTimeoutMs: int;
    meUrlPrefix: string;
    autoupdateUrlPrefix?: string;
    gifSearchUsername?: string;
    venueSearchUsername?: string;
    imgSearchUsername?: string;
    staticMapsProvider?: string;
    captionLengthMax: int;
    messageLengthMax: int;
    webfileDcId: int;
    suggestedLangCode?: string;
    langPackVersion?: int;
    baseLangPackVersion?: int;
    reactionsDefault?: Api.TypeReaction;
    autologinToken?: string;
    CONSTRUCTOR_ID: 3424265246;
    SUBCLASS_OF_ID: 3542493770;
    className: 'Config';

    static fromReader(reader: Reader): Config;
  }
  export class NearestDc extends VirtualClass<{
    country: string;
    thisDc: int;
    nearestDc: int;
  }> {
    country: string;
    thisDc: int;
    nearestDc: int;
    CONSTRUCTOR_ID: 2384074613;
    SUBCLASS_OF_ID: 947323999;
    className: 'NearestDc';

    static fromReader(reader: Reader): NearestDc;
  }
  export class EncryptedChatEmpty extends VirtualClass<{
    id: int;
  }> {
    id: int;
    CONSTRUCTOR_ID: 2877210784;
    SUBCLASS_OF_ID: 1831379834;
    className: 'EncryptedChatEmpty';

    static fromReader(reader: Reader): EncryptedChatEmpty;
  }
  export class EncryptedChatWaiting extends VirtualClass<{
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
  }> {
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    CONSTRUCTOR_ID: 1722964307;
    SUBCLASS_OF_ID: 1831379834;
    className: 'EncryptedChatWaiting';

    static fromReader(reader: Reader): EncryptedChatWaiting;
  }
  export class EncryptedChatRequested extends VirtualClass<{
    // flags: Api.Type;
    folderId?: int;
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gA: bytes;
  }> {
    // flags: Api.Type;
    folderId?: int;
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gA: bytes;
    CONSTRUCTOR_ID: 1223809356;
    SUBCLASS_OF_ID: 1831379834;
    className: 'EncryptedChatRequested';

    static fromReader(reader: Reader): EncryptedChatRequested;
  }
  export class EncryptedChat extends VirtualClass<{
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAOrB: bytes;
    keyFingerprint: long;
  }> {
    id: int;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAOrB: bytes;
    keyFingerprint: long;
    CONSTRUCTOR_ID: 1643173063;
    SUBCLASS_OF_ID: 1831379834;
    className: 'EncryptedChat';

    static fromReader(reader: Reader): EncryptedChat;
  }
  export class EncryptedChatDiscarded extends VirtualClass<{
    // flags: Api.Type;
    historyDeleted?: true;
    id: int;
  }> {
    // flags: Api.Type;
    historyDeleted?: true;
    id: int;
    CONSTRUCTOR_ID: 505183301;
    SUBCLASS_OF_ID: 1831379834;
    className: 'EncryptedChatDiscarded';

    static fromReader(reader: Reader): EncryptedChatDiscarded;
  }
  export class InputEncryptedChat extends VirtualClass<{
    chatId: int;
    accessHash: long;
  }> {
    chatId: int;
    accessHash: long;
    CONSTRUCTOR_ID: 4047615457;
    SUBCLASS_OF_ID: 1819674304;
    className: 'InputEncryptedChat';

    static fromReader(reader: Reader): InputEncryptedChat;
  }
  export class EncryptedFileEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3256830334;
    SUBCLASS_OF_ID: 2217371584;
    className: 'EncryptedFileEmpty';

    static fromReader(reader: Reader): EncryptedFileEmpty;
  }
  export class EncryptedFile extends VirtualClass<{
    id: long;
    accessHash: long;
    size: long;
    dcId: int;
    keyFingerprint: int;
  }> {
    id: long;
    accessHash: long;
    size: long;
    dcId: int;
    keyFingerprint: int;
    CONSTRUCTOR_ID: 2818608344;
    SUBCLASS_OF_ID: 2217371584;
    className: 'EncryptedFile';

    static fromReader(reader: Reader): EncryptedFile;
  }
  export class InputEncryptedFileEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 406307684;
    SUBCLASS_OF_ID: 2239021690;
    className: 'InputEncryptedFileEmpty';

    static fromReader(reader: Reader): InputEncryptedFileEmpty;
  }
  export class InputEncryptedFileUploaded extends VirtualClass<{
    id: long;
    parts: int;
    md5Checksum: string;
    keyFingerprint: int;
  }> {
    id: long;
    parts: int;
    md5Checksum: string;
    keyFingerprint: int;
    CONSTRUCTOR_ID: 1690108678;
    SUBCLASS_OF_ID: 2239021690;
    className: 'InputEncryptedFileUploaded';

    static fromReader(reader: Reader): InputEncryptedFileUploaded;
  }
  export class InputEncryptedFile extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 1511503333;
    SUBCLASS_OF_ID: 2239021690;
    className: 'InputEncryptedFile';

    static fromReader(reader: Reader): InputEncryptedFile;
  }
  export class InputEncryptedFileBigUploaded extends VirtualClass<{
    id: long;
    parts: int;
    keyFingerprint: int;
  }> {
    id: long;
    parts: int;
    keyFingerprint: int;
    CONSTRUCTOR_ID: 767652808;
    SUBCLASS_OF_ID: 2239021690;
    className: 'InputEncryptedFileBigUploaded';

    static fromReader(reader: Reader): InputEncryptedFileBigUploaded;
  }
  export class EncryptedMessage extends VirtualClass<{
    randomId: long;
    chatId: int;
    date: int;
    bytes: bytes;
    file: Api.TypeEncryptedFile;
  }> {
    randomId: long;
    chatId: int;
    date: int;
    bytes: bytes;
    file: Api.TypeEncryptedFile;
    CONSTRUCTOR_ID: 3977822488;
    SUBCLASS_OF_ID: 597634641;
    className: 'EncryptedMessage';

    static fromReader(reader: Reader): EncryptedMessage;
  }
  export class EncryptedMessageService extends VirtualClass<{
    randomId: long;
    chatId: int;
    date: int;
    bytes: bytes;
  }> {
    randomId: long;
    chatId: int;
    date: int;
    bytes: bytes;
    CONSTRUCTOR_ID: 594758406;
    SUBCLASS_OF_ID: 597634641;
    className: 'EncryptedMessageService';

    static fromReader(reader: Reader): EncryptedMessageService;
  }
  export class InputDocumentEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1928391342;
    SUBCLASS_OF_ID: 4081048424;
    className: 'InputDocumentEmpty';

    static fromReader(reader: Reader): InputDocumentEmpty;
  }
  export class InputDocument extends VirtualClass<{
    id: long;
    accessHash: long;
    fileReference: bytes;
  }> {
    id: long;
    accessHash: long;
    fileReference: bytes;
    CONSTRUCTOR_ID: 448771445;
    SUBCLASS_OF_ID: 4081048424;
    className: 'InputDocument';

    static fromReader(reader: Reader): InputDocument;
  }
  export class DocumentEmpty extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 922273905;
    SUBCLASS_OF_ID: 555739168;
    className: 'DocumentEmpty';

    static fromReader(reader: Reader): DocumentEmpty;
  }
  export class Document extends VirtualClass<{
    // flags: Api.Type;
    id: long;
    accessHash: long;
    fileReference: bytes;
    date: int;
    mimeType: string;
    size: long;
    thumbs?: Api.TypePhotoSize[];
    videoThumbs?: Api.TypeVideoSize[];
    dcId: int;
    attributes: Api.TypeDocumentAttribute[];
  }> {
    // flags: Api.Type;
    id: long;
    accessHash: long;
    fileReference: bytes;
    date: int;
    mimeType: string;
    size: long;
    thumbs?: Api.TypePhotoSize[];
    videoThumbs?: Api.TypeVideoSize[];
    dcId: int;
    attributes: Api.TypeDocumentAttribute[];
    CONSTRUCTOR_ID: 2413085912;
    SUBCLASS_OF_ID: 555739168;
    className: 'Document';

    static fromReader(reader: Reader): Document;
  }
  export class NotifyPeer extends VirtualClass<{
    peer: Api.TypePeer;
  }> {
    peer: Api.TypePeer;
    CONSTRUCTOR_ID: 2681474008;
    SUBCLASS_OF_ID: 3756548142;
    className: 'NotifyPeer';

    static fromReader(reader: Reader): NotifyPeer;
  }
  export class NotifyUsers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3033021260;
    SUBCLASS_OF_ID: 3756548142;
    className: 'NotifyUsers';

    static fromReader(reader: Reader): NotifyUsers;
  }
  export class NotifyChats extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3221737155;
    SUBCLASS_OF_ID: 3756548142;
    className: 'NotifyChats';

    static fromReader(reader: Reader): NotifyChats;
  }
  export class NotifyBroadcasts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3591563503;
    SUBCLASS_OF_ID: 3756548142;
    className: 'NotifyBroadcasts';

    static fromReader(reader: Reader): NotifyBroadcasts;
  }
  export class NotifyForumTopic extends VirtualClass<{
    peer: Api.TypePeer;
    topMsgId: int;
  }> {
    peer: Api.TypePeer;
    topMsgId: int;
    CONSTRUCTOR_ID: 577659656;
    SUBCLASS_OF_ID: 3756548142;
    className: 'NotifyForumTopic';

    static fromReader(reader: Reader): NotifyForumTopic;
  }
  export class SendMessageTypingAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 381645902;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageTypingAction';

    static fromReader(reader: Reader): SendMessageTypingAction;
  }
  export class SendMessageCancelAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4250847477;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageCancelAction';

    static fromReader(reader: Reader): SendMessageCancelAction;
  }
  export class SendMessageRecordVideoAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2710034031;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageRecordVideoAction';

    static fromReader(reader: Reader): SendMessageRecordVideoAction;
  }
  export class SendMessageUploadVideoAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 3916839660;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageUploadVideoAction';

    static fromReader(reader: Reader): SendMessageUploadVideoAction;
  }
  export class SendMessageRecordAudioAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3576656887;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageRecordAudioAction';

    static fromReader(reader: Reader): SendMessageRecordAudioAction;
  }
  export class SendMessageUploadAudioAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 4082227115;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageUploadAudioAction';

    static fromReader(reader: Reader): SendMessageUploadAudioAction;
  }
  export class SendMessageUploadPhotoAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 3520285222;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageUploadPhotoAction';

    static fromReader(reader: Reader): SendMessageUploadPhotoAction;
  }
  export class SendMessageUploadDocumentAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 2852968932;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageUploadDocumentAction';

    static fromReader(reader: Reader): SendMessageUploadDocumentAction;
  }
  export class SendMessageGeoLocationAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 393186209;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageGeoLocationAction';

    static fromReader(reader: Reader): SendMessageGeoLocationAction;
  }
  export class SendMessageChooseContactAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1653390447;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageChooseContactAction';

    static fromReader(reader: Reader): SendMessageChooseContactAction;
  }
  export class SendMessageGamePlayAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3714748232;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageGamePlayAction';

    static fromReader(reader: Reader): SendMessageGamePlayAction;
  }
  export class SendMessageRecordRoundAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2297593788;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageRecordRoundAction';

    static fromReader(reader: Reader): SendMessageRecordRoundAction;
  }
  export class SendMessageUploadRoundAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 608050278;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageUploadRoundAction';

    static fromReader(reader: Reader): SendMessageUploadRoundAction;
  }
  export class SpeakingInGroupCallAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3643548293;
    SUBCLASS_OF_ID: 548588577;
    className: 'SpeakingInGroupCallAction';

    static fromReader(reader: Reader): SpeakingInGroupCallAction;
  }
  export class SendMessageHistoryImportAction extends VirtualClass<{
    progress: int;
  }> {
    progress: int;
    CONSTRUCTOR_ID: 3688534598;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageHistoryImportAction';

    static fromReader(reader: Reader): SendMessageHistoryImportAction;
  }
  export class SendMessageChooseStickerAction extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2958739121;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageChooseStickerAction';

    static fromReader(reader: Reader): SendMessageChooseStickerAction;
  }
  export class SendMessageEmojiInteraction extends VirtualClass<{
    emoticon: string;
    msgId: int;
    interaction: Api.TypeDataJSON;
  }> {
    emoticon: string;
    msgId: int;
    interaction: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 630664139;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageEmojiInteraction';

    static fromReader(reader: Reader): SendMessageEmojiInteraction;
  }
  export class SendMessageEmojiInteractionSeen extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 3060109358;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageEmojiInteractionSeen';

    static fromReader(reader: Reader): SendMessageEmojiInteractionSeen;
  }
  export class SendMessageTextDraftAction extends VirtualClass<{
    randomId: long;
    text: Api.TypeTextWithEntities;
  }> {
    randomId: long;
    text: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 929929052;
    SUBCLASS_OF_ID: 548588577;
    className: 'SendMessageTextDraftAction';

    static fromReader(reader: Reader): SendMessageTextDraftAction;
  }
  export class InputPrivacyKeyStatusTimestamp extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1335282456;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyStatusTimestamp';

    static fromReader(reader: Reader): InputPrivacyKeyStatusTimestamp;
  }
  export class InputPrivacyKeyChatInvite extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3187344422;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyChatInvite';

    static fromReader(reader: Reader): InputPrivacyKeyChatInvite;
  }
  export class InputPrivacyKeyPhoneCall extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4206550111;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyPhoneCall';

    static fromReader(reader: Reader): InputPrivacyKeyPhoneCall;
  }
  export class InputPrivacyKeyPhoneP2P extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3684593874;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyPhoneP2P';

    static fromReader(reader: Reader): InputPrivacyKeyPhoneP2P;
  }
  export class InputPrivacyKeyForwards extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2765966344;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyForwards';

    static fromReader(reader: Reader): InputPrivacyKeyForwards;
  }
  export class InputPrivacyKeyProfilePhoto extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1461304012;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyProfilePhoto';

    static fromReader(reader: Reader): InputPrivacyKeyProfilePhoto;
  }
  export class InputPrivacyKeyPhoneNumber extends VirtualClass<void> {
    CONSTRUCTOR_ID: 55761658;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyPhoneNumber';

    static fromReader(reader: Reader): InputPrivacyKeyPhoneNumber;
  }
  export class InputPrivacyKeyAddedByPhone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3508640733;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyAddedByPhone';

    static fromReader(reader: Reader): InputPrivacyKeyAddedByPhone;
  }
  export class InputPrivacyKeyVoiceMessages extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2934349160;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyVoiceMessages';

    static fromReader(reader: Reader): InputPrivacyKeyVoiceMessages;
  }
  export class InputPrivacyKeyAbout extends VirtualClass<void> {
    CONSTRUCTOR_ID: 941870144;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyAbout';

    static fromReader(reader: Reader): InputPrivacyKeyAbout;
  }
  export class InputPrivacyKeyBirthday extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3596227020;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyBirthday';

    static fromReader(reader: Reader): InputPrivacyKeyBirthday;
  }
  export class InputPrivacyKeyStarGiftsAutoSave extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3782419265;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyStarGiftsAutoSave';

    static fromReader(reader: Reader): InputPrivacyKeyStarGiftsAutoSave;
  }
  export class InputPrivacyKeyNoPaidMessages extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3183843252;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeyNoPaidMessages';

    static fromReader(reader: Reader): InputPrivacyKeyNoPaidMessages;
  }
  export class InputPrivacyKeySavedMusic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1304334886;
    SUBCLASS_OF_ID: 87435256;
    className: 'InputPrivacyKeySavedMusic';

    static fromReader(reader: Reader): InputPrivacyKeySavedMusic;
  }
  export class PrivacyKeyStatusTimestamp extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3157175088;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyStatusTimestamp';

    static fromReader(reader: Reader): PrivacyKeyStatusTimestamp;
  }
  export class PrivacyKeyChatInvite extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1343122938;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyChatInvite';

    static fromReader(reader: Reader): PrivacyKeyChatInvite;
  }
  export class PrivacyKeyPhoneCall extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1030105979;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyPhoneCall';

    static fromReader(reader: Reader): PrivacyKeyPhoneCall;
  }
  export class PrivacyKeyPhoneP2P extends VirtualClass<void> {
    CONSTRUCTOR_ID: 961092808;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyPhoneP2P';

    static fromReader(reader: Reader): PrivacyKeyPhoneP2P;
  }
  export class PrivacyKeyForwards extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1777096355;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyForwards';

    static fromReader(reader: Reader): PrivacyKeyForwards;
  }
  export class PrivacyKeyProfilePhoto extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2517966829;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyProfilePhoto';

    static fromReader(reader: Reader): PrivacyKeyProfilePhoto;
  }
  export class PrivacyKeyPhoneNumber extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3516589165;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyPhoneNumber';

    static fromReader(reader: Reader): PrivacyKeyPhoneNumber;
  }
  export class PrivacyKeyAddedByPhone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1124062251;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyAddedByPhone';

    static fromReader(reader: Reader): PrivacyKeyAddedByPhone;
  }
  export class PrivacyKeyVoiceMessages extends VirtualClass<void> {
    CONSTRUCTOR_ID: 110621716;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyVoiceMessages';

    static fromReader(reader: Reader): PrivacyKeyVoiceMessages;
  }
  export class PrivacyKeyAbout extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2760292193;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyAbout';

    static fromReader(reader: Reader): PrivacyKeyAbout;
  }
  export class PrivacyKeyBirthday extends VirtualClass<void> {
    CONSTRUCTOR_ID: 536913176;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyBirthday';

    static fromReader(reader: Reader): PrivacyKeyBirthday;
  }
  export class PrivacyKeyStarGiftsAutoSave extends VirtualClass<void> {
    CONSTRUCTOR_ID: 749010424;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyStarGiftsAutoSave';

    static fromReader(reader: Reader): PrivacyKeyStarGiftsAutoSave;
  }
  export class PrivacyKeyNoPaidMessages extends VirtualClass<void> {
    CONSTRUCTOR_ID: 399722706;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeyNoPaidMessages';

    static fromReader(reader: Reader): PrivacyKeyNoPaidMessages;
  }
  export class PrivacyKeySavedMusic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4286207771;
    SUBCLASS_OF_ID: 2185646531;
    className: 'PrivacyKeySavedMusic';

    static fromReader(reader: Reader): PrivacyKeySavedMusic;
  }
  export class InputPrivacyValueAllowContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 218751099;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowContacts';

    static fromReader(reader: Reader): InputPrivacyValueAllowContacts;
  }
  export class InputPrivacyValueAllowAll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 407582158;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowAll';

    static fromReader(reader: Reader): InputPrivacyValueAllowAll;
  }
  export class InputPrivacyValueAllowUsers extends VirtualClass<{
    users: Api.TypeInputUser[];
  }> {
    users: Api.TypeInputUser[];
    CONSTRUCTOR_ID: 320652927;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowUsers';

    static fromReader(reader: Reader): InputPrivacyValueAllowUsers;
  }
  export class InputPrivacyValueDisallowContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 195371015;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueDisallowContacts';

    static fromReader(reader: Reader): InputPrivacyValueDisallowContacts;
  }
  export class InputPrivacyValueDisallowAll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3597362889;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueDisallowAll';

    static fromReader(reader: Reader): InputPrivacyValueDisallowAll;
  }
  export class InputPrivacyValueDisallowUsers extends VirtualClass<{
    users: Api.TypeInputUser[];
  }> {
    users: Api.TypeInputUser[];
    CONSTRUCTOR_ID: 2417034343;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueDisallowUsers';

    static fromReader(reader: Reader): InputPrivacyValueDisallowUsers;
  }
  export class InputPrivacyValueAllowChatParticipants extends VirtualClass<{
    chats: long[];
  }> {
    chats: long[];
    CONSTRUCTOR_ID: 2215004623;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowChatParticipants';

    static fromReader(reader: Reader): InputPrivacyValueAllowChatParticipants;
  }
  export class InputPrivacyValueDisallowChatParticipants extends VirtualClass<{
    chats: long[];
  }> {
    chats: long[];
    CONSTRUCTOR_ID: 3914272646;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueDisallowChatParticipants';

    static fromReader(reader: Reader): InputPrivacyValueDisallowChatParticipants;
  }
  export class InputPrivacyValueAllowCloseFriends extends VirtualClass<void> {
    CONSTRUCTOR_ID: 793067081;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowCloseFriends';

    static fromReader(reader: Reader): InputPrivacyValueAllowCloseFriends;
  }
  export class InputPrivacyValueAllowPremium extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2009975281;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowPremium';

    static fromReader(reader: Reader): InputPrivacyValueAllowPremium;
  }
  export class InputPrivacyValueAllowBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1515179237;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueAllowBots';

    static fromReader(reader: Reader): InputPrivacyValueAllowBots;
  }
  export class InputPrivacyValueDisallowBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3303373077;
    SUBCLASS_OF_ID: 1513843490;
    className: 'InputPrivacyValueDisallowBots';

    static fromReader(reader: Reader): InputPrivacyValueDisallowBots;
  }
  export class PrivacyValueAllowContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4294843308;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowContacts';

    static fromReader(reader: Reader): PrivacyValueAllowContacts;
  }
  export class PrivacyValueAllowAll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1698855810;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowAll';

    static fromReader(reader: Reader): PrivacyValueAllowAll;
  }
  export class PrivacyValueAllowUsers extends VirtualClass<{
    users: long[];
  }> {
    users: long[];
    CONSTRUCTOR_ID: 3096469426;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowUsers';

    static fromReader(reader: Reader): PrivacyValueAllowUsers;
  }
  export class PrivacyValueDisallowContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4169726490;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueDisallowContacts';

    static fromReader(reader: Reader): PrivacyValueDisallowContacts;
  }
  export class PrivacyValueDisallowAll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2339628899;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueDisallowAll';

    static fromReader(reader: Reader): PrivacyValueDisallowAll;
  }
  export class PrivacyValueDisallowUsers extends VirtualClass<{
    users: long[];
  }> {
    users: long[];
    CONSTRUCTOR_ID: 3831632193;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueDisallowUsers';

    static fromReader(reader: Reader): PrivacyValueDisallowUsers;
  }
  export class PrivacyValueAllowChatParticipants extends VirtualClass<{
    chats: long[];
  }> {
    chats: long[];
    CONSTRUCTOR_ID: 1796427406;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowChatParticipants';

    static fromReader(reader: Reader): PrivacyValueAllowChatParticipants;
  }
  export class PrivacyValueDisallowChatParticipants extends VirtualClass<{
    chats: long[];
  }> {
    chats: long[];
    CONSTRUCTOR_ID: 1103656293;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueDisallowChatParticipants';

    static fromReader(reader: Reader): PrivacyValueDisallowChatParticipants;
  }
  export class PrivacyValueAllowCloseFriends extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4159232155;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowCloseFriends';

    static fromReader(reader: Reader): PrivacyValueAllowCloseFriends;
  }
  export class PrivacyValueAllowPremium extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3974725963;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowPremium';

    static fromReader(reader: Reader): PrivacyValueAllowPremium;
  }
  export class PrivacyValueAllowBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 558242653;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueAllowBots';

    static fromReader(reader: Reader): PrivacyValueAllowBots;
  }
  export class PrivacyValueDisallowBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4138072111;
    SUBCLASS_OF_ID: 3954700912;
    className: 'PrivacyValueDisallowBots';

    static fromReader(reader: Reader): PrivacyValueDisallowBots;
  }
  export class AccountDaysTTL extends VirtualClass<{
    days: int;
  }> {
    days: int;
    CONSTRUCTOR_ID: 3100684255;
    SUBCLASS_OF_ID: 3131284872;
    className: 'AccountDaysTTL';

    static fromReader(reader: Reader): AccountDaysTTL;
  }
  export class DocumentAttributeImageSize extends VirtualClass<{
    w: int;
    h: int;
  }> {
    w: int;
    h: int;
    CONSTRUCTOR_ID: 1815593308;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeImageSize';

    static fromReader(reader: Reader): DocumentAttributeImageSize;
  }
  export class DocumentAttributeAnimated extends VirtualClass<void> {
    CONSTRUCTOR_ID: 297109817;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeAnimated';

    static fromReader(reader: Reader): DocumentAttributeAnimated;
  }
  export class DocumentAttributeSticker extends VirtualClass<{
    // flags: Api.Type;
    mask?: true;
    alt: string;
    stickerset: Api.TypeInputStickerSet;
    maskCoords?: Api.TypeMaskCoords;
  }> {
    // flags: Api.Type;
    mask?: true;
    alt: string;
    stickerset: Api.TypeInputStickerSet;
    maskCoords?: Api.TypeMaskCoords;
    CONSTRUCTOR_ID: 1662637586;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeSticker';

    static fromReader(reader: Reader): DocumentAttributeSticker;
  }
  export class DocumentAttributeVideo extends VirtualClass<{
    // flags: Api.Type;
    roundMessage?: true;
    supportsStreaming?: true;
    nosound?: true;
    duration: double;
    w: int;
    h: int;
    preloadPrefixSize?: int;
    videoStartTs?: double;
    videoCodec?: string;
  }> {
    // flags: Api.Type;
    roundMessage?: true;
    supportsStreaming?: true;
    nosound?: true;
    duration: double;
    w: int;
    h: int;
    preloadPrefixSize?: int;
    videoStartTs?: double;
    videoCodec?: string;
    CONSTRUCTOR_ID: 1137015880;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeVideo';

    static fromReader(reader: Reader): DocumentAttributeVideo;
  }
  export class DocumentAttributeAudio extends VirtualClass<{
    // flags: Api.Type;
    voice?: true;
    duration: int;
    title?: string;
    performer?: string;
    waveform?: bytes;
  }> {
    // flags: Api.Type;
    voice?: true;
    duration: int;
    title?: string;
    performer?: string;
    waveform?: bytes;
    CONSTRUCTOR_ID: 2555574726;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeAudio';

    static fromReader(reader: Reader): DocumentAttributeAudio;
  }
  export class DocumentAttributeFilename extends VirtualClass<{
    fileName: string;
  }> {
    fileName: string;
    CONSTRUCTOR_ID: 358154344;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeFilename';

    static fromReader(reader: Reader): DocumentAttributeFilename;
  }
  export class DocumentAttributeHasStickers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2550256375;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeHasStickers';

    static fromReader(reader: Reader): DocumentAttributeHasStickers;
  }
  export class DocumentAttributeCustomEmoji extends VirtualClass<{
    // flags: Api.Type;
    free?: true;
    textColor?: true;
    alt: string;
    stickerset: Api.TypeInputStickerSet;
  }> {
    // flags: Api.Type;
    free?: true;
    textColor?: true;
    alt: string;
    stickerset: Api.TypeInputStickerSet;
    CONSTRUCTOR_ID: 4245985433;
    SUBCLASS_OF_ID: 4146719643;
    className: 'DocumentAttributeCustomEmoji';

    static fromReader(reader: Reader): DocumentAttributeCustomEmoji;
  }
  export class StickerPack extends VirtualClass<{
    emoticon: string;
    documents: long[];
  }> {
    emoticon: string;
    documents: long[];
    CONSTRUCTOR_ID: 313694676;
    SUBCLASS_OF_ID: 2683282644;
    className: 'StickerPack';

    static fromReader(reader: Reader): StickerPack;
  }
  export class WebPageEmpty extends VirtualClass<{
    // flags: Api.Type;
    id: long;
    url?: string;
  }> {
    // flags: Api.Type;
    id: long;
    url?: string;
    CONSTRUCTOR_ID: 555358088;
    SUBCLASS_OF_ID: 1437168769;
    className: 'WebPageEmpty';

    static fromReader(reader: Reader): WebPageEmpty;
  }
  export class WebPagePending extends VirtualClass<{
    // flags: Api.Type;
    id: long;
    url?: string;
    date: int;
  }> {
    // flags: Api.Type;
    id: long;
    url?: string;
    date: int;
    CONSTRUCTOR_ID: 2966502983;
    SUBCLASS_OF_ID: 1437168769;
    className: 'WebPagePending';

    static fromReader(reader: Reader): WebPagePending;
  }
  export class WebPage extends VirtualClass<{
    // flags: Api.Type;
    hasLargeMedia?: true;
    videoCoverPhoto?: true;
    id: long;
    url: string;
    displayUrl: string;
    hash: int;
    type?: string;
    siteName?: string;
    title?: string;
    description?: string;
    photo?: Api.TypePhoto;
    embedUrl?: string;
    embedType?: string;
    embedWidth?: int;
    embedHeight?: int;
    duration?: int;
    author?: string;
    document?: Api.TypeDocument;
    cachedPage?: Api.TypePage;
    attributes?: Api.TypeWebPageAttribute[];
  }> {
    // flags: Api.Type;
    hasLargeMedia?: true;
    videoCoverPhoto?: true;
    id: long;
    url: string;
    displayUrl: string;
    hash: int;
    type?: string;
    siteName?: string;
    title?: string;
    description?: string;
    photo?: Api.TypePhoto;
    embedUrl?: string;
    embedType?: string;
    embedWidth?: int;
    embedHeight?: int;
    duration?: int;
    author?: string;
    document?: Api.TypeDocument;
    cachedPage?: Api.TypePage;
    attributes?: Api.TypeWebPageAttribute[];
    CONSTRUCTOR_ID: 3902555570;
    SUBCLASS_OF_ID: 1437168769;
    className: 'WebPage';

    static fromReader(reader: Reader): WebPage;
  }
  export class WebPageNotModified extends VirtualClass<{
    // flags: Api.Type;
    cachedPageViews?: int;
  } | void> {
    // flags: Api.Type;
    cachedPageViews?: int;
    CONSTRUCTOR_ID: 1930545681;
    SUBCLASS_OF_ID: 1437168769;
    className: 'WebPageNotModified';

    static fromReader(reader: Reader): WebPageNotModified;
  }
  export class Authorization extends VirtualClass<{
    // flags: Api.Type;
    current?: true;
    officialApp?: true;
    passwordPending?: true;
    encryptedRequestsDisabled?: true;
    callRequestsDisabled?: true;
    unconfirmed?: true;
    hash: long;
    deviceModel: string;
    platform: string;
    systemVersion: string;
    apiId: int;
    appName: string;
    appVersion: string;
    dateCreated: int;
    dateActive: int;
    ip: string;
    country: string;
    region: string;
  }> {
    // flags: Api.Type;
    current?: true;
    officialApp?: true;
    passwordPending?: true;
    encryptedRequestsDisabled?: true;
    callRequestsDisabled?: true;
    unconfirmed?: true;
    hash: long;
    deviceModel: string;
    platform: string;
    systemVersion: string;
    apiId: int;
    appName: string;
    appVersion: string;
    dateCreated: int;
    dateActive: int;
    ip: string;
    country: string;
    region: string;
    CONSTRUCTOR_ID: 2902578717;
    SUBCLASS_OF_ID: 3373514778;
    className: 'Authorization';

    static fromReader(reader: Reader): Authorization;
  }
  export class ReceivedNotifyMessage extends VirtualClass<{
    id: int;
    // flags: int;
  }> {
    id: int;
    // flags: int;
    CONSTRUCTOR_ID: 2743383929;
    SUBCLASS_OF_ID: 2841786398;
    className: 'ReceivedNotifyMessage';

    static fromReader(reader: Reader): ReceivedNotifyMessage;
  }
  export class ChatInviteExported extends VirtualClass<{
    // flags: Api.Type;
    revoked?: true;
    permanent?: true;
    requestNeeded?: true;
    link: string;
    adminId: long;
    date: int;
    startDate?: int;
    expireDate?: int;
    usageLimit?: int;
    usage?: int;
    requested?: int;
    subscriptionExpired?: int;
    title?: string;
    subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
  }> {
    // flags: Api.Type;
    revoked?: true;
    permanent?: true;
    requestNeeded?: true;
    link: string;
    adminId: long;
    date: int;
    startDate?: int;
    expireDate?: int;
    usageLimit?: int;
    usage?: int;
    requested?: int;
    subscriptionExpired?: int;
    title?: string;
    subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
    CONSTRUCTOR_ID: 2720841110;
    SUBCLASS_OF_ID: 3027536472;
    className: 'ChatInviteExported';

    static fromReader(reader: Reader): ChatInviteExported;
  }
  export class ChatInvitePublicJoinRequests extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3977280183;
    SUBCLASS_OF_ID: 3027536472;
    className: 'ChatInvitePublicJoinRequests';

    static fromReader(reader: Reader): ChatInvitePublicJoinRequests;
  }
  export class ChatInviteAlready extends VirtualClass<{
    chat: Api.TypeChat;
  }> {
    chat: Api.TypeChat;
    CONSTRUCTOR_ID: 1516793212;
    SUBCLASS_OF_ID: 72750902;
    className: 'ChatInviteAlready';

    static fromReader(reader: Reader): ChatInviteAlready;
  }
  export class ChatInvite extends VirtualClass<{
    // flags: Api.Type;
    channel?: true;
    broadcast?: true;
    public?: true;
    megagroup?: true;
    requestNeeded?: true;
    verified?: true;
    scam?: true;
    fake?: true;
    canRefulfillSubscription?: true;
    title: string;
    about?: string;
    photo: Api.TypePhoto;
    participantsCount: int;
    participants?: Api.TypeUser[];
    color: int;
    subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
    subscriptionFormId?: long;
    botVerification?: Api.TypeBotVerification;
  }> {
    // flags: Api.Type;
    channel?: true;
    broadcast?: true;
    public?: true;
    megagroup?: true;
    requestNeeded?: true;
    verified?: true;
    scam?: true;
    fake?: true;
    canRefulfillSubscription?: true;
    title: string;
    about?: string;
    photo: Api.TypePhoto;
    participantsCount: int;
    participants?: Api.TypeUser[];
    color: int;
    subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
    subscriptionFormId?: long;
    botVerification?: Api.TypeBotVerification;
    CONSTRUCTOR_ID: 1553807106;
    SUBCLASS_OF_ID: 72750902;
    className: 'ChatInvite';

    static fromReader(reader: Reader): ChatInvite;
  }
  export class ChatInvitePeek extends VirtualClass<{
    chat: Api.TypeChat;
    expires: int;
  }> {
    chat: Api.TypeChat;
    expires: int;
    CONSTRUCTOR_ID: 1634294960;
    SUBCLASS_OF_ID: 72750902;
    className: 'ChatInvitePeek';

    static fromReader(reader: Reader): ChatInvitePeek;
  }
  export class InputStickerSetEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4290128789;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetEmpty';

    static fromReader(reader: Reader): InputStickerSetEmpty;
  }
  export class InputStickerSetID extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 2649203305;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetID';

    static fromReader(reader: Reader): InputStickerSetID;
  }
  export class InputStickerSetShortName extends VirtualClass<{
    shortName: string;
  }> {
    shortName: string;
    CONSTRUCTOR_ID: 2250033312;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetShortName';

    static fromReader(reader: Reader): InputStickerSetShortName;
  }
  export class InputStickerSetAnimatedEmoji extends VirtualClass<void> {
    CONSTRUCTOR_ID: 42402760;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetAnimatedEmoji';

    static fromReader(reader: Reader): InputStickerSetAnimatedEmoji;
  }
  export class InputStickerSetDice extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 3867103758;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetDice';

    static fromReader(reader: Reader): InputStickerSetDice;
  }
  export class InputStickerSetAnimatedEmojiAnimations extends VirtualClass<void> {
    CONSTRUCTOR_ID: 215889721;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetAnimatedEmojiAnimations';

    static fromReader(reader: Reader): InputStickerSetAnimatedEmojiAnimations;
  }
  export class InputStickerSetPremiumGifts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3364567810;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetPremiumGifts';

    static fromReader(reader: Reader): InputStickerSetPremiumGifts;
  }
  export class InputStickerSetEmojiGenericAnimations extends VirtualClass<void> {
    CONSTRUCTOR_ID: 80008398;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetEmojiGenericAnimations';

    static fromReader(reader: Reader): InputStickerSetEmojiGenericAnimations;
  }
  export class InputStickerSetEmojiDefaultStatuses extends VirtualClass<void> {
    CONSTRUCTOR_ID: 701560302;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetEmojiDefaultStatuses';

    static fromReader(reader: Reader): InputStickerSetEmojiDefaultStatuses;
  }
  export class InputStickerSetEmojiDefaultTopicIcons extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1153562857;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetEmojiDefaultTopicIcons';

    static fromReader(reader: Reader): InputStickerSetEmojiDefaultTopicIcons;
  }
  export class InputStickerSetEmojiChannelDefaultStatuses extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1232373075;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetEmojiChannelDefaultStatuses';

    static fromReader(reader: Reader): InputStickerSetEmojiChannelDefaultStatuses;
  }
  export class InputStickerSetTonGifts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 485912992;
    SUBCLASS_OF_ID: 1034127786;
    className: 'InputStickerSetTonGifts';

    static fromReader(reader: Reader): InputStickerSetTonGifts;
  }
  export class StickerSet extends VirtualClass<{
    // flags: Api.Type;
    archived?: true;
    official?: true;
    masks?: true;
    emojis?: true;
    textColor?: true;
    channelEmojiStatus?: true;
    creator?: true;
    installedDate?: int;
    id: long;
    accessHash: long;
    title: string;
    shortName: string;
    thumbs?: Api.TypePhotoSize[];
    thumbDcId?: int;
    thumbVersion?: int;
    thumbDocumentId?: long;
    count: int;
    hash: int;
  }> {
    // flags: Api.Type;
    archived?: true;
    official?: true;
    masks?: true;
    emojis?: true;
    textColor?: true;
    channelEmojiStatus?: true;
    creator?: true;
    installedDate?: int;
    id: long;
    accessHash: long;
    title: string;
    shortName: string;
    thumbs?: Api.TypePhotoSize[];
    thumbDcId?: int;
    thumbVersion?: int;
    thumbDocumentId?: long;
    count: int;
    hash: int;
    CONSTRUCTOR_ID: 768691932;
    SUBCLASS_OF_ID: 3134455697;
    className: 'StickerSet';

    static fromReader(reader: Reader): StickerSet;
  }
  export class BotCommand extends VirtualClass<{
    command: string;
    description: string;
  }> {
    command: string;
    description: string;
    CONSTRUCTOR_ID: 3262826695;
    SUBCLASS_OF_ID: 236872386;
    className: 'BotCommand';

    static fromReader(reader: Reader): BotCommand;
  }
  export class BotInfo extends VirtualClass<{
    // flags: Api.Type;
    hasPreviewMedias?: true;
    userId?: long;
    description?: string;
    descriptionPhoto?: Api.TypePhoto;
    descriptionDocument?: Api.TypeDocument;
    commands?: Api.TypeBotCommand[];
    menuButton?: Api.TypeBotMenuButton;
    privacyPolicyUrl?: string;
    appSettings?: Api.TypeBotAppSettings;
    verifierSettings?: Api.TypeBotVerifierSettings;
  } | void> {
    // flags: Api.Type;
    hasPreviewMedias?: true;
    userId?: long;
    description?: string;
    descriptionPhoto?: Api.TypePhoto;
    descriptionDocument?: Api.TypeDocument;
    commands?: Api.TypeBotCommand[];
    menuButton?: Api.TypeBotMenuButton;
    privacyPolicyUrl?: string;
    appSettings?: Api.TypeBotAppSettings;
    verifierSettings?: Api.TypeBotVerifierSettings;
    CONSTRUCTOR_ID: 1300890265;
    SUBCLASS_OF_ID: 4059496923;
    className: 'BotInfo';

    static fromReader(reader: Reader): BotInfo;
  }
  export class KeyboardButton extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    CONSTRUCTOR_ID: 2098662655;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButton';

    static fromReader(reader: Reader): KeyboardButton;
  }
  export class KeyboardButtonUrl extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
    CONSTRUCTOR_ID: 3624674796;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonUrl';

    static fromReader(reader: Reader): KeyboardButtonUrl;
  }
  export class KeyboardButtonCallback extends VirtualClass<{
    // flags: Api.Type;
    requiresPassword?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    data: bytes;
  }> {
    // flags: Api.Type;
    requiresPassword?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    data: bytes;
    CONSTRUCTOR_ID: 3861629280;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonCallback';

    static fromReader(reader: Reader): KeyboardButtonCallback;
  }
  export class KeyboardButtonRequestPhone extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    CONSTRUCTOR_ID: 1098841487;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonRequestPhone';

    static fromReader(reader: Reader): KeyboardButtonRequestPhone;
  }
  export class KeyboardButtonRequestGeoLocation extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    CONSTRUCTOR_ID: 2856384845;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonRequestGeoLocation';

    static fromReader(reader: Reader): KeyboardButtonRequestGeoLocation;
  }
  export class KeyboardButtonSwitchInline extends VirtualClass<{
    // flags: Api.Type;
    samePeer?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    query: string;
    peerTypes?: Api.TypeInlineQueryPeerType[];
  }> {
    // flags: Api.Type;
    samePeer?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    query: string;
    peerTypes?: Api.TypeInlineQueryPeerType[];
    CONSTRUCTOR_ID: 2568198652;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonSwitchInline';

    static fromReader(reader: Reader): KeyboardButtonSwitchInline;
  }
  export class KeyboardButtonGame extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    CONSTRUCTOR_ID: 2311426297;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonGame';

    static fromReader(reader: Reader): KeyboardButtonGame;
  }
  export class KeyboardButtonBuy extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    CONSTRUCTOR_ID: 1067792645;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonBuy';

    static fromReader(reader: Reader): KeyboardButtonBuy;
  }
  export class KeyboardButtonUrlAuth extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    fwdText?: string;
    url: string;
    buttonId: int;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    fwdText?: string;
    url: string;
    buttonId: int;
    CONSTRUCTOR_ID: 4111468281;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonUrlAuth';

    static fromReader(reader: Reader): KeyboardButtonUrlAuth;
  }
  export class InputKeyboardButtonUrlAuth extends VirtualClass<{
    // flags: Api.Type;
    requestWriteAccess?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    fwdText?: string;
    url: string;
    bot: Api.TypeInputUser;
  }> {
    // flags: Api.Type;
    requestWriteAccess?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    fwdText?: string;
    url: string;
    bot: Api.TypeInputUser;
    CONSTRUCTOR_ID: 1744911986;
    SUBCLASS_OF_ID: 195916963;
    className: 'InputKeyboardButtonUrlAuth';

    static fromReader(reader: Reader): InputKeyboardButtonUrlAuth;
  }
  export class KeyboardButtonRequestPoll extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    quiz?: Bool;
    text: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    quiz?: Bool;
    text: string;
    CONSTRUCTOR_ID: 2047989634;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonRequestPoll';

    static fromReader(reader: Reader): KeyboardButtonRequestPoll;
  }
  export class InputKeyboardButtonUserProfile extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    userId: Api.TypeInputUser;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    userId: Api.TypeInputUser;
    CONSTRUCTOR_ID: 2103314375;
    SUBCLASS_OF_ID: 195916963;
    className: 'InputKeyboardButtonUserProfile';

    static fromReader(reader: Reader): InputKeyboardButtonUserProfile;
  }
  export class KeyboardButtonUserProfile extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    userId: long;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    userId: long;
    CONSTRUCTOR_ID: 3237829897;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonUserProfile';

    static fromReader(reader: Reader): KeyboardButtonUserProfile;
  }
  export class KeyboardButtonWebView extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
    CONSTRUCTOR_ID: 3896947104;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonWebView';

    static fromReader(reader: Reader): KeyboardButtonWebView;
  }
  export class KeyboardButtonSimpleWebView extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    url: string;
    CONSTRUCTOR_ID: 3780920176;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonSimpleWebView';

    static fromReader(reader: Reader): KeyboardButtonSimpleWebView;
  }
  export class KeyboardButtonRequestPeer extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    buttonId: int;
    peerType: Api.TypeRequestPeerType;
    maxQuantity: int;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    buttonId: int;
    peerType: Api.TypeRequestPeerType;
    maxQuantity: int;
    CONSTRUCTOR_ID: 1527715317;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonRequestPeer';

    static fromReader(reader: Reader): KeyboardButtonRequestPeer;
  }
  export class InputKeyboardButtonRequestPeer extends VirtualClass<{
    // flags: Api.Type;
    nameRequested?: true;
    usernameRequested?: true;
    photoRequested?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    buttonId: int;
    peerType: Api.TypeRequestPeerType;
    maxQuantity: int;
  }> {
    // flags: Api.Type;
    nameRequested?: true;
    usernameRequested?: true;
    photoRequested?: true;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    buttonId: int;
    peerType: Api.TypeRequestPeerType;
    maxQuantity: int;
    CONSTRUCTOR_ID: 45580630;
    SUBCLASS_OF_ID: 195916963;
    className: 'InputKeyboardButtonRequestPeer';

    static fromReader(reader: Reader): InputKeyboardButtonRequestPeer;
  }
  export class KeyboardButtonCopy extends VirtualClass<{
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    copyText: string;
  }> {
    // flags: Api.Type;
    style?: Api.TypeKeyboardButtonStyle;
    text: string;
    copyText: string;
    CONSTRUCTOR_ID: 3167006480;
    SUBCLASS_OF_ID: 195916963;
    className: 'KeyboardButtonCopy';

    static fromReader(reader: Reader): KeyboardButtonCopy;
  }
  export class KeyboardButtonRow extends VirtualClass<{
    buttons: Api.TypeKeyboardButton[];
  }> {
    buttons: Api.TypeKeyboardButton[];
    CONSTRUCTOR_ID: 2002815875;
    SUBCLASS_OF_ID: 2222403758;
    className: 'KeyboardButtonRow';

    static fromReader(reader: Reader): KeyboardButtonRow;
  }
  export class ReplyKeyboardHide extends VirtualClass<{
    // flags: Api.Type;
    selective?: true;
  } | void> {
    // flags: Api.Type;
    selective?: true;
    CONSTRUCTOR_ID: 2688441221;
    SUBCLASS_OF_ID: 3806400242;
    className: 'ReplyKeyboardHide';

    static fromReader(reader: Reader): ReplyKeyboardHide;
  }
  export class ReplyKeyboardForceReply extends VirtualClass<{
    // flags: Api.Type;
    singleUse?: true;
    selective?: true;
    placeholder?: string;
  } | void> {
    // flags: Api.Type;
    singleUse?: true;
    selective?: true;
    placeholder?: string;
    CONSTRUCTOR_ID: 2259946248;
    SUBCLASS_OF_ID: 3806400242;
    className: 'ReplyKeyboardForceReply';

    static fromReader(reader: Reader): ReplyKeyboardForceReply;
  }
  export class ReplyKeyboardMarkup extends VirtualClass<{
    // flags: Api.Type;
    resize?: true;
    singleUse?: true;
    selective?: true;
    persistent?: true;
    rows: Api.TypeKeyboardButtonRow[];
    placeholder?: string;
  }> {
    // flags: Api.Type;
    resize?: true;
    singleUse?: true;
    selective?: true;
    persistent?: true;
    rows: Api.TypeKeyboardButtonRow[];
    placeholder?: string;
    CONSTRUCTOR_ID: 2245892561;
    SUBCLASS_OF_ID: 3806400242;
    className: 'ReplyKeyboardMarkup';

    static fromReader(reader: Reader): ReplyKeyboardMarkup;
  }
  export class ReplyInlineMarkup extends VirtualClass<{
    rows: Api.TypeKeyboardButtonRow[];
  }> {
    rows: Api.TypeKeyboardButtonRow[];
    CONSTRUCTOR_ID: 1218642516;
    SUBCLASS_OF_ID: 3806400242;
    className: 'ReplyInlineMarkup';

    static fromReader(reader: Reader): ReplyInlineMarkup;
  }
  export class MessageEntityUnknown extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 3146955413;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityUnknown';

    static fromReader(reader: Reader): MessageEntityUnknown;
  }
  export class MessageEntityMention extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 4194588573;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityMention';

    static fromReader(reader: Reader): MessageEntityMention;
  }
  export class MessageEntityHashtag extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1868782349;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityHashtag';

    static fromReader(reader: Reader): MessageEntityHashtag;
  }
  export class MessageEntityBotCommand extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1827637959;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityBotCommand';

    static fromReader(reader: Reader): MessageEntityBotCommand;
  }
  export class MessageEntityUrl extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1859134776;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityUrl';

    static fromReader(reader: Reader): MessageEntityUrl;
  }
  export class MessageEntityEmail extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1692693954;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityEmail';

    static fromReader(reader: Reader): MessageEntityEmail;
  }
  export class MessageEntityBold extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 3177253833;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityBold';

    static fromReader(reader: Reader): MessageEntityBold;
  }
  export class MessageEntityItalic extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 2188348256;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityItalic';

    static fromReader(reader: Reader): MessageEntityItalic;
  }
  export class MessageEntityCode extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 681706865;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityCode';

    static fromReader(reader: Reader): MessageEntityCode;
  }
  export class MessageEntityPre extends VirtualClass<{
    offset: int;
    length: int;
    language: string;
  }> {
    offset: int;
    length: int;
    language: string;
    CONSTRUCTOR_ID: 1938967520;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityPre';

    static fromReader(reader: Reader): MessageEntityPre;
  }
  export class MessageEntityTextUrl extends VirtualClass<{
    offset: int;
    length: int;
    url: string;
  }> {
    offset: int;
    length: int;
    url: string;
    CONSTRUCTOR_ID: 1990644519;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityTextUrl';

    static fromReader(reader: Reader): MessageEntityTextUrl;
  }
  export class MessageEntityMentionName extends VirtualClass<{
    offset: int;
    length: int;
    userId: long;
  }> {
    offset: int;
    length: int;
    userId: long;
    CONSTRUCTOR_ID: 3699052864;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityMentionName';

    static fromReader(reader: Reader): MessageEntityMentionName;
  }
  export class InputMessageEntityMentionName extends VirtualClass<{
    offset: int;
    length: int;
    userId: Api.TypeInputUser;
  }> {
    offset: int;
    length: int;
    userId: Api.TypeInputUser;
    CONSTRUCTOR_ID: 546203849;
    SUBCLASS_OF_ID: 3479443932;
    className: 'InputMessageEntityMentionName';

    static fromReader(reader: Reader): InputMessageEntityMentionName;
  }
  export class MessageEntityPhone extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 2607407947;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityPhone';

    static fromReader(reader: Reader): MessageEntityPhone;
  }
  export class MessageEntityCashtag extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1280209983;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityCashtag';

    static fromReader(reader: Reader): MessageEntityCashtag;
  }
  export class MessageEntityUnderline extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 2622389899;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityUnderline';

    static fromReader(reader: Reader): MessageEntityUnderline;
  }
  export class MessageEntityStrike extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 3204879316;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityStrike';

    static fromReader(reader: Reader): MessageEntityStrike;
  }
  export class MessageEntityBankCard extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1981704948;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityBankCard';

    static fromReader(reader: Reader): MessageEntityBankCard;
  }
  export class MessageEntitySpoiler extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 852137487;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntitySpoiler';

    static fromReader(reader: Reader): MessageEntitySpoiler;
  }
  export class MessageEntityCustomEmoji extends VirtualClass<{
    offset: int;
    length: int;
    documentId: long;
  }> {
    offset: int;
    length: int;
    documentId: long;
    CONSTRUCTOR_ID: 3369010680;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityCustomEmoji';

    static fromReader(reader: Reader): MessageEntityCustomEmoji;
  }
  export class MessageEntityBlockquote extends VirtualClass<{
    // flags: Api.Type;
    collapsed?: true;
    offset: int;
    length: int;
  }> {
    // flags: Api.Type;
    collapsed?: true;
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 4056722092;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityBlockquote';

    static fromReader(reader: Reader): MessageEntityBlockquote;
  }
  export class MessageEntityFormattedDate extends VirtualClass<{
    // flags: Api.Type;
    relative?: true;
    shortTime?: true;
    longTime?: true;
    shortDate?: true;
    longDate?: true;
    dayOfWeek?: true;
    offset: int;
    length: int;
    date: int;
  }> {
    // flags: Api.Type;
    relative?: true;
    shortTime?: true;
    longTime?: true;
    shortDate?: true;
    longDate?: true;
    dayOfWeek?: true;
    offset: int;
    length: int;
    date: int;
    CONSTRUCTOR_ID: 2420819911;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityFormattedDate';

    static fromReader(reader: Reader): MessageEntityFormattedDate;
  }
  export class MessageEntityDiffInsert extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 1903653142;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityDiffInsert';

    static fromReader(reader: Reader): MessageEntityDiffInsert;
  }
  export class MessageEntityDiffReplace extends VirtualClass<{
    offset: int;
    length: int;
    oldText: string;
  }> {
    offset: int;
    length: int;
    oldText: string;
    CONSTRUCTOR_ID: 3334596007;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityDiffReplace';

    static fromReader(reader: Reader): MessageEntityDiffReplace;
  }
  export class MessageEntityDiffDelete extends VirtualClass<{
    offset: int;
    length: int;
  }> {
    offset: int;
    length: int;
    CONSTRUCTOR_ID: 106086853;
    SUBCLASS_OF_ID: 3479443932;
    className: 'MessageEntityDiffDelete';

    static fromReader(reader: Reader): MessageEntityDiffDelete;
  }
  export class InputChannelEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4002160262;
    SUBCLASS_OF_ID: 1089602301;
    className: 'InputChannelEmpty';

    static fromReader(reader: Reader): InputChannelEmpty;
  }
  export class InputChannel extends VirtualClass<{
    channelId: long;
    accessHash: long;
  }> {
    channelId: long;
    accessHash: long;
    CONSTRUCTOR_ID: 4082822184;
    SUBCLASS_OF_ID: 1089602301;
    className: 'InputChannel';

    static fromReader(reader: Reader): InputChannel;
  }
  export class InputChannelFromMessage extends VirtualClass<{
    peer: Api.TypeInputPeer;
    msgId: int;
    channelId: long;
  }> {
    peer: Api.TypeInputPeer;
    msgId: int;
    channelId: long;
    CONSTRUCTOR_ID: 1536380829;
    SUBCLASS_OF_ID: 1089602301;
    className: 'InputChannelFromMessage';

    static fromReader(reader: Reader): InputChannelFromMessage;
  }
  export class MessageRange extends VirtualClass<{
    minId: int;
    maxId: int;
  }> {
    minId: int;
    maxId: int;
    CONSTRUCTOR_ID: 182649427;
    SUBCLASS_OF_ID: 3200730487;
    className: 'MessageRange';

    static fromReader(reader: Reader): MessageRange;
  }
  export class ChannelMessagesFilterEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2496933607;
    SUBCLASS_OF_ID: 322136662;
    className: 'ChannelMessagesFilterEmpty';

    static fromReader(reader: Reader): ChannelMessagesFilterEmpty;
  }
  export class ChannelMessagesFilter extends VirtualClass<{
    // flags: Api.Type;
    excludeNewMessages?: true;
    ranges: Api.TypeMessageRange[];
  }> {
    // flags: Api.Type;
    excludeNewMessages?: true;
    ranges: Api.TypeMessageRange[];
    CONSTRUCTOR_ID: 3447183703;
    SUBCLASS_OF_ID: 322136662;
    className: 'ChannelMessagesFilter';

    static fromReader(reader: Reader): ChannelMessagesFilter;
  }
  export class ChannelParticipant extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    date: int;
    subscriptionUntilDate?: int;
    rank?: string;
  }> {
    // flags: Api.Type;
    userId: long;
    date: int;
    subscriptionUntilDate?: int;
    rank?: string;
    CONSTRUCTOR_ID: 466961494;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipant';

    static fromReader(reader: Reader): ChannelParticipant;
  }
  export class ChannelParticipantSelf extends VirtualClass<{
    // flags: Api.Type;
    viaRequest?: true;
    userId: long;
    inviterId: long;
    date: int;
    subscriptionUntilDate?: int;
    rank?: string;
  }> {
    // flags: Api.Type;
    viaRequest?: true;
    userId: long;
    inviterId: long;
    date: int;
    subscriptionUntilDate?: int;
    rank?: string;
    CONSTRUCTOR_ID: 2840037914;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipantSelf';

    static fromReader(reader: Reader): ChannelParticipantSelf;
  }
  export class ChannelParticipantCreator extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    adminRights: Api.TypeChatAdminRights;
    rank?: string;
  }> {
    // flags: Api.Type;
    userId: long;
    adminRights: Api.TypeChatAdminRights;
    rank?: string;
    CONSTRUCTOR_ID: 803602899;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipantCreator';

    static fromReader(reader: Reader): ChannelParticipantCreator;
  }
  export class ChannelParticipantAdmin extends VirtualClass<{
    // flags: Api.Type;
    canEdit?: true;
    self?: true;
    userId: long;
    inviterId?: long;
    promotedBy: long;
    date: int;
    adminRights: Api.TypeChatAdminRights;
    rank?: string;
  }> {
    // flags: Api.Type;
    canEdit?: true;
    self?: true;
    userId: long;
    inviterId?: long;
    promotedBy: long;
    date: int;
    adminRights: Api.TypeChatAdminRights;
    rank?: string;
    CONSTRUCTOR_ID: 885242707;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipantAdmin';

    static fromReader(reader: Reader): ChannelParticipantAdmin;
  }
  export class ChannelParticipantBanned extends VirtualClass<{
    // flags: Api.Type;
    left?: true;
    peer: Api.TypePeer;
    kickedBy: long;
    date: int;
    bannedRights: Api.TypeChatBannedRights;
    rank?: string;
  }> {
    // flags: Api.Type;
    left?: true;
    peer: Api.TypePeer;
    kickedBy: long;
    date: int;
    bannedRights: Api.TypeChatBannedRights;
    rank?: string;
    CONSTRUCTOR_ID: 3589320081;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipantBanned';

    static fromReader(reader: Reader): ChannelParticipantBanned;
  }
  export class ChannelParticipantLeft extends VirtualClass<{
    peer: Api.TypePeer;
  }> {
    peer: Api.TypePeer;
    CONSTRUCTOR_ID: 453242886;
    SUBCLASS_OF_ID: 3653762072;
    className: 'ChannelParticipantLeft';

    static fromReader(reader: Reader): ChannelParticipantLeft;
  }
  export class ChannelParticipantsRecent extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3728686201;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsRecent';

    static fromReader(reader: Reader): ChannelParticipantsRecent;
  }
  export class ChannelParticipantsAdmins extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3026225513;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsAdmins';

    static fromReader(reader: Reader): ChannelParticipantsAdmins;
  }
  export class ChannelParticipantsKicked extends VirtualClass<{
    q: string;
  }> {
    q: string;
    CONSTRUCTOR_ID: 2746567045;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsKicked';

    static fromReader(reader: Reader): ChannelParticipantsKicked;
  }
  export class ChannelParticipantsBots extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2966521435;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsBots';

    static fromReader(reader: Reader): ChannelParticipantsBots;
  }
  export class ChannelParticipantsBanned extends VirtualClass<{
    q: string;
  }> {
    q: string;
    CONSTRUCTOR_ID: 338142689;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsBanned';

    static fromReader(reader: Reader): ChannelParticipantsBanned;
  }
  export class ChannelParticipantsSearch extends VirtualClass<{
    q: string;
  }> {
    q: string;
    CONSTRUCTOR_ID: 106343499;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsSearch';

    static fromReader(reader: Reader): ChannelParticipantsSearch;
  }
  export class ChannelParticipantsContacts extends VirtualClass<{
    q: string;
  }> {
    q: string;
    CONSTRUCTOR_ID: 3144345741;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsContacts';

    static fromReader(reader: Reader): ChannelParticipantsContacts;
  }
  export class ChannelParticipantsMentions extends VirtualClass<{
    // flags: Api.Type;
    q?: string;
    topMsgId?: int;
  } | void> {
    // flags: Api.Type;
    q?: string;
    topMsgId?: int;
    CONSTRUCTOR_ID: 3763035371;
    SUBCLASS_OF_ID: 3209570131;
    className: 'ChannelParticipantsMentions';

    static fromReader(reader: Reader): ChannelParticipantsMentions;
  }
  export class InputBotInlineMessageMediaAuto extends VirtualClass<{
    // flags: Api.Type;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 864077702;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaAuto';

    static fromReader(reader: Reader): InputBotInlineMessageMediaAuto;
  }
  export class InputBotInlineMessageText extends VirtualClass<{
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 1036876423;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageText';

    static fromReader(reader: Reader): InputBotInlineMessageText;
  }
  export class InputBotInlineMessageMediaGeo extends VirtualClass<{
    // flags: Api.Type;
    geoPoint: Api.TypeInputGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    geoPoint: Api.TypeInputGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 2526190213;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaGeo';

    static fromReader(reader: Reader): InputBotInlineMessageMediaGeo;
  }
  export class InputBotInlineMessageMediaVenue extends VirtualClass<{
    // flags: Api.Type;
    geoPoint: Api.TypeInputGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    geoPoint: Api.TypeInputGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 1098628881;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaVenue';

    static fromReader(reader: Reader): InputBotInlineMessageMediaVenue;
  }
  export class InputBotInlineMessageMediaContact extends VirtualClass<{
    // flags: Api.Type;
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 2800599037;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaContact';

    static fromReader(reader: Reader): InputBotInlineMessageMediaContact;
  }
  export class InputBotInlineMessageGame extends VirtualClass<{
    // flags: Api.Type;
    replyMarkup?: Api.TypeReplyMarkup;
  } | void> {
    // flags: Api.Type;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 1262639204;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageGame';

    static fromReader(reader: Reader): InputBotInlineMessageGame;
  }
  export class InputBotInlineMessageMediaInvoice extends VirtualClass<{
    // flags: Api.Type;
    title: string;
    description: string;
    photo?: Api.TypeInputWebDocument;
    invoice: Api.TypeInvoice;
    payload: bytes;
    provider: string;
    providerData: Api.TypeDataJSON;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    title: string;
    description: string;
    photo?: Api.TypeInputWebDocument;
    invoice: Api.TypeInvoice;
    payload: bytes;
    provider: string;
    providerData: Api.TypeDataJSON;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 3622273573;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaInvoice';

    static fromReader(reader: Reader): InputBotInlineMessageMediaInvoice;
  }
  export class InputBotInlineMessageMediaWebPage extends VirtualClass<{
    // flags: Api.Type;
    invertMedia?: true;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    optional?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    url: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    invertMedia?: true;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    optional?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    url: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 3185362192;
    SUBCLASS_OF_ID: 1408974864;
    className: 'InputBotInlineMessageMediaWebPage';

    static fromReader(reader: Reader): InputBotInlineMessageMediaWebPage;
  }
  export class InputBotInlineResult extends VirtualClass<{
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    url?: string;
    thumb?: Api.TypeInputWebDocument;
    content?: Api.TypeInputWebDocument;
    sendMessage: Api.TypeInputBotInlineMessage;
  }> {
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    url?: string;
    thumb?: Api.TypeInputWebDocument;
    content?: Api.TypeInputWebDocument;
    sendMessage: Api.TypeInputBotInlineMessage;
    CONSTRUCTOR_ID: 2294256409;
    SUBCLASS_OF_ID: 2158273502;
    className: 'InputBotInlineResult';

    static fromReader(reader: Reader): InputBotInlineResult;
  }
  export class InputBotInlineResultPhoto extends VirtualClass<{
    id: string;
    type: string;
    photo: Api.TypeInputPhoto;
    sendMessage: Api.TypeInputBotInlineMessage;
  }> {
    id: string;
    type: string;
    photo: Api.TypeInputPhoto;
    sendMessage: Api.TypeInputBotInlineMessage;
    CONSTRUCTOR_ID: 2832753831;
    SUBCLASS_OF_ID: 2158273502;
    className: 'InputBotInlineResultPhoto';

    static fromReader(reader: Reader): InputBotInlineResultPhoto;
  }
  export class InputBotInlineResultDocument extends VirtualClass<{
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    document: Api.TypeInputDocument;
    sendMessage: Api.TypeInputBotInlineMessage;
  }> {
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    document: Api.TypeInputDocument;
    sendMessage: Api.TypeInputBotInlineMessage;
    CONSTRUCTOR_ID: 4294507972;
    SUBCLASS_OF_ID: 2158273502;
    className: 'InputBotInlineResultDocument';

    static fromReader(reader: Reader): InputBotInlineResultDocument;
  }
  export class InputBotInlineResultGame extends VirtualClass<{
    id: string;
    shortName: string;
    sendMessage: Api.TypeInputBotInlineMessage;
  }> {
    id: string;
    shortName: string;
    sendMessage: Api.TypeInputBotInlineMessage;
    CONSTRUCTOR_ID: 1336154098;
    SUBCLASS_OF_ID: 2158273502;
    className: 'InputBotInlineResultGame';

    static fromReader(reader: Reader): InputBotInlineResultGame;
  }
  export class BotInlineMessageMediaAuto extends VirtualClass<{
    // flags: Api.Type;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 1984755728;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaAuto';

    static fromReader(reader: Reader): BotInlineMessageMediaAuto;
  }
  export class BotInlineMessageText extends VirtualClass<{
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 2357159394;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageText';

    static fromReader(reader: Reader): BotInlineMessageText;
  }
  export class BotInlineMessageMediaGeo extends VirtualClass<{
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    heading?: int;
    period?: int;
    proximityNotificationRadius?: int;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 85477117;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaGeo';

    static fromReader(reader: Reader): BotInlineMessageMediaGeo;
  }
  export class BotInlineMessageMediaVenue extends VirtualClass<{
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 2324063644;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaVenue';

    static fromReader(reader: Reader): BotInlineMessageMediaVenue;
  }
  export class BotInlineMessageMediaContact extends VirtualClass<{
    // flags: Api.Type;
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    phoneNumber: string;
    firstName: string;
    lastName: string;
    vcard: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 416402882;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaContact';

    static fromReader(reader: Reader): BotInlineMessageMediaContact;
  }
  export class BotInlineMessageMediaInvoice extends VirtualClass<{
    // flags: Api.Type;
    shippingAddressRequested?: true;
    test?: true;
    title: string;
    description: string;
    photo?: Api.TypeWebDocument;
    currency: string;
    totalAmount: long;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    shippingAddressRequested?: true;
    test?: true;
    title: string;
    description: string;
    photo?: Api.TypeWebDocument;
    currency: string;
    totalAmount: long;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 894081801;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaInvoice';

    static fromReader(reader: Reader): BotInlineMessageMediaInvoice;
  }
  export class BotInlineMessageMediaWebPage extends VirtualClass<{
    // flags: Api.Type;
    invertMedia?: true;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    manual?: true;
    safe?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    url: string;
    replyMarkup?: Api.TypeReplyMarkup;
  }> {
    // flags: Api.Type;
    invertMedia?: true;
    forceLargeMedia?: true;
    forceSmallMedia?: true;
    manual?: true;
    safe?: true;
    message: string;
    entities?: Api.TypeMessageEntity[];
    url: string;
    replyMarkup?: Api.TypeReplyMarkup;
    CONSTRUCTOR_ID: 2157631910;
    SUBCLASS_OF_ID: 3297841032;
    className: 'BotInlineMessageMediaWebPage';

    static fromReader(reader: Reader): BotInlineMessageMediaWebPage;
  }
  export class BotInlineResult extends VirtualClass<{
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    url?: string;
    thumb?: Api.TypeWebDocument;
    content?: Api.TypeWebDocument;
    sendMessage: Api.TypeBotInlineMessage;
  }> {
    // flags: Api.Type;
    id: string;
    type: string;
    title?: string;
    description?: string;
    url?: string;
    thumb?: Api.TypeWebDocument;
    content?: Api.TypeWebDocument;
    sendMessage: Api.TypeBotInlineMessage;
    CONSTRUCTOR_ID: 295067450;
    SUBCLASS_OF_ID: 942846933;
    className: 'BotInlineResult';

    static fromReader(reader: Reader): BotInlineResult;
  }
  export class BotInlineMediaResult extends VirtualClass<{
    // flags: Api.Type;
    id: string;
    type: string;
    photo?: Api.TypePhoto;
    document?: Api.TypeDocument;
    title?: string;
    description?: string;
    sendMessage: Api.TypeBotInlineMessage;
  }> {
    // flags: Api.Type;
    id: string;
    type: string;
    photo?: Api.TypePhoto;
    document?: Api.TypeDocument;
    title?: string;
    description?: string;
    sendMessage: Api.TypeBotInlineMessage;
    CONSTRUCTOR_ID: 400266251;
    SUBCLASS_OF_ID: 942846933;
    className: 'BotInlineMediaResult';

    static fromReader(reader: Reader): BotInlineMediaResult;
  }
  export class ExportedMessageLink extends VirtualClass<{
    link: string;
    html: string;
  }> {
    link: string;
    html: string;
    CONSTRUCTOR_ID: 1571494644;
    SUBCLASS_OF_ID: 3739632844;
    className: 'ExportedMessageLink';

    static fromReader(reader: Reader): ExportedMessageLink;
  }
  export class MessageFwdHeader extends VirtualClass<{
    // flags: Api.Type;
    imported?: true;
    savedOut?: true;
    fromId?: Api.TypePeer;
    fromName?: string;
    date: int;
    channelPost?: int;
    postAuthor?: string;
    savedFromPeer?: Api.TypePeer;
    savedFromMsgId?: int;
    savedFromId?: Api.TypePeer;
    savedFromName?: string;
    savedDate?: int;
    psaType?: string;
  }> {
    // flags: Api.Type;
    imported?: true;
    savedOut?: true;
    fromId?: Api.TypePeer;
    fromName?: string;
    date: int;
    channelPost?: int;
    postAuthor?: string;
    savedFromPeer?: Api.TypePeer;
    savedFromMsgId?: int;
    savedFromId?: Api.TypePeer;
    savedFromName?: string;
    savedDate?: int;
    psaType?: string;
    CONSTRUCTOR_ID: 1313731771;
    SUBCLASS_OF_ID: 2049468420;
    className: 'MessageFwdHeader';

    static fromReader(reader: Reader): MessageFwdHeader;
  }
  export class InputBotInlineMessageID extends VirtualClass<{
    dcId: int;
    id: long;
    accessHash: long;
  }> {
    dcId: int;
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 2299280777;
    SUBCLASS_OF_ID: 768434944;
    className: 'InputBotInlineMessageID';

    static fromReader(reader: Reader): InputBotInlineMessageID;
  }
  export class InputBotInlineMessageID64 extends VirtualClass<{
    dcId: int;
    ownerId: long;
    id: int;
    accessHash: long;
  }> {
    dcId: int;
    ownerId: long;
    id: int;
    accessHash: long;
    CONSTRUCTOR_ID: 3067680215;
    SUBCLASS_OF_ID: 768434944;
    className: 'InputBotInlineMessageID64';

    static fromReader(reader: Reader): InputBotInlineMessageID64;
  }
  export class InlineBotSwitchPM extends VirtualClass<{
    text: string;
    startParam: string;
  }> {
    text: string;
    startParam: string;
    CONSTRUCTOR_ID: 1008755359;
    SUBCLASS_OF_ID: 2192701243;
    className: 'InlineBotSwitchPM';

    static fromReader(reader: Reader): InlineBotSwitchPM;
  }
  export class TopPeer extends VirtualClass<{
    peer: Api.TypePeer;
    rating: double;
  }> {
    peer: Api.TypePeer;
    rating: double;
    CONSTRUCTOR_ID: 3989684315;
    SUBCLASS_OF_ID: 1763100161;
    className: 'TopPeer';

    static fromReader(reader: Reader): TopPeer;
  }
  export class TopPeerCategoryBotsPM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2875595611;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryBotsPM';

    static fromReader(reader: Reader): TopPeerCategoryBotsPM;
  }
  export class TopPeerCategoryBotsInline extends VirtualClass<void> {
    CONSTRUCTOR_ID: 344356834;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryBotsInline';

    static fromReader(reader: Reader): TopPeerCategoryBotsInline;
  }
  export class TopPeerCategoryCorrespondents extends VirtualClass<void> {
    CONSTRUCTOR_ID: 104314861;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryCorrespondents';

    static fromReader(reader: Reader): TopPeerCategoryCorrespondents;
  }
  export class TopPeerCategoryGroups extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3172442442;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryGroups';

    static fromReader(reader: Reader): TopPeerCategoryGroups;
  }
  export class TopPeerCategoryChannels extends VirtualClass<void> {
    CONSTRUCTOR_ID: 371037736;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryChannels';

    static fromReader(reader: Reader): TopPeerCategoryChannels;
  }
  export class TopPeerCategoryPhoneCalls extends VirtualClass<void> {
    CONSTRUCTOR_ID: 511092620;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryPhoneCalls';

    static fromReader(reader: Reader): TopPeerCategoryPhoneCalls;
  }
  export class TopPeerCategoryForwardUsers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2822794409;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryForwardUsers';

    static fromReader(reader: Reader): TopPeerCategoryForwardUsers;
  }
  export class TopPeerCategoryForwardChats extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4226728176;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryForwardChats';

    static fromReader(reader: Reader): TopPeerCategoryForwardChats;
  }
  export class TopPeerCategoryBotsApp extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4255022060;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryBotsApp';

    static fromReader(reader: Reader): TopPeerCategoryBotsApp;
  }
  export class TopPeerCategoryBotsGuestChat extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1814361053;
    SUBCLASS_OF_ID: 3723502850;
    className: 'TopPeerCategoryBotsGuestChat';

    static fromReader(reader: Reader): TopPeerCategoryBotsGuestChat;
  }
  export class TopPeerCategoryPeers extends VirtualClass<{
    category: Api.TypeTopPeerCategory;
    count: int;
    peers: Api.TypeTopPeer[];
  }> {
    category: Api.TypeTopPeerCategory;
    count: int;
    peers: Api.TypeTopPeer[];
    CONSTRUCTOR_ID: 4219683473;
    SUBCLASS_OF_ID: 78563632;
    className: 'TopPeerCategoryPeers';

    static fromReader(reader: Reader): TopPeerCategoryPeers;
  }
  export class DraftMessageEmpty extends VirtualClass<{
    // flags: Api.Type;
    date?: int;
  } | void> {
    // flags: Api.Type;
    date?: int;
    CONSTRUCTOR_ID: 453805082;
    SUBCLASS_OF_ID: 869564229;
    className: 'DraftMessageEmpty';

    static fromReader(reader: Reader): DraftMessageEmpty;
  }
  export class DraftMessage extends VirtualClass<{
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    replyTo?: Api.TypeInputReplyTo;
    message: string;
    entities?: Api.TypeMessageEntity[];
    media?: Api.TypeInputMedia;
    date: int;
    effect?: long;
    suggestedPost?: Api.TypeSuggestedPost;
  }> {
    // flags: Api.Type;
    noWebpage?: true;
    invertMedia?: true;
    replyTo?: Api.TypeInputReplyTo;
    message: string;
    entities?: Api.TypeMessageEntity[];
    media?: Api.TypeInputMedia;
    date: int;
    effect?: long;
    suggestedPost?: Api.TypeSuggestedPost;
    CONSTRUCTOR_ID: 2531960299;
    SUBCLASS_OF_ID: 869564229;
    className: 'DraftMessage';

    static fromReader(reader: Reader): DraftMessage;
  }
  export class StickerSetCovered extends VirtualClass<{
    set: Api.TypeStickerSet;
    cover: Api.TypeDocument;
  }> {
    set: Api.TypeStickerSet;
    cover: Api.TypeDocument;
    CONSTRUCTOR_ID: 1678812626;
    SUBCLASS_OF_ID: 2139546853;
    className: 'StickerSetCovered';

    static fromReader(reader: Reader): StickerSetCovered;
  }
  export class StickerSetMultiCovered extends VirtualClass<{
    set: Api.TypeStickerSet;
    covers: Api.TypeDocument[];
  }> {
    set: Api.TypeStickerSet;
    covers: Api.TypeDocument[];
    CONSTRUCTOR_ID: 872932635;
    SUBCLASS_OF_ID: 2139546853;
    className: 'StickerSetMultiCovered';

    static fromReader(reader: Reader): StickerSetMultiCovered;
  }
  export class StickerSetFullCovered extends VirtualClass<{
    set: Api.TypeStickerSet;
    packs: Api.TypeStickerPack[];
    keywords: Api.TypeStickerKeyword[];
    documents: Api.TypeDocument[];
  }> {
    set: Api.TypeStickerSet;
    packs: Api.TypeStickerPack[];
    keywords: Api.TypeStickerKeyword[];
    documents: Api.TypeDocument[];
    CONSTRUCTOR_ID: 1087454222;
    SUBCLASS_OF_ID: 2139546853;
    className: 'StickerSetFullCovered';

    static fromReader(reader: Reader): StickerSetFullCovered;
  }
  export class StickerSetNoCovered extends VirtualClass<{
    set: Api.TypeStickerSet;
  }> {
    set: Api.TypeStickerSet;
    CONSTRUCTOR_ID: 2008112412;
    SUBCLASS_OF_ID: 2139546853;
    className: 'StickerSetNoCovered';

    static fromReader(reader: Reader): StickerSetNoCovered;
  }
  export class MaskCoords extends VirtualClass<{
    n: int;
    x: double;
    y: double;
    zoom: double;
  }> {
    n: int;
    x: double;
    y: double;
    zoom: double;
    CONSTRUCTOR_ID: 2933316530;
    SUBCLASS_OF_ID: 112964349;
    className: 'MaskCoords';

    static fromReader(reader: Reader): MaskCoords;
  }
  export class InputStickeredMediaPhoto extends VirtualClass<{
    id: Api.TypeInputPhoto;
  }> {
    id: Api.TypeInputPhoto;
    CONSTRUCTOR_ID: 1251549527;
    SUBCLASS_OF_ID: 1363597726;
    className: 'InputStickeredMediaPhoto';

    static fromReader(reader: Reader): InputStickeredMediaPhoto;
  }
  export class InputStickeredMediaDocument extends VirtualClass<{
    id: Api.TypeInputDocument;
  }> {
    id: Api.TypeInputDocument;
    CONSTRUCTOR_ID: 70813275;
    SUBCLASS_OF_ID: 1363597726;
    className: 'InputStickeredMediaDocument';

    static fromReader(reader: Reader): InputStickeredMediaDocument;
  }
  export class Game extends VirtualClass<{
    // flags: Api.Type;
    id: long;
    accessHash: long;
    shortName: string;
    title: string;
    description: string;
    photo: Api.TypePhoto;
    document?: Api.TypeDocument;
  }> {
    // flags: Api.Type;
    id: long;
    accessHash: long;
    shortName: string;
    title: string;
    description: string;
    photo: Api.TypePhoto;
    document?: Api.TypeDocument;
    CONSTRUCTOR_ID: 3187238203;
    SUBCLASS_OF_ID: 2199494322;
    className: 'Game';

    static fromReader(reader: Reader): Game;
  }
  export class InputGameID extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 53231223;
    SUBCLASS_OF_ID: 1221679235;
    className: 'InputGameID';

    static fromReader(reader: Reader): InputGameID;
  }
  export class InputGameShortName extends VirtualClass<{
    botId: Api.TypeInputUser;
    shortName: string;
  }> {
    botId: Api.TypeInputUser;
    shortName: string;
    CONSTRUCTOR_ID: 3274827786;
    SUBCLASS_OF_ID: 1221679235;
    className: 'InputGameShortName';

    static fromReader(reader: Reader): InputGameShortName;
  }
  export class HighScore extends VirtualClass<{
    pos: int;
    userId: long;
    score: int;
  }> {
    pos: int;
    userId: long;
    score: int;
    CONSTRUCTOR_ID: 1940093419;
    SUBCLASS_OF_ID: 3542818357;
    className: 'HighScore';

    static fromReader(reader: Reader): HighScore;
  }
  export class TextEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3695018575;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextEmpty';

    static fromReader(reader: Reader): TextEmpty;
  }
  export class TextPlain extends VirtualClass<{
    text: string;
  }> {
    text: string;
    CONSTRUCTOR_ID: 1950782688;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextPlain';

    static fromReader(reader: Reader): TextPlain;
  }
  export class TextBold extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1730456516;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextBold';

    static fromReader(reader: Reader): TextBold;
  }
  export class TextItalic extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3641877916;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextItalic';

    static fromReader(reader: Reader): TextItalic;
  }
  export class TextUnderline extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3240501956;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextUnderline';

    static fromReader(reader: Reader): TextUnderline;
  }
  export class TextStrike extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 2616769429;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextStrike';

    static fromReader(reader: Reader): TextStrike;
  }
  export class TextFixed extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1816074681;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextFixed';

    static fromReader(reader: Reader): TextFixed;
  }
  export class TextUrl extends VirtualClass<{
    text: Api.TypeRichText;
    url: string;
    webpageId: long;
  }> {
    text: Api.TypeRichText;
    url: string;
    webpageId: long;
    CONSTRUCTOR_ID: 1009288385;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextUrl';

    static fromReader(reader: Reader): TextUrl;
  }
  export class TextEmail extends VirtualClass<{
    text: Api.TypeRichText;
    email: string;
  }> {
    text: Api.TypeRichText;
    email: string;
    CONSTRUCTOR_ID: 3730443734;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextEmail';

    static fromReader(reader: Reader): TextEmail;
  }
  export class TextConcat extends VirtualClass<{
    texts: Api.TypeRichText[];
  }> {
    texts: Api.TypeRichText[];
    CONSTRUCTOR_ID: 2120376535;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextConcat';

    static fromReader(reader: Reader): TextConcat;
  }
  export class TextSubscript extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3983181060;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextSubscript';

    static fromReader(reader: Reader): TextSubscript;
  }
  export class TextSuperscript extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3355139585;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextSuperscript';

    static fromReader(reader: Reader): TextSuperscript;
  }
  export class TextMarked extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 55281185;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextMarked';

    static fromReader(reader: Reader): TextMarked;
  }
  export class TextPhone extends VirtualClass<{
    text: Api.TypeRichText;
    phone: string;
  }> {
    text: Api.TypeRichText;
    phone: string;
    CONSTRUCTOR_ID: 483104362;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextPhone';

    static fromReader(reader: Reader): TextPhone;
  }
  export class TextImage extends VirtualClass<{
    documentId: long;
    w: int;
    h: int;
  }> {
    documentId: long;
    w: int;
    h: int;
    CONSTRUCTOR_ID: 136105807;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextImage';

    static fromReader(reader: Reader): TextImage;
  }
  export class TextAnchor extends VirtualClass<{
    text: Api.TypeRichText;
    name: string;
  }> {
    text: Api.TypeRichText;
    name: string;
    CONSTRUCTOR_ID: 894777186;
    SUBCLASS_OF_ID: 4056986745;
    className: 'TextAnchor';

    static fromReader(reader: Reader): TextAnchor;
  }
  export class PageBlockUnsupported extends VirtualClass<void> {
    CONSTRUCTOR_ID: 324435594;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockUnsupported';

    static fromReader(reader: Reader): PageBlockUnsupported;
  }
  export class PageBlockTitle extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1890305021;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockTitle';

    static fromReader(reader: Reader): PageBlockTitle;
  }
  export class PageBlockSubtitle extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 2415565343;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockSubtitle';

    static fromReader(reader: Reader): PageBlockSubtitle;
  }
  export class PageBlockAuthorDate extends VirtualClass<{
    author: Api.TypeRichText;
    publishedDate: int;
  }> {
    author: Api.TypeRichText;
    publishedDate: int;
    CONSTRUCTOR_ID: 3132089824;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockAuthorDate';

    static fromReader(reader: Reader): PageBlockAuthorDate;
  }
  export class PageBlockHeader extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3218105580;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockHeader';

    static fromReader(reader: Reader): PageBlockHeader;
  }
  export class PageBlockSubheader extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 4046173921;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockSubheader';

    static fromReader(reader: Reader): PageBlockSubheader;
  }
  export class PageBlockParagraph extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1182402406;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockParagraph';

    static fromReader(reader: Reader): PageBlockParagraph;
  }
  export class PageBlockPreformatted extends VirtualClass<{
    text: Api.TypeRichText;
    language: string;
  }> {
    text: Api.TypeRichText;
    language: string;
    CONSTRUCTOR_ID: 3228621118;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockPreformatted';

    static fromReader(reader: Reader): PageBlockPreformatted;
  }
  export class PageBlockFooter extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1216809369;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockFooter';

    static fromReader(reader: Reader): PageBlockFooter;
  }
  export class PageBlockDivider extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3676352904;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockDivider';

    static fromReader(reader: Reader): PageBlockDivider;
  }
  export class PageBlockAnchor extends VirtualClass<{
    name: string;
  }> {
    name: string;
    CONSTRUCTOR_ID: 3456972720;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockAnchor';

    static fromReader(reader: Reader): PageBlockAnchor;
  }
  export class PageBlockList extends VirtualClass<{
    items: Api.TypePageListItem[];
  }> {
    items: Api.TypePageListItem[];
    CONSTRUCTOR_ID: 3840442385;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockList';

    static fromReader(reader: Reader): PageBlockList;
  }
  export class PageBlockBlockquote extends VirtualClass<{
    text: Api.TypeRichText;
    caption: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    caption: Api.TypeRichText;
    CONSTRUCTOR_ID: 641563686;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockBlockquote';

    static fromReader(reader: Reader): PageBlockBlockquote;
  }
  export class PageBlockPullquote extends VirtualClass<{
    text: Api.TypeRichText;
    caption: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    caption: Api.TypeRichText;
    CONSTRUCTOR_ID: 1329878739;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockPullquote';

    static fromReader(reader: Reader): PageBlockPullquote;
  }
  export class PageBlockPhoto extends VirtualClass<{
    // flags: Api.Type;
    photoId: long;
    caption: Api.TypePageCaption;
    url?: string;
    webpageId?: long;
  }> {
    // flags: Api.Type;
    photoId: long;
    caption: Api.TypePageCaption;
    url?: string;
    webpageId?: long;
    CONSTRUCTOR_ID: 391759200;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockPhoto';

    static fromReader(reader: Reader): PageBlockPhoto;
  }
  export class PageBlockVideo extends VirtualClass<{
    // flags: Api.Type;
    autoplay?: true;
    loop?: true;
    videoId: long;
    caption: Api.TypePageCaption;
  }> {
    // flags: Api.Type;
    autoplay?: true;
    loop?: true;
    videoId: long;
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 2089805750;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockVideo';

    static fromReader(reader: Reader): PageBlockVideo;
  }
  export class PageBlockCover extends VirtualClass<{
    cover: Api.TypePageBlock;
  }> {
    cover: Api.TypePageBlock;
    CONSTRUCTOR_ID: 972174080;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockCover';

    static fromReader(reader: Reader): PageBlockCover;
  }
  export class PageBlockEmbed extends VirtualClass<{
    // flags: Api.Type;
    fullWidth?: true;
    allowScrolling?: true;
    url?: string;
    html?: string;
    posterPhotoId?: long;
    w?: int;
    h?: int;
    caption: Api.TypePageCaption;
  }> {
    // flags: Api.Type;
    fullWidth?: true;
    allowScrolling?: true;
    url?: string;
    html?: string;
    posterPhotoId?: long;
    w?: int;
    h?: int;
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 2826014149;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockEmbed';

    static fromReader(reader: Reader): PageBlockEmbed;
  }
  export class PageBlockEmbedPost extends VirtualClass<{
    url: string;
    webpageId: long;
    authorPhotoId: long;
    author: string;
    date: int;
    blocks: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
  }> {
    url: string;
    webpageId: long;
    authorPhotoId: long;
    author: string;
    date: int;
    blocks: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 4065961995;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockEmbedPost';

    static fromReader(reader: Reader): PageBlockEmbedPost;
  }
  export class PageBlockCollage extends VirtualClass<{
    items: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
  }> {
    items: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 1705048653;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockCollage';

    static fromReader(reader: Reader): PageBlockCollage;
  }
  export class PageBlockSlideshow extends VirtualClass<{
    items: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
  }> {
    items: Api.TypePageBlock[];
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 52401552;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockSlideshow';

    static fromReader(reader: Reader): PageBlockSlideshow;
  }
  export class PageBlockChannel extends VirtualClass<{
    channel: Api.TypeChat;
  }> {
    channel: Api.TypeChat;
    CONSTRUCTOR_ID: 4011282869;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockChannel';

    static fromReader(reader: Reader): PageBlockChannel;
  }
  export class PageBlockAudio extends VirtualClass<{
    audioId: long;
    caption: Api.TypePageCaption;
  }> {
    audioId: long;
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 2151899626;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockAudio';

    static fromReader(reader: Reader): PageBlockAudio;
  }
  export class PageBlockKicker extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 504660880;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockKicker';

    static fromReader(reader: Reader): PageBlockKicker;
  }
  export class PageBlockTable extends VirtualClass<{
    // flags: Api.Type;
    bordered?: true;
    striped?: true;
    title: Api.TypeRichText;
    rows: Api.TypePageTableRow[];
  }> {
    // flags: Api.Type;
    bordered?: true;
    striped?: true;
    title: Api.TypeRichText;
    rows: Api.TypePageTableRow[];
    CONSTRUCTOR_ID: 3209554562;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockTable';

    static fromReader(reader: Reader): PageBlockTable;
  }
  export class PageBlockOrderedList extends VirtualClass<{
    items: Api.TypePageListOrderedItem[];
  }> {
    items: Api.TypePageListOrderedItem[];
    CONSTRUCTOR_ID: 2592793057;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockOrderedList';

    static fromReader(reader: Reader): PageBlockOrderedList;
  }
  export class PageBlockDetails extends VirtualClass<{
    // flags: Api.Type;
    open?: true;
    blocks: Api.TypePageBlock[];
    title: Api.TypeRichText;
  }> {
    // flags: Api.Type;
    open?: true;
    blocks: Api.TypePageBlock[];
    title: Api.TypeRichText;
    CONSTRUCTOR_ID: 1987480557;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockDetails';

    static fromReader(reader: Reader): PageBlockDetails;
  }
  export class PageBlockRelatedArticles extends VirtualClass<{
    title: Api.TypeRichText;
    articles: Api.TypePageRelatedArticle[];
  }> {
    title: Api.TypeRichText;
    articles: Api.TypePageRelatedArticle[];
    CONSTRUCTOR_ID: 370236054;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockRelatedArticles';

    static fromReader(reader: Reader): PageBlockRelatedArticles;
  }
  export class PageBlockMap extends VirtualClass<{
    geo: Api.TypeGeoPoint;
    zoom: int;
    w: int;
    h: int;
    caption: Api.TypePageCaption;
  }> {
    geo: Api.TypeGeoPoint;
    zoom: int;
    w: int;
    h: int;
    caption: Api.TypePageCaption;
    CONSTRUCTOR_ID: 2756656886;
    SUBCLASS_OF_ID: 449467972;
    className: 'PageBlockMap';

    static fromReader(reader: Reader): PageBlockMap;
  }
  export class PhoneCallDiscardReasonMissed extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2246320897;
    SUBCLASS_OF_ID: 3634081085;
    className: 'PhoneCallDiscardReasonMissed';

    static fromReader(reader: Reader): PhoneCallDiscardReasonMissed;
  }
  export class PhoneCallDiscardReasonDisconnect extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3767910816;
    SUBCLASS_OF_ID: 3634081085;
    className: 'PhoneCallDiscardReasonDisconnect';

    static fromReader(reader: Reader): PhoneCallDiscardReasonDisconnect;
  }
  export class PhoneCallDiscardReasonHangup extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1471006352;
    SUBCLASS_OF_ID: 3634081085;
    className: 'PhoneCallDiscardReasonHangup';

    static fromReader(reader: Reader): PhoneCallDiscardReasonHangup;
  }
  export class PhoneCallDiscardReasonBusy extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4210550985;
    SUBCLASS_OF_ID: 3634081085;
    className: 'PhoneCallDiscardReasonBusy';

    static fromReader(reader: Reader): PhoneCallDiscardReasonBusy;
  }
  export class PhoneCallDiscardReasonMigrateConferenceCall extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 2679894519;
    SUBCLASS_OF_ID: 3634081085;
    className: 'PhoneCallDiscardReasonMigrateConferenceCall';

    static fromReader(reader: Reader): PhoneCallDiscardReasonMigrateConferenceCall;
  }
  export class DataJSON extends VirtualClass<{
    data: string;
  }> {
    data: string;
    CONSTRUCTOR_ID: 2104790276;
    SUBCLASS_OF_ID: 2902676200;
    className: 'DataJSON';

    static fromReader(reader: Reader): DataJSON;
  }
  export class LabeledPrice extends VirtualClass<{
    label: string;
    amount: long;
  }> {
    label: string;
    amount: long;
    CONSTRUCTOR_ID: 3408489464;
    SUBCLASS_OF_ID: 478413946;
    className: 'LabeledPrice';

    static fromReader(reader: Reader): LabeledPrice;
  }
  export class Invoice extends VirtualClass<{
    // flags: Api.Type;
    test?: true;
    nameRequested?: true;
    phoneRequested?: true;
    emailRequested?: true;
    shippingAddressRequested?: true;
    flexible?: true;
    phoneToProvider?: true;
    emailToProvider?: true;
    recurring?: true;
    currency: string;
    prices: Api.TypeLabeledPrice[];
    maxTipAmount?: long;
    suggestedTipAmounts?: long[];
    termsUrl?: string;
    subscriptionPeriod?: int;
  }> {
    // flags: Api.Type;
    test?: true;
    nameRequested?: true;
    phoneRequested?: true;
    emailRequested?: true;
    shippingAddressRequested?: true;
    flexible?: true;
    phoneToProvider?: true;
    emailToProvider?: true;
    recurring?: true;
    currency: string;
    prices: Api.TypeLabeledPrice[];
    maxTipAmount?: long;
    suggestedTipAmounts?: long[];
    termsUrl?: string;
    subscriptionPeriod?: int;
    CONSTRUCTOR_ID: 77522308;
    SUBCLASS_OF_ID: 1608003288;
    className: 'Invoice';

    static fromReader(reader: Reader): Invoice;
  }
  export class PaymentCharge extends VirtualClass<{
    id: string;
    providerChargeId: string;
  }> {
    id: string;
    providerChargeId: string;
    CONSTRUCTOR_ID: 3926049406;
    SUBCLASS_OF_ID: 1019752665;
    className: 'PaymentCharge';

    static fromReader(reader: Reader): PaymentCharge;
  }
  export class PostAddress extends VirtualClass<{
    streetLine1: string;
    streetLine2: string;
    city: string;
    state: string;
    countryIso2: string;
    postCode: string;
  }> {
    streetLine1: string;
    streetLine2: string;
    city: string;
    state: string;
    countryIso2: string;
    postCode: string;
    CONSTRUCTOR_ID: 512535275;
    SUBCLASS_OF_ID: 2373900844;
    className: 'PostAddress';

    static fromReader(reader: Reader): PostAddress;
  }
  export class PaymentRequestedInfo extends VirtualClass<{
    // flags: Api.Type;
    name?: string;
    phone?: string;
    email?: string;
    shippingAddress?: Api.TypePostAddress;
  } | void> {
    // flags: Api.Type;
    name?: string;
    phone?: string;
    email?: string;
    shippingAddress?: Api.TypePostAddress;
    CONSTRUCTOR_ID: 2426158996;
    SUBCLASS_OF_ID: 2377134406;
    className: 'PaymentRequestedInfo';

    static fromReader(reader: Reader): PaymentRequestedInfo;
  }
  export class PaymentSavedCredentialsCard extends VirtualClass<{
    id: string;
    title: string;
  }> {
    id: string;
    title: string;
    CONSTRUCTOR_ID: 3452074527;
    SUBCLASS_OF_ID: 3009576675;
    className: 'PaymentSavedCredentialsCard';

    static fromReader(reader: Reader): PaymentSavedCredentialsCard;
  }
  export class WebDocument extends VirtualClass<{
    url: string;
    accessHash: long;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
  }> {
    url: string;
    accessHash: long;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
    CONSTRUCTOR_ID: 475467473;
    SUBCLASS_OF_ID: 996419604;
    className: 'WebDocument';

    static fromReader(reader: Reader): WebDocument;
  }
  export class WebDocumentNoProxy extends VirtualClass<{
    url: string;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
  }> {
    url: string;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
    CONSTRUCTOR_ID: 4190682310;
    SUBCLASS_OF_ID: 996419604;
    className: 'WebDocumentNoProxy';

    static fromReader(reader: Reader): WebDocumentNoProxy;
  }
  export class InputWebDocument extends VirtualClass<{
    url: string;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
  }> {
    url: string;
    size: int;
    mimeType: string;
    attributes: Api.TypeDocumentAttribute[];
    CONSTRUCTOR_ID: 2616017741;
    SUBCLASS_OF_ID: 2330505542;
    className: 'InputWebDocument';

    static fromReader(reader: Reader): InputWebDocument;
  }
  export class InputWebFileLocation extends VirtualClass<{
    url: string;
    accessHash: long;
  }> {
    url: string;
    accessHash: long;
    CONSTRUCTOR_ID: 3258570374;
    SUBCLASS_OF_ID: 4147042521;
    className: 'InputWebFileLocation';

    static fromReader(reader: Reader): InputWebFileLocation;
  }
  export class InputWebFileGeoPointLocation extends VirtualClass<{
    geoPoint: Api.TypeInputGeoPoint;
    accessHash: long;
    w: int;
    h: int;
    zoom: int;
    scale: int;
  }> {
    geoPoint: Api.TypeInputGeoPoint;
    accessHash: long;
    w: int;
    h: int;
    zoom: int;
    scale: int;
    CONSTRUCTOR_ID: 2669814217;
    SUBCLASS_OF_ID: 4147042521;
    className: 'InputWebFileGeoPointLocation';

    static fromReader(reader: Reader): InputWebFileGeoPointLocation;
  }
  export class InputWebFileAudioAlbumThumbLocation extends VirtualClass<{
    // flags: Api.Type;
    small?: true;
    document?: Api.TypeInputDocument;
    title?: string;
    performer?: string;
  } | void> {
    // flags: Api.Type;
    small?: true;
    document?: Api.TypeInputDocument;
    title?: string;
    performer?: string;
    CONSTRUCTOR_ID: 4100974884;
    SUBCLASS_OF_ID: 4147042521;
    className: 'InputWebFileAudioAlbumThumbLocation';

    static fromReader(reader: Reader): InputWebFileAudioAlbumThumbLocation;
  }
  export class InputPaymentCredentialsSaved extends VirtualClass<{
    id: string;
    tmpPassword: bytes;
  }> {
    id: string;
    tmpPassword: bytes;
    CONSTRUCTOR_ID: 3238965967;
    SUBCLASS_OF_ID: 681157949;
    className: 'InputPaymentCredentialsSaved';

    static fromReader(reader: Reader): InputPaymentCredentialsSaved;
  }
  export class InputPaymentCredentials extends VirtualClass<{
    // flags: Api.Type;
    save?: true;
    data: Api.TypeDataJSON;
  }> {
    // flags: Api.Type;
    save?: true;
    data: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 873977640;
    SUBCLASS_OF_ID: 681157949;
    className: 'InputPaymentCredentials';

    static fromReader(reader: Reader): InputPaymentCredentials;
  }
  export class InputPaymentCredentialsApplePay extends VirtualClass<{
    paymentData: Api.TypeDataJSON;
  }> {
    paymentData: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 178373535;
    SUBCLASS_OF_ID: 681157949;
    className: 'InputPaymentCredentialsApplePay';

    static fromReader(reader: Reader): InputPaymentCredentialsApplePay;
  }
  export class InputPaymentCredentialsGooglePay extends VirtualClass<{
    paymentToken: Api.TypeDataJSON;
  }> {
    paymentToken: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 2328045569;
    SUBCLASS_OF_ID: 681157949;
    className: 'InputPaymentCredentialsGooglePay';

    static fromReader(reader: Reader): InputPaymentCredentialsGooglePay;
  }
  export class ShippingOption extends VirtualClass<{
    id: string;
    title: string;
    prices: Api.TypeLabeledPrice[];
  }> {
    id: string;
    title: string;
    prices: Api.TypeLabeledPrice[];
    CONSTRUCTOR_ID: 3055631583;
    SUBCLASS_OF_ID: 4108930168;
    className: 'ShippingOption';

    static fromReader(reader: Reader): ShippingOption;
  }
  export class InputStickerSetItem extends VirtualClass<{
    // flags: Api.Type;
    document: Api.TypeInputDocument;
    emoji: string;
    maskCoords?: Api.TypeMaskCoords;
    keywords?: string;
  }> {
    // flags: Api.Type;
    document: Api.TypeInputDocument;
    emoji: string;
    maskCoords?: Api.TypeMaskCoords;
    keywords?: string;
    CONSTRUCTOR_ID: 853188252;
    SUBCLASS_OF_ID: 2925129845;
    className: 'InputStickerSetItem';

    static fromReader(reader: Reader): InputStickerSetItem;
  }
  export class InputPhoneCall extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 506920429;
    SUBCLASS_OF_ID: 3165319744;
    className: 'InputPhoneCall';

    static fromReader(reader: Reader): InputPhoneCall;
  }
  export class PhoneCallEmpty extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 1399245077;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCallEmpty';

    static fromReader(reader: Reader): PhoneCallEmpty;
  }
  export class PhoneCallWaiting extends VirtualClass<{
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    protocol: Api.TypePhoneCallProtocol;
    receiveDate?: int;
  }> {
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    protocol: Api.TypePhoneCallProtocol;
    receiveDate?: int;
    CONSTRUCTOR_ID: 3307368215;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCallWaiting';

    static fromReader(reader: Reader): PhoneCallWaiting;
  }
  export class PhoneCallRequested extends VirtualClass<{
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAHash: bytes;
    protocol: Api.TypePhoneCallProtocol;
  }> {
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAHash: bytes;
    protocol: Api.TypePhoneCallProtocol;
    CONSTRUCTOR_ID: 347139340;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCallRequested';

    static fromReader(reader: Reader): PhoneCallRequested;
  }
  export class PhoneCallAccepted extends VirtualClass<{
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gB: bytes;
    protocol: Api.TypePhoneCallProtocol;
  }> {
    // flags: Api.Type;
    video?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gB: bytes;
    protocol: Api.TypePhoneCallProtocol;
    CONSTRUCTOR_ID: 912311057;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCallAccepted';

    static fromReader(reader: Reader): PhoneCallAccepted;
  }
  export class PhoneCall extends VirtualClass<{
    // flags: Api.Type;
    p2pAllowed?: true;
    video?: true;
    conferenceSupported?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAOrB: bytes;
    keyFingerprint: long;
    protocol: Api.TypePhoneCallProtocol;
    connections: Api.TypePhoneConnection[];
    startDate: int;
    customParameters?: Api.TypeDataJSON;
  }> {
    // flags: Api.Type;
    p2pAllowed?: true;
    video?: true;
    conferenceSupported?: true;
    id: long;
    accessHash: long;
    date: int;
    adminId: long;
    participantId: long;
    gAOrB: bytes;
    keyFingerprint: long;
    protocol: Api.TypePhoneCallProtocol;
    connections: Api.TypePhoneConnection[];
    startDate: int;
    customParameters?: Api.TypeDataJSON;
    CONSTRUCTOR_ID: 810769141;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCall';

    static fromReader(reader: Reader): PhoneCall;
  }
  export class PhoneCallDiscarded extends VirtualClass<{
    // flags: Api.Type;
    needRating?: true;
    needDebug?: true;
    video?: true;
    id: long;
    reason?: Api.TypePhoneCallDiscardReason;
    duration?: int;
  }> {
    // flags: Api.Type;
    needRating?: true;
    needDebug?: true;
    video?: true;
    id: long;
    reason?: Api.TypePhoneCallDiscardReason;
    duration?: int;
    CONSTRUCTOR_ID: 1355435489;
    SUBCLASS_OF_ID: 3296664529;
    className: 'PhoneCallDiscarded';

    static fromReader(reader: Reader): PhoneCallDiscarded;
  }
  export class PhoneConnection extends VirtualClass<{
    // flags: Api.Type;
    tcp?: true;
    id: long;
    ip: string;
    ipv6: string;
    port: int;
    peerTag: bytes;
  }> {
    // flags: Api.Type;
    tcp?: true;
    id: long;
    ip: string;
    ipv6: string;
    port: int;
    peerTag: bytes;
    CONSTRUCTOR_ID: 2629903303;
    SUBCLASS_OF_ID: 2861425677;
    className: 'PhoneConnection';

    static fromReader(reader: Reader): PhoneConnection;
  }
  export class PhoneConnectionWebrtc extends VirtualClass<{
    // flags: Api.Type;
    turn?: true;
    stun?: true;
    id: long;
    ip: string;
    ipv6: string;
    port: int;
    username: string;
    password: string;
  }> {
    // flags: Api.Type;
    turn?: true;
    stun?: true;
    id: long;
    ip: string;
    ipv6: string;
    port: int;
    username: string;
    password: string;
    CONSTRUCTOR_ID: 1667228533;
    SUBCLASS_OF_ID: 2861425677;
    className: 'PhoneConnectionWebrtc';

    static fromReader(reader: Reader): PhoneConnectionWebrtc;
  }
  export class PhoneCallProtocol extends VirtualClass<{
    // flags: Api.Type;
    udpP2p?: true;
    udpReflector?: true;
    minLayer: int;
    maxLayer: int;
    libraryVersions: string[];
  }> {
    // flags: Api.Type;
    udpP2p?: true;
    udpReflector?: true;
    minLayer: int;
    maxLayer: int;
    libraryVersions: string[];
    CONSTRUCTOR_ID: 4236742600;
    SUBCLASS_OF_ID: 2017038755;
    className: 'PhoneCallProtocol';

    static fromReader(reader: Reader): PhoneCallProtocol;
  }
  export class CdnPublicKey extends VirtualClass<{
    dcId: int;
    publicKey: string;
  }> {
    dcId: int;
    publicKey: string;
    CONSTRUCTOR_ID: 3380800186;
    SUBCLASS_OF_ID: 383469555;
    className: 'CdnPublicKey';

    static fromReader(reader: Reader): CdnPublicKey;
  }
  export class CdnConfig extends VirtualClass<{
    publicKeys: Api.TypeCdnPublicKey[];
  }> {
    publicKeys: Api.TypeCdnPublicKey[];
    CONSTRUCTOR_ID: 1462101002;
    SUBCLASS_OF_ID: 3973724540;
    className: 'CdnConfig';

    static fromReader(reader: Reader): CdnConfig;
  }
  export class LangPackString extends VirtualClass<{
    key: string;
    value: string;
  }> {
    key: string;
    value: string;
    CONSTRUCTOR_ID: 3402727926;
    SUBCLASS_OF_ID: 3692534457;
    className: 'LangPackString';

    static fromReader(reader: Reader): LangPackString;
  }
  export class LangPackStringPluralized extends VirtualClass<{
    // flags: Api.Type;
    key: string;
    zeroValue?: string;
    oneValue?: string;
    twoValue?: string;
    fewValue?: string;
    manyValue?: string;
    otherValue: string;
  }> {
    // flags: Api.Type;
    key: string;
    zeroValue?: string;
    oneValue?: string;
    twoValue?: string;
    fewValue?: string;
    manyValue?: string;
    otherValue: string;
    CONSTRUCTOR_ID: 1816636575;
    SUBCLASS_OF_ID: 3692534457;
    className: 'LangPackStringPluralized';

    static fromReader(reader: Reader): LangPackStringPluralized;
  }
  export class LangPackStringDeleted extends VirtualClass<{
    key: string;
  }> {
    key: string;
    CONSTRUCTOR_ID: 695856818;
    SUBCLASS_OF_ID: 3692534457;
    className: 'LangPackStringDeleted';

    static fromReader(reader: Reader): LangPackStringDeleted;
  }
  export class LangPackDifference extends VirtualClass<{
    langCode: string;
    fromVersion: int;
    version: int;
    strings: Api.TypeLangPackString[];
  }> {
    langCode: string;
    fromVersion: int;
    version: int;
    strings: Api.TypeLangPackString[];
    CONSTRUCTOR_ID: 4085629430;
    SUBCLASS_OF_ID: 1382427989;
    className: 'LangPackDifference';

    static fromReader(reader: Reader): LangPackDifference;
  }
  export class LangPackLanguage extends VirtualClass<{
    // flags: Api.Type;
    official?: true;
    rtl?: true;
    beta?: true;
    name: string;
    nativeName: string;
    langCode: string;
    baseLangCode?: string;
    pluralCode: string;
    stringsCount: int;
    translatedCount: int;
    translationsUrl: string;
  }> {
    // flags: Api.Type;
    official?: true;
    rtl?: true;
    beta?: true;
    name: string;
    nativeName: string;
    langCode: string;
    baseLangCode?: string;
    pluralCode: string;
    stringsCount: int;
    translatedCount: int;
    translationsUrl: string;
    CONSTRUCTOR_ID: 4006239459;
    SUBCLASS_OF_ID: 2880211383;
    className: 'LangPackLanguage';

    static fromReader(reader: Reader): LangPackLanguage;
  }
  export class ChannelAdminLogEventActionChangeTitle extends VirtualClass<{
    prevValue: string;
    newValue: string;
  }> {
    prevValue: string;
    newValue: string;
    CONSTRUCTOR_ID: 3873421349;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeTitle';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeTitle;
  }
  export class ChannelAdminLogEventActionChangeAbout extends VirtualClass<{
    prevValue: string;
    newValue: string;
  }> {
    prevValue: string;
    newValue: string;
    CONSTRUCTOR_ID: 1427671598;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeAbout';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeAbout;
  }
  export class ChannelAdminLogEventActionChangeUsername extends VirtualClass<{
    prevValue: string;
    newValue: string;
  }> {
    prevValue: string;
    newValue: string;
    CONSTRUCTOR_ID: 1783299128;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeUsername';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeUsername;
  }
  export class ChannelAdminLogEventActionChangePhoto extends VirtualClass<{
    prevPhoto: Api.TypePhoto;
    newPhoto: Api.TypePhoto;
  }> {
    prevPhoto: Api.TypePhoto;
    newPhoto: Api.TypePhoto;
    CONSTRUCTOR_ID: 1129042607;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangePhoto';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangePhoto;
  }
  export class ChannelAdminLogEventActionToggleInvites extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 460916654;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleInvites';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleInvites;
  }
  export class ChannelAdminLogEventActionToggleSignatures extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 648939889;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleSignatures';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleSignatures;
  }
  export class ChannelAdminLogEventActionUpdatePinned extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 3924306968;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionUpdatePinned';

    static fromReader(reader: Reader): ChannelAdminLogEventActionUpdatePinned;
  }
  export class ChannelAdminLogEventActionEditMessage extends VirtualClass<{
    prevMessage: Api.TypeMessage;
    newMessage: Api.TypeMessage;
  }> {
    prevMessage: Api.TypeMessage;
    newMessage: Api.TypeMessage;
    CONSTRUCTOR_ID: 1889215493;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionEditMessage';

    static fromReader(reader: Reader): ChannelAdminLogEventActionEditMessage;
  }
  export class ChannelAdminLogEventActionDeleteMessage extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 1121994683;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionDeleteMessage';

    static fromReader(reader: Reader): ChannelAdminLogEventActionDeleteMessage;
  }
  export class ChannelAdminLogEventActionParticipantJoin extends VirtualClass<void> {
    CONSTRUCTOR_ID: 405815507;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantJoin';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantJoin;
  }
  export class ChannelAdminLogEventActionParticipantLeave extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4170676210;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantLeave';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantLeave;
  }
  export class ChannelAdminLogEventActionParticipantInvite extends VirtualClass<{
    participant: Api.TypeChannelParticipant;
  }> {
    participant: Api.TypeChannelParticipant;
    CONSTRUCTOR_ID: 3810276568;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantInvite';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantInvite;
  }
  export class ChannelAdminLogEventActionParticipantToggleBan extends VirtualClass<{
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
  }> {
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
    CONSTRUCTOR_ID: 3872931198;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantToggleBan';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantToggleBan;
  }
  export class ChannelAdminLogEventActionParticipantToggleAdmin extends VirtualClass<{
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
  }> {
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
    CONSTRUCTOR_ID: 3580323600;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantToggleAdmin';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantToggleAdmin;
  }
  export class ChannelAdminLogEventActionChangeStickerSet extends VirtualClass<{
    prevStickerset: Api.TypeInputStickerSet;
    newStickerset: Api.TypeInputStickerSet;
  }> {
    prevStickerset: Api.TypeInputStickerSet;
    newStickerset: Api.TypeInputStickerSet;
    CONSTRUCTOR_ID: 2982398631;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeStickerSet';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeStickerSet;
  }
  export class ChannelAdminLogEventActionTogglePreHistoryHidden extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 1599903217;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionTogglePreHistoryHidden';

    static fromReader(reader: Reader): ChannelAdminLogEventActionTogglePreHistoryHidden;
  }
  export class ChannelAdminLogEventActionDefaultBannedRights extends VirtualClass<{
    prevBannedRights: Api.TypeChatBannedRights;
    newBannedRights: Api.TypeChatBannedRights;
  }> {
    prevBannedRights: Api.TypeChatBannedRights;
    newBannedRights: Api.TypeChatBannedRights;
    CONSTRUCTOR_ID: 771095562;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionDefaultBannedRights';

    static fromReader(reader: Reader): ChannelAdminLogEventActionDefaultBannedRights;
  }
  export class ChannelAdminLogEventActionStopPoll extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 2399639107;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionStopPoll';

    static fromReader(reader: Reader): ChannelAdminLogEventActionStopPoll;
  }
  export class ChannelAdminLogEventActionChangeLinkedChat extends VirtualClass<{
    prevValue: long;
    newValue: long;
  }> {
    prevValue: long;
    newValue: long;
    CONSTRUCTOR_ID: 84703944;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeLinkedChat';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeLinkedChat;
  }
  export class ChannelAdminLogEventActionChangeLocation extends VirtualClass<{
    prevValue: Api.TypeChannelLocation;
    newValue: Api.TypeChannelLocation;
  }> {
    prevValue: Api.TypeChannelLocation;
    newValue: Api.TypeChannelLocation;
    CONSTRUCTOR_ID: 241923758;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeLocation';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeLocation;
  }
  export class ChannelAdminLogEventActionToggleSlowMode extends VirtualClass<{
    prevValue: int;
    newValue: int;
  }> {
    prevValue: int;
    newValue: int;
    CONSTRUCTOR_ID: 1401984889;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleSlowMode';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleSlowMode;
  }
  export class ChannelAdminLogEventActionStartGroupCall extends VirtualClass<{
    call: Api.TypeInputGroupCall;
  }> {
    call: Api.TypeInputGroupCall;
    CONSTRUCTOR_ID: 589338437;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionStartGroupCall';

    static fromReader(reader: Reader): ChannelAdminLogEventActionStartGroupCall;
  }
  export class ChannelAdminLogEventActionDiscardGroupCall extends VirtualClass<{
    call: Api.TypeInputGroupCall;
  }> {
    call: Api.TypeInputGroupCall;
    CONSTRUCTOR_ID: 3684667712;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionDiscardGroupCall';

    static fromReader(reader: Reader): ChannelAdminLogEventActionDiscardGroupCall;
  }
  export class ChannelAdminLogEventActionParticipantMute extends VirtualClass<{
    participant: Api.TypeGroupCallParticipant;
  }> {
    participant: Api.TypeGroupCallParticipant;
    CONSTRUCTOR_ID: 4179895506;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantMute';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantMute;
  }
  export class ChannelAdminLogEventActionParticipantUnmute extends VirtualClass<{
    participant: Api.TypeGroupCallParticipant;
  }> {
    participant: Api.TypeGroupCallParticipant;
    CONSTRUCTOR_ID: 3863226816;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantUnmute';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantUnmute;
  }
  export class ChannelAdminLogEventActionToggleGroupCallSetting extends VirtualClass<{
    joinMuted: Bool;
  }> {
    joinMuted: Bool;
    CONSTRUCTOR_ID: 1456906823;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleGroupCallSetting';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleGroupCallSetting;
  }
  export class ChannelAdminLogEventActionParticipantJoinByInvite extends VirtualClass<{
    // flags: Api.Type;
    viaChatlist?: true;
    invite: Api.TypeExportedChatInvite;
  }> {
    // flags: Api.Type;
    viaChatlist?: true;
    invite: Api.TypeExportedChatInvite;
    CONSTRUCTOR_ID: 4271882584;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantJoinByInvite';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantJoinByInvite;
  }
  export class ChannelAdminLogEventActionExportedInviteDelete extends VirtualClass<{
    invite: Api.TypeExportedChatInvite;
  }> {
    invite: Api.TypeExportedChatInvite;
    CONSTRUCTOR_ID: 1515256996;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionExportedInviteDelete';

    static fromReader(reader: Reader): ChannelAdminLogEventActionExportedInviteDelete;
  }
  export class ChannelAdminLogEventActionExportedInviteRevoke extends VirtualClass<{
    invite: Api.TypeExportedChatInvite;
  }> {
    invite: Api.TypeExportedChatInvite;
    CONSTRUCTOR_ID: 1091179342;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionExportedInviteRevoke';

    static fromReader(reader: Reader): ChannelAdminLogEventActionExportedInviteRevoke;
  }
  export class ChannelAdminLogEventActionExportedInviteEdit extends VirtualClass<{
    prevInvite: Api.TypeExportedChatInvite;
    newInvite: Api.TypeExportedChatInvite;
  }> {
    prevInvite: Api.TypeExportedChatInvite;
    newInvite: Api.TypeExportedChatInvite;
    CONSTRUCTOR_ID: 3910056793;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionExportedInviteEdit';

    static fromReader(reader: Reader): ChannelAdminLogEventActionExportedInviteEdit;
  }
  export class ChannelAdminLogEventActionParticipantVolume extends VirtualClass<{
    participant: Api.TypeGroupCallParticipant;
  }> {
    participant: Api.TypeGroupCallParticipant;
    CONSTRUCTOR_ID: 1048537159;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantVolume';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantVolume;
  }
  export class ChannelAdminLogEventActionChangeHistoryTTL extends VirtualClass<{
    prevValue: int;
    newValue: int;
  }> {
    prevValue: int;
    newValue: int;
    CONSTRUCTOR_ID: 1855199800;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeHistoryTTL';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeHistoryTTL;
  }
  export class ChannelAdminLogEventActionParticipantJoinByRequest extends VirtualClass<{
    invite: Api.TypeExportedChatInvite;
    approvedBy: long;
  }> {
    invite: Api.TypeExportedChatInvite;
    approvedBy: long;
    CONSTRUCTOR_ID: 2947945546;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantJoinByRequest';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantJoinByRequest;
  }
  export class ChannelAdminLogEventActionToggleNoForwards extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 3408578406;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleNoForwards';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleNoForwards;
  }
  export class ChannelAdminLogEventActionSendMessage extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 663693416;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionSendMessage';

    static fromReader(reader: Reader): ChannelAdminLogEventActionSendMessage;
  }
  export class ChannelAdminLogEventActionChangeAvailableReactions extends VirtualClass<{
    prevValue: Api.TypeChatReactions;
    newValue: Api.TypeChatReactions;
  }> {
    prevValue: Api.TypeChatReactions;
    newValue: Api.TypeChatReactions;
    CONSTRUCTOR_ID: 3192786680;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeAvailableReactions';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeAvailableReactions;
  }
  export class ChannelAdminLogEventActionChangeUsernames extends VirtualClass<{
    prevValue: string[];
    newValue: string[];
  }> {
    prevValue: string[];
    newValue: string[];
    CONSTRUCTOR_ID: 4031755177;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeUsernames';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeUsernames;
  }
  export class ChannelAdminLogEventActionToggleForum extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 46949251;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleForum';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleForum;
  }
  export class ChannelAdminLogEventActionCreateTopic extends VirtualClass<{
    topic: Api.TypeForumTopic;
  }> {
    topic: Api.TypeForumTopic;
    CONSTRUCTOR_ID: 1483767080;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionCreateTopic';

    static fromReader(reader: Reader): ChannelAdminLogEventActionCreateTopic;
  }
  export class ChannelAdminLogEventActionEditTopic extends VirtualClass<{
    prevTopic: Api.TypeForumTopic;
    newTopic: Api.TypeForumTopic;
  }> {
    prevTopic: Api.TypeForumTopic;
    newTopic: Api.TypeForumTopic;
    CONSTRUCTOR_ID: 4033864200;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionEditTopic';

    static fromReader(reader: Reader): ChannelAdminLogEventActionEditTopic;
  }
  export class ChannelAdminLogEventActionDeleteTopic extends VirtualClass<{
    topic: Api.TypeForumTopic;
  }> {
    topic: Api.TypeForumTopic;
    CONSTRUCTOR_ID: 2920712457;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionDeleteTopic';

    static fromReader(reader: Reader): ChannelAdminLogEventActionDeleteTopic;
  }
  export class ChannelAdminLogEventActionPinTopic extends VirtualClass<{
    // flags: Api.Type;
    prevTopic?: Api.TypeForumTopic;
    newTopic?: Api.TypeForumTopic;
  } | void> {
    // flags: Api.Type;
    prevTopic?: Api.TypeForumTopic;
    newTopic?: Api.TypeForumTopic;
    CONSTRUCTOR_ID: 1569535291;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionPinTopic';

    static fromReader(reader: Reader): ChannelAdminLogEventActionPinTopic;
  }
  export class ChannelAdminLogEventActionToggleAntiSpam extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 1693675004;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleAntiSpam';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleAntiSpam;
  }
  export class ChannelAdminLogEventActionChangePeerColor extends VirtualClass<{
    prevValue: Api.TypePeerColor;
    newValue: Api.TypePeerColor;
  }> {
    prevValue: Api.TypePeerColor;
    newValue: Api.TypePeerColor;
    CONSTRUCTOR_ID: 1469507456;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangePeerColor';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangePeerColor;
  }
  export class ChannelAdminLogEventActionChangeProfilePeerColor extends VirtualClass<{
    prevValue: Api.TypePeerColor;
    newValue: Api.TypePeerColor;
  }> {
    prevValue: Api.TypePeerColor;
    newValue: Api.TypePeerColor;
    CONSTRUCTOR_ID: 1581742885;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeProfilePeerColor';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeProfilePeerColor;
  }
  export class ChannelAdminLogEventActionChangeWallpaper extends VirtualClass<{
    prevValue: Api.TypeWallPaper;
    newValue: Api.TypeWallPaper;
  }> {
    prevValue: Api.TypeWallPaper;
    newValue: Api.TypeWallPaper;
    CONSTRUCTOR_ID: 834362706;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeWallpaper';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeWallpaper;
  }
  export class ChannelAdminLogEventActionChangeEmojiStatus extends VirtualClass<{
    prevValue: Api.TypeEmojiStatus;
    newValue: Api.TypeEmojiStatus;
  }> {
    prevValue: Api.TypeEmojiStatus;
    newValue: Api.TypeEmojiStatus;
    CONSTRUCTOR_ID: 1051328177;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeEmojiStatus';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeEmojiStatus;
  }
  export class ChannelAdminLogEventActionChangeEmojiStickerSet extends VirtualClass<{
    prevStickerset: Api.TypeInputStickerSet;
    newStickerset: Api.TypeInputStickerSet;
  }> {
    prevStickerset: Api.TypeInputStickerSet;
    newStickerset: Api.TypeInputStickerSet;
    CONSTRUCTOR_ID: 1188577451;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionChangeEmojiStickerSet';

    static fromReader(reader: Reader): ChannelAdminLogEventActionChangeEmojiStickerSet;
  }
  export class ChannelAdminLogEventActionToggleSignatureProfiles extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 1621597305;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleSignatureProfiles';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleSignatureProfiles;
  }
  export class ChannelAdminLogEventActionParticipantSubExtend extends VirtualClass<{
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
  }> {
    prevParticipant: Api.TypeChannelParticipant;
    newParticipant: Api.TypeChannelParticipant;
    CONSTRUCTOR_ID: 1684286899;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantSubExtend';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantSubExtend;
  }
  export class ChannelAdminLogEventActionToggleAutotranslation extends VirtualClass<{
    newValue: Bool;
  }> {
    newValue: Bool;
    CONSTRUCTOR_ID: 3306682238;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionToggleAutotranslation';

    static fromReader(reader: Reader): ChannelAdminLogEventActionToggleAutotranslation;
  }
  export class ChannelAdminLogEventActionParticipantEditRank extends VirtualClass<{
    userId: long;
    prevRank: string;
    newRank: string;
  }> {
    userId: long;
    prevRank: string;
    newRank: string;
    CONSTRUCTOR_ID: 1476834540;
    SUBCLASS_OF_ID: 2998503411;
    className: 'ChannelAdminLogEventActionParticipantEditRank';

    static fromReader(reader: Reader): ChannelAdminLogEventActionParticipantEditRank;
  }
  export class ChannelAdminLogEvent extends VirtualClass<{
    id: long;
    date: int;
    userId: long;
    action: Api.TypeChannelAdminLogEventAction;
  }> {
    id: long;
    date: int;
    userId: long;
    action: Api.TypeChannelAdminLogEventAction;
    CONSTRUCTOR_ID: 531458253;
    SUBCLASS_OF_ID: 1083115929;
    className: 'ChannelAdminLogEvent';

    static fromReader(reader: Reader): ChannelAdminLogEvent;
  }
  export class ChannelAdminLogEventsFilter extends VirtualClass<{
    // flags: Api.Type;
    join?: true;
    leave?: true;
    invite?: true;
    ban?: true;
    unban?: true;
    kick?: true;
    unkick?: true;
    promote?: true;
    demote?: true;
    info?: true;
    settings?: true;
    pinned?: true;
    edit?: true;
    delete?: true;
    groupCall?: true;
    invites?: true;
    send?: true;
    forums?: true;
    subExtend?: true;
    editRank?: true;
  } | void> {
    // flags: Api.Type;
    join?: true;
    leave?: true;
    invite?: true;
    ban?: true;
    unban?: true;
    kick?: true;
    unkick?: true;
    promote?: true;
    demote?: true;
    info?: true;
    settings?: true;
    pinned?: true;
    edit?: true;
    delete?: true;
    groupCall?: true;
    invites?: true;
    send?: true;
    forums?: true;
    subExtend?: true;
    editRank?: true;
    CONSTRUCTOR_ID: 3926948580;
    SUBCLASS_OF_ID: 2092692249;
    className: 'ChannelAdminLogEventsFilter';

    static fromReader(reader: Reader): ChannelAdminLogEventsFilter;
  }
  export class PopularContact extends VirtualClass<{
    clientId: long;
    importers: int;
  }> {
    clientId: long;
    importers: int;
    CONSTRUCTOR_ID: 1558266229;
    SUBCLASS_OF_ID: 67708250;
    className: 'PopularContact';

    static fromReader(reader: Reader): PopularContact;
  }
  export class RecentMeUrlUnknown extends VirtualClass<{
    url: string;
  }> {
    url: string;
    CONSTRUCTOR_ID: 1189204285;
    SUBCLASS_OF_ID: 1436889209;
    className: 'RecentMeUrlUnknown';

    static fromReader(reader: Reader): RecentMeUrlUnknown;
  }
  export class RecentMeUrlUser extends VirtualClass<{
    url: string;
    userId: long;
  }> {
    url: string;
    userId: long;
    CONSTRUCTOR_ID: 3106671074;
    SUBCLASS_OF_ID: 1436889209;
    className: 'RecentMeUrlUser';

    static fromReader(reader: Reader): RecentMeUrlUser;
  }
  export class RecentMeUrlChat extends VirtualClass<{
    url: string;
    chatId: long;
  }> {
    url: string;
    chatId: long;
    CONSTRUCTOR_ID: 3000660434;
    SUBCLASS_OF_ID: 1436889209;
    className: 'RecentMeUrlChat';

    static fromReader(reader: Reader): RecentMeUrlChat;
  }
  export class RecentMeUrlChatInvite extends VirtualClass<{
    url: string;
    chatInvite: Api.TypeChatInvite;
  }> {
    url: string;
    chatInvite: Api.TypeChatInvite;
    CONSTRUCTOR_ID: 3947431965;
    SUBCLASS_OF_ID: 1436889209;
    className: 'RecentMeUrlChatInvite';

    static fromReader(reader: Reader): RecentMeUrlChatInvite;
  }
  export class RecentMeUrlStickerSet extends VirtualClass<{
    url: string;
    set: Api.TypeStickerSetCovered;
  }> {
    url: string;
    set: Api.TypeStickerSetCovered;
    CONSTRUCTOR_ID: 3154794460;
    SUBCLASS_OF_ID: 1436889209;
    className: 'RecentMeUrlStickerSet';

    static fromReader(reader: Reader): RecentMeUrlStickerSet;
  }
  export class InputSingleMedia extends VirtualClass<{
    // flags: Api.Type;
    media: Api.TypeInputMedia;
    randomId: long;
    message: string;
    entities?: Api.TypeMessageEntity[];
  }> {
    // flags: Api.Type;
    media: Api.TypeInputMedia;
    randomId: long;
    message: string;
    entities?: Api.TypeMessageEntity[];
    CONSTRUCTOR_ID: 482797855;
    SUBCLASS_OF_ID: 566922968;
    className: 'InputSingleMedia';

    static fromReader(reader: Reader): InputSingleMedia;
  }
  export class WebAuthorization extends VirtualClass<{
    hash: long;
    botId: long;
    domain: string;
    browser: string;
    platform: string;
    dateCreated: int;
    dateActive: int;
    ip: string;
    region: string;
  }> {
    hash: long;
    botId: long;
    domain: string;
    browser: string;
    platform: string;
    dateCreated: int;
    dateActive: int;
    ip: string;
    region: string;
    CONSTRUCTOR_ID: 2801333330;
    SUBCLASS_OF_ID: 58084656;
    className: 'WebAuthorization';

    static fromReader(reader: Reader): WebAuthorization;
  }
  export class InputMessageID extends VirtualClass<{
    id: int;
  }> {
    id: int;
    CONSTRUCTOR_ID: 2792792866;
    SUBCLASS_OF_ID: 1421262021;
    className: 'InputMessageID';

    static fromReader(reader: Reader): InputMessageID;
  }
  export class InputMessageReplyTo extends VirtualClass<{
    id: int;
  }> {
    id: int;
    CONSTRUCTOR_ID: 3134751637;
    SUBCLASS_OF_ID: 1421262021;
    className: 'InputMessageReplyTo';

    static fromReader(reader: Reader): InputMessageReplyTo;
  }
  export class InputMessagePinned extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2257003832;
    SUBCLASS_OF_ID: 1421262021;
    className: 'InputMessagePinned';

    static fromReader(reader: Reader): InputMessagePinned;
  }
  export class InputMessageCallbackQuery extends VirtualClass<{
    id: int;
    queryId: long;
  }> {
    id: int;
    queryId: long;
    CONSTRUCTOR_ID: 2902071934;
    SUBCLASS_OF_ID: 1421262021;
    className: 'InputMessageCallbackQuery';

    static fromReader(reader: Reader): InputMessageCallbackQuery;
  }
  export class InputDialogPeer extends VirtualClass<{
    peer: Api.TypeInputPeer;
  }> {
    peer: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 4239064759;
    SUBCLASS_OF_ID: 2719782805;
    className: 'InputDialogPeer';

    static fromReader(reader: Reader): InputDialogPeer;
  }
  export class InputDialogPeerFolder extends VirtualClass<{
    folderId: int;
  }> {
    folderId: int;
    CONSTRUCTOR_ID: 1684014375;
    SUBCLASS_OF_ID: 2719782805;
    className: 'InputDialogPeerFolder';

    static fromReader(reader: Reader): InputDialogPeerFolder;
  }
  export class DialogPeer extends VirtualClass<{
    peer: Api.TypePeer;
  }> {
    peer: Api.TypePeer;
    CONSTRUCTOR_ID: 3849174789;
    SUBCLASS_OF_ID: 627892654;
    className: 'DialogPeer';

    static fromReader(reader: Reader): DialogPeer;
  }
  export class DialogPeerFolder extends VirtualClass<{
    folderId: int;
  }> {
    folderId: int;
    CONSTRUCTOR_ID: 1363483106;
    SUBCLASS_OF_ID: 627892654;
    className: 'DialogPeerFolder';

    static fromReader(reader: Reader): DialogPeerFolder;
  }
  export class FileHash extends VirtualClass<{
    offset: long;
    limit: int;
    hash: bytes;
  }> {
    offset: long;
    limit: int;
    hash: bytes;
    CONSTRUCTOR_ID: 4087022428;
    SUBCLASS_OF_ID: 3939776691;
    className: 'FileHash';

    static fromReader(reader: Reader): FileHash;
  }
  export class InputClientProxy extends VirtualClass<{
    address: string;
    port: int;
  }> {
    address: string;
    port: int;
    CONSTRUCTOR_ID: 1968737087;
    SUBCLASS_OF_ID: 152716102;
    className: 'InputClientProxy';

    static fromReader(reader: Reader): InputClientProxy;
  }
  export class InputSecureFileUploaded extends VirtualClass<{
    id: long;
    parts: int;
    md5Checksum: string;
    fileHash: bytes;
    secret: bytes;
  }> {
    id: long;
    parts: int;
    md5Checksum: string;
    fileHash: bytes;
    secret: bytes;
    CONSTRUCTOR_ID: 859091184;
    SUBCLASS_OF_ID: 3670584828;
    className: 'InputSecureFileUploaded';

    static fromReader(reader: Reader): InputSecureFileUploaded;
  }
  export class InputSecureFile extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 1399317950;
    SUBCLASS_OF_ID: 3670584828;
    className: 'InputSecureFile';

    static fromReader(reader: Reader): InputSecureFile;
  }
  export class SecureFileEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1679398724;
    SUBCLASS_OF_ID: 1572395975;
    className: 'SecureFileEmpty';

    static fromReader(reader: Reader): SecureFileEmpty;
  }
  export class SecureFile extends VirtualClass<{
    id: long;
    accessHash: long;
    size: long;
    dcId: int;
    date: int;
    fileHash: bytes;
    secret: bytes;
  }> {
    id: long;
    accessHash: long;
    size: long;
    dcId: int;
    date: int;
    fileHash: bytes;
    secret: bytes;
    CONSTRUCTOR_ID: 2097791614;
    SUBCLASS_OF_ID: 1572395975;
    className: 'SecureFile';

    static fromReader(reader: Reader): SecureFile;
  }
  export class SecureData extends VirtualClass<{
    data: bytes;
    dataHash: bytes;
    secret: bytes;
  }> {
    data: bytes;
    dataHash: bytes;
    secret: bytes;
    CONSTRUCTOR_ID: 2330640067;
    SUBCLASS_OF_ID: 2094276276;
    className: 'SecureData';

    static fromReader(reader: Reader): SecureData;
  }
  export class SecurePlainPhone extends VirtualClass<{
    phone: string;
  }> {
    phone: string;
    CONSTRUCTOR_ID: 2103482845;
    SUBCLASS_OF_ID: 598912950;
    className: 'SecurePlainPhone';

    static fromReader(reader: Reader): SecurePlainPhone;
  }
  export class SecurePlainEmail extends VirtualClass<{
    email: string;
  }> {
    email: string;
    CONSTRUCTOR_ID: 569137759;
    SUBCLASS_OF_ID: 598912950;
    className: 'SecurePlainEmail';

    static fromReader(reader: Reader): SecurePlainEmail;
  }
  export class SecureValueTypePersonalDetails extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2636808675;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypePersonalDetails';

    static fromReader(reader: Reader): SecureValueTypePersonalDetails;
  }
  export class SecureValueTypePassport extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1034709504;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypePassport';

    static fromReader(reader: Reader): SecureValueTypePassport;
  }
  export class SecureValueTypeDriverLicense extends VirtualClass<void> {
    CONSTRUCTOR_ID: 115615172;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeDriverLicense';

    static fromReader(reader: Reader): SecureValueTypeDriverLicense;
  }
  export class SecureValueTypeIdentityCard extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2698015819;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeIdentityCard';

    static fromReader(reader: Reader): SecureValueTypeIdentityCard;
  }
  export class SecureValueTypeInternalPassport extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2577698595;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeInternalPassport';

    static fromReader(reader: Reader): SecureValueTypeInternalPassport;
  }
  export class SecureValueTypeAddress extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3420659238;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeAddress';

    static fromReader(reader: Reader): SecureValueTypeAddress;
  }
  export class SecureValueTypeUtilityBill extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4231435598;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeUtilityBill';

    static fromReader(reader: Reader): SecureValueTypeUtilityBill;
  }
  export class SecureValueTypeBankStatement extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2299755533;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeBankStatement';

    static fromReader(reader: Reader): SecureValueTypeBankStatement;
  }
  export class SecureValueTypeRentalAgreement extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2340959368;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeRentalAgreement';

    static fromReader(reader: Reader): SecureValueTypeRentalAgreement;
  }
  export class SecureValueTypePassportRegistration extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2581823594;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypePassportRegistration';

    static fromReader(reader: Reader): SecureValueTypePassportRegistration;
  }
  export class SecureValueTypeTemporaryRegistration extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3926060083;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeTemporaryRegistration';

    static fromReader(reader: Reader): SecureValueTypeTemporaryRegistration;
  }
  export class SecureValueTypePhone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3005262555;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypePhone';

    static fromReader(reader: Reader): SecureValueTypePhone;
  }
  export class SecureValueTypeEmail extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2386339822;
    SUBCLASS_OF_ID: 2291398038;
    className: 'SecureValueTypeEmail';

    static fromReader(reader: Reader): SecureValueTypeEmail;
  }
  export class SecureValue extends VirtualClass<{
    // flags: Api.Type;
    type: Api.TypeSecureValueType;
    data?: Api.TypeSecureData;
    frontSide?: Api.TypeSecureFile;
    reverseSide?: Api.TypeSecureFile;
    selfie?: Api.TypeSecureFile;
    translation?: Api.TypeSecureFile[];
    files?: Api.TypeSecureFile[];
    plainData?: Api.TypeSecurePlainData;
    hash: bytes;
  }> {
    // flags: Api.Type;
    type: Api.TypeSecureValueType;
    data?: Api.TypeSecureData;
    frontSide?: Api.TypeSecureFile;
    reverseSide?: Api.TypeSecureFile;
    selfie?: Api.TypeSecureFile;
    translation?: Api.TypeSecureFile[];
    files?: Api.TypeSecureFile[];
    plainData?: Api.TypeSecurePlainData;
    hash: bytes;
    CONSTRUCTOR_ID: 411017418;
    SUBCLASS_OF_ID: 85014702;
    className: 'SecureValue';

    static fromReader(reader: Reader): SecureValue;
  }
  export class InputSecureValue extends VirtualClass<{
    // flags: Api.Type;
    type: Api.TypeSecureValueType;
    data?: Api.TypeSecureData;
    frontSide?: Api.TypeInputSecureFile;
    reverseSide?: Api.TypeInputSecureFile;
    selfie?: Api.TypeInputSecureFile;
    translation?: Api.TypeInputSecureFile[];
    files?: Api.TypeInputSecureFile[];
    plainData?: Api.TypeSecurePlainData;
  }> {
    // flags: Api.Type;
    type: Api.TypeSecureValueType;
    data?: Api.TypeSecureData;
    frontSide?: Api.TypeInputSecureFile;
    reverseSide?: Api.TypeInputSecureFile;
    selfie?: Api.TypeInputSecureFile;
    translation?: Api.TypeInputSecureFile[];
    files?: Api.TypeInputSecureFile[];
    plainData?: Api.TypeSecurePlainData;
    CONSTRUCTOR_ID: 3676426407;
    SUBCLASS_OF_ID: 3030229500;
    className: 'InputSecureValue';

    static fromReader(reader: Reader): InputSecureValue;
  }
  export class SecureValueHash extends VirtualClass<{
    type: Api.TypeSecureValueType;
    hash: bytes;
  }> {
    type: Api.TypeSecureValueType;
    hash: bytes;
    CONSTRUCTOR_ID: 3978218928;
    SUBCLASS_OF_ID: 3589652487;
    className: 'SecureValueHash';

    static fromReader(reader: Reader): SecureValueHash;
  }
  export class SecureValueErrorData extends VirtualClass<{
    type: Api.TypeSecureValueType;
    dataHash: bytes;
    field: string;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    dataHash: bytes;
    field: string;
    text: string;
    CONSTRUCTOR_ID: 3903065049;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorData';

    static fromReader(reader: Reader): SecureValueErrorData;
  }
  export class SecureValueErrorFrontSide extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
    CONSTRUCTOR_ID: 12467706;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorFrontSide';

    static fromReader(reader: Reader): SecureValueErrorFrontSide;
  }
  export class SecureValueErrorReverseSide extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
    CONSTRUCTOR_ID: 2257201829;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorReverseSide';

    static fromReader(reader: Reader): SecureValueErrorReverseSide;
  }
  export class SecureValueErrorSelfie extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
    CONSTRUCTOR_ID: 3845639894;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorSelfie';

    static fromReader(reader: Reader): SecureValueErrorSelfie;
  }
  export class SecureValueErrorFile extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
    CONSTRUCTOR_ID: 2054162547;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorFile';

    static fromReader(reader: Reader): SecureValueErrorFile;
  }
  export class SecureValueErrorFiles extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes[];
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes[];
    text: string;
    CONSTRUCTOR_ID: 1717706985;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorFiles';

    static fromReader(reader: Reader): SecureValueErrorFiles;
  }
  export class SecureValueError extends VirtualClass<{
    type: Api.TypeSecureValueType;
    hash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    hash: bytes;
    text: string;
    CONSTRUCTOR_ID: 2258466191;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueError';

    static fromReader(reader: Reader): SecureValueError;
  }
  export class SecureValueErrorTranslationFile extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes;
    text: string;
    CONSTRUCTOR_ID: 2702460784;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorTranslationFile';

    static fromReader(reader: Reader): SecureValueErrorTranslationFile;
  }
  export class SecureValueErrorTranslationFiles extends VirtualClass<{
    type: Api.TypeSecureValueType;
    fileHash: bytes[];
    text: string;
  }> {
    type: Api.TypeSecureValueType;
    fileHash: bytes[];
    text: string;
    CONSTRUCTOR_ID: 878931416;
    SUBCLASS_OF_ID: 101146574;
    className: 'SecureValueErrorTranslationFiles';

    static fromReader(reader: Reader): SecureValueErrorTranslationFiles;
  }
  export class SecureCredentialsEncrypted extends VirtualClass<{
    data: bytes;
    hash: bytes;
    secret: bytes;
  }> {
    data: bytes;
    hash: bytes;
    secret: bytes;
    CONSTRUCTOR_ID: 871426631;
    SUBCLASS_OF_ID: 2497476147;
    className: 'SecureCredentialsEncrypted';

    static fromReader(reader: Reader): SecureCredentialsEncrypted;
  }
  export class SavedPhoneContact extends VirtualClass<{
    phone: string;
    firstName: string;
    lastName: string;
    date: int;
  }> {
    phone: string;
    firstName: string;
    lastName: string;
    date: int;
    CONSTRUCTOR_ID: 289586518;
    SUBCLASS_OF_ID: 115054788;
    className: 'SavedPhoneContact';

    static fromReader(reader: Reader): SavedPhoneContact;
  }
  export class PasswordKdfAlgoUnknown extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3562713238;
    SUBCLASS_OF_ID: 935130572;
    className: 'PasswordKdfAlgoUnknown';

    static fromReader(reader: Reader): PasswordKdfAlgoUnknown;
  }
  export class PasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow extends VirtualClass<{
    salt1: bytes;
    salt2: bytes;
    g: int;
    p: bytes;
  }> {
    salt1: bytes;
    salt2: bytes;
    g: int;
    p: bytes;
    CONSTRUCTOR_ID: 982592842;
    SUBCLASS_OF_ID: 935130572;
    className: 'PasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow';

    static fromReader(reader: Reader): PasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow;
  }
  export class SecurePasswordKdfAlgoUnknown extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4883767;
    SUBCLASS_OF_ID: 1998989635;
    className: 'SecurePasswordKdfAlgoUnknown';

    static fromReader(reader: Reader): SecurePasswordKdfAlgoUnknown;
  }
  export class SecurePasswordKdfAlgoPBKDF2HMACSHA512iter100000 extends VirtualClass<{
    salt: bytes;
  }> {
    salt: bytes;
    CONSTRUCTOR_ID: 3153255840;
    SUBCLASS_OF_ID: 1998989635;
    className: 'SecurePasswordKdfAlgoPBKDF2HMACSHA512iter100000';

    static fromReader(reader: Reader): SecurePasswordKdfAlgoPBKDF2HMACSHA512iter100000;
  }
  export class SecurePasswordKdfAlgoSHA512 extends VirtualClass<{
    salt: bytes;
  }> {
    salt: bytes;
    CONSTRUCTOR_ID: 2252807570;
    SUBCLASS_OF_ID: 1998989635;
    className: 'SecurePasswordKdfAlgoSHA512';

    static fromReader(reader: Reader): SecurePasswordKdfAlgoSHA512;
  }
  export class SecureSecretSettings extends VirtualClass<{
    secureAlgo: Api.TypeSecurePasswordKdfAlgo;
    secureSecret: bytes;
    secureSecretId: long;
  }> {
    secureAlgo: Api.TypeSecurePasswordKdfAlgo;
    secureSecret: bytes;
    secureSecretId: long;
    CONSTRUCTOR_ID: 354925740;
    SUBCLASS_OF_ID: 3334996731;
    className: 'SecureSecretSettings';

    static fromReader(reader: Reader): SecureSecretSettings;
  }
  export class InputCheckPasswordEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2558588504;
    SUBCLASS_OF_ID: 3558536544;
    className: 'InputCheckPasswordEmpty';

    static fromReader(reader: Reader): InputCheckPasswordEmpty;
  }
  export class InputCheckPasswordSRP extends VirtualClass<{
    srpId: long;
    A: bytes;
    M1: bytes;
  }> {
    srpId: long;
    A: bytes;
    M1: bytes;
    CONSTRUCTOR_ID: 3531600002;
    SUBCLASS_OF_ID: 3558536544;
    className: 'InputCheckPasswordSRP';

    static fromReader(reader: Reader): InputCheckPasswordSRP;
  }
  export class SecureRequiredType extends VirtualClass<{
    // flags: Api.Type;
    nativeNames?: true;
    selfieRequired?: true;
    translationRequired?: true;
    type: Api.TypeSecureValueType;
  }> {
    // flags: Api.Type;
    nativeNames?: true;
    selfieRequired?: true;
    translationRequired?: true;
    type: Api.TypeSecureValueType;
    CONSTRUCTOR_ID: 2191366618;
    SUBCLASS_OF_ID: 2088452618;
    className: 'SecureRequiredType';

    static fromReader(reader: Reader): SecureRequiredType;
  }
  export class SecureRequiredTypeOneOf extends VirtualClass<{
    types: Api.TypeSecureRequiredType[];
  }> {
    types: Api.TypeSecureRequiredType[];
    CONSTRUCTOR_ID: 41187252;
    SUBCLASS_OF_ID: 2088452618;
    className: 'SecureRequiredTypeOneOf';

    static fromReader(reader: Reader): SecureRequiredTypeOneOf;
  }
  export class InputAppEvent extends VirtualClass<{
    time: double;
    type: string;
    peer: long;
    data: Api.TypeJSONValue;
  }> {
    time: double;
    type: string;
    peer: long;
    data: Api.TypeJSONValue;
    CONSTRUCTOR_ID: 488313413;
    SUBCLASS_OF_ID: 2301763846;
    className: 'InputAppEvent';

    static fromReader(reader: Reader): InputAppEvent;
  }
  export class JsonObjectValue extends VirtualClass<{
    key: string;
    value: Api.TypeJSONValue;
  }> {
    key: string;
    value: Api.TypeJSONValue;
    CONSTRUCTOR_ID: 3235781593;
    SUBCLASS_OF_ID: 2474626745;
    className: 'JsonObjectValue';

    static fromReader(reader: Reader): JsonObjectValue;
  }
  export class JsonNull extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1064139624;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonNull';

    static fromReader(reader: Reader): JsonNull;
  }
  export class JsonBool extends VirtualClass<{
    value: Bool;
  }> {
    value: Bool;
    CONSTRUCTOR_ID: 3342098026;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonBool';

    static fromReader(reader: Reader): JsonBool;
  }
  export class JsonNumber extends VirtualClass<{
    value: double;
  }> {
    value: double;
    CONSTRUCTOR_ID: 736157604;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonNumber';

    static fromReader(reader: Reader): JsonNumber;
  }
  export class JsonString extends VirtualClass<{
    value: string;
  }> {
    value: string;
    CONSTRUCTOR_ID: 3072226938;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonString';

    static fromReader(reader: Reader): JsonString;
  }
  export class JsonArray extends VirtualClass<{
    value: Api.TypeJSONValue[];
  }> {
    value: Api.TypeJSONValue[];
    CONSTRUCTOR_ID: 4148447075;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonArray';

    static fromReader(reader: Reader): JsonArray;
  }
  export class JsonObject extends VirtualClass<{
    value: Api.TypeJSONObjectValue[];
  }> {
    value: Api.TypeJSONObjectValue[];
    CONSTRUCTOR_ID: 2579616925;
    SUBCLASS_OF_ID: 3952707507;
    className: 'JsonObject';

    static fromReader(reader: Reader): JsonObject;
  }
  export class PageTableCell extends VirtualClass<{
    // flags: Api.Type;
    header?: true;
    alignCenter?: true;
    alignRight?: true;
    valignMiddle?: true;
    valignBottom?: true;
    text?: Api.TypeRichText;
    colspan?: int;
    rowspan?: int;
  } | void> {
    // flags: Api.Type;
    header?: true;
    alignCenter?: true;
    alignRight?: true;
    valignMiddle?: true;
    valignBottom?: true;
    text?: Api.TypeRichText;
    colspan?: int;
    rowspan?: int;
    CONSTRUCTOR_ID: 878078826;
    SUBCLASS_OF_ID: 2968203348;
    className: 'PageTableCell';

    static fromReader(reader: Reader): PageTableCell;
  }
  export class PageTableRow extends VirtualClass<{
    cells: Api.TypePageTableCell[];
  }> {
    cells: Api.TypePageTableCell[];
    CONSTRUCTOR_ID: 3770729957;
    SUBCLASS_OF_ID: 1504505361;
    className: 'PageTableRow';

    static fromReader(reader: Reader): PageTableRow;
  }
  export class PageCaption extends VirtualClass<{
    text: Api.TypeRichText;
    credit: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    credit: Api.TypeRichText;
    CONSTRUCTOR_ID: 1869903447;
    SUBCLASS_OF_ID: 699985587;
    className: 'PageCaption';

    static fromReader(reader: Reader): PageCaption;
  }
  export class PageListItemText extends VirtualClass<{
    text: Api.TypeRichText;
  }> {
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 3106911949;
    SUBCLASS_OF_ID: 2360261809;
    className: 'PageListItemText';

    static fromReader(reader: Reader): PageListItemText;
  }
  export class PageListItemBlocks extends VirtualClass<{
    blocks: Api.TypePageBlock[];
  }> {
    blocks: Api.TypePageBlock[];
    CONSTRUCTOR_ID: 635466748;
    SUBCLASS_OF_ID: 2360261809;
    className: 'PageListItemBlocks';

    static fromReader(reader: Reader): PageListItemBlocks;
  }
  export class PageListOrderedItemText extends VirtualClass<{
    num: string;
    text: Api.TypeRichText;
  }> {
    num: string;
    text: Api.TypeRichText;
    CONSTRUCTOR_ID: 1577484359;
    SUBCLASS_OF_ID: 4007268024;
    className: 'PageListOrderedItemText';

    static fromReader(reader: Reader): PageListOrderedItemText;
  }
  export class PageListOrderedItemBlocks extends VirtualClass<{
    num: string;
    blocks: Api.TypePageBlock[];
  }> {
    num: string;
    blocks: Api.TypePageBlock[];
    CONSTRUCTOR_ID: 2564655414;
    SUBCLASS_OF_ID: 4007268024;
    className: 'PageListOrderedItemBlocks';

    static fromReader(reader: Reader): PageListOrderedItemBlocks;
  }
  export class PageRelatedArticle extends VirtualClass<{
    // flags: Api.Type;
    url: string;
    webpageId: long;
    title?: string;
    description?: string;
    photoId?: long;
    author?: string;
    publishedDate?: int;
  }> {
    // flags: Api.Type;
    url: string;
    webpageId: long;
    title?: string;
    description?: string;
    photoId?: long;
    author?: string;
    publishedDate?: int;
    CONSTRUCTOR_ID: 3012615176;
    SUBCLASS_OF_ID: 919623714;
    className: 'PageRelatedArticle';

    static fromReader(reader: Reader): PageRelatedArticle;
  }
  export class Page extends VirtualClass<{
    // flags: Api.Type;
    part?: true;
    rtl?: true;
    v2?: true;
    url: string;
    blocks: Api.TypePageBlock[];
    photos: Api.TypePhoto[];
    documents: Api.TypeDocument[];
    views?: int;
  }> {
    // flags: Api.Type;
    part?: true;
    rtl?: true;
    v2?: true;
    url: string;
    blocks: Api.TypePageBlock[];
    photos: Api.TypePhoto[];
    documents: Api.TypeDocument[];
    views?: int;
    CONSTRUCTOR_ID: 2556788493;
    SUBCLASS_OF_ID: 3023575326;
    className: 'Page';

    static fromReader(reader: Reader): Page;
  }
  export class PollAnswer extends VirtualClass<{
    // flags: Api.Type;
    text: Api.TypeTextWithEntities;
    option: bytes;
    media?: Api.TypeMessageMedia;
    addedBy?: Api.TypePeer;
    date?: int;
  }> {
    // flags: Api.Type;
    text: Api.TypeTextWithEntities;
    option: bytes;
    media?: Api.TypeMessageMedia;
    addedBy?: Api.TypePeer;
    date?: int;
    CONSTRUCTOR_ID: 1266514026;
    SUBCLASS_OF_ID: 2124799390;
    className: 'PollAnswer';

    static fromReader(reader: Reader): PollAnswer;
  }
  export class InputPollAnswer extends VirtualClass<{
    // flags: Api.Type;
    text: Api.TypeTextWithEntities;
    media?: Api.TypeInputMedia;
  }> {
    // flags: Api.Type;
    text: Api.TypeTextWithEntities;
    media?: Api.TypeInputMedia;
    CONSTRUCTOR_ID: 429911446;
    SUBCLASS_OF_ID: 2124799390;
    className: 'InputPollAnswer';

    static fromReader(reader: Reader): InputPollAnswer;
  }
  export class Poll extends VirtualClass<{
    id: long;
    // flags: Api.Type;
    closed?: true;
    publicVoters?: true;
    multipleChoice?: true;
    quiz?: true;
    openAnswers?: true;
    revotingDisabled?: true;
    shuffleAnswers?: true;
    hideResultsUntilClose?: true;
    creator?: true;
    subscribersOnly?: true;
    question: Api.TypeTextWithEntities;
    answers: Api.TypePollAnswer[];
    closePeriod?: int;
    closeDate?: int;
    countriesIso2?: string[];
    hash: long;
  }> {
    id: long;
    // flags: Api.Type;
    closed?: true;
    publicVoters?: true;
    multipleChoice?: true;
    quiz?: true;
    openAnswers?: true;
    revotingDisabled?: true;
    shuffleAnswers?: true;
    hideResultsUntilClose?: true;
    creator?: true;
    subscribersOnly?: true;
    question: Api.TypeTextWithEntities;
    answers: Api.TypePollAnswer[];
    closePeriod?: int;
    closeDate?: int;
    countriesIso2?: string[];
    hash: long;
    CONSTRUCTOR_ID: 2523803071;
    SUBCLASS_OF_ID: 613307771;
    className: 'Poll';

    static fromReader(reader: Reader): Poll;
  }
  export class PollAnswerVoters extends VirtualClass<{
    // flags: Api.Type;
    chosen?: true;
    correct?: true;
    option: bytes;
    voters?: int;
    recentVoters?: Api.TypePeer[];
  }> {
    // flags: Api.Type;
    chosen?: true;
    correct?: true;
    option: bytes;
    voters?: int;
    recentVoters?: Api.TypePeer[];
    CONSTRUCTOR_ID: 910500618;
    SUBCLASS_OF_ID: 2095107985;
    className: 'PollAnswerVoters';

    static fromReader(reader: Reader): PollAnswerVoters;
  }
  export class PollResults extends VirtualClass<{
    // flags: Api.Type;
    min?: true;
    hasUnreadVotes?: true;
    canViewStats?: true;
    results?: Api.TypePollAnswerVoters[];
    totalVoters?: int;
    recentVoters?: Api.TypePeer[];
    solution?: string;
    solutionEntities?: Api.TypeMessageEntity[];
    solutionMedia?: Api.TypeMessageMedia;
  } | void> {
    // flags: Api.Type;
    min?: true;
    hasUnreadVotes?: true;
    canViewStats?: true;
    results?: Api.TypePollAnswerVoters[];
    totalVoters?: int;
    recentVoters?: Api.TypePeer[];
    solution?: string;
    solutionEntities?: Api.TypeMessageEntity[];
    solutionMedia?: Api.TypeMessageMedia;
    CONSTRUCTOR_ID: 3128668510;
    SUBCLASS_OF_ID: 3283416711;
    className: 'PollResults';

    static fromReader(reader: Reader): PollResults;
  }
  export class ChatOnlines extends VirtualClass<{
    onlines: int;
  }> {
    onlines: int;
    CONSTRUCTOR_ID: 4030849616;
    SUBCLASS_OF_ID: 2357301306;
    className: 'ChatOnlines';

    static fromReader(reader: Reader): ChatOnlines;
  }
  export class StatsURL extends VirtualClass<{
    url: string;
  }> {
    url: string;
    CONSTRUCTOR_ID: 1202287072;
    SUBCLASS_OF_ID: 2370606272;
    className: 'StatsURL';

    static fromReader(reader: Reader): StatsURL;
  }
  export class ChatAdminRights extends VirtualClass<{
    // flags: Api.Type;
    changeInfo?: true;
    postMessages?: true;
    editMessages?: true;
    deleteMessages?: true;
    banUsers?: true;
    inviteUsers?: true;
    pinMessages?: true;
    addAdmins?: true;
    anonymous?: true;
    manageCall?: true;
    other?: true;
    manageTopics?: true;
    postStories?: true;
    editStories?: true;
    deleteStories?: true;
    manageDirectMessages?: true;
    manageRanks?: true;
  } | void> {
    // flags: Api.Type;
    changeInfo?: true;
    postMessages?: true;
    editMessages?: true;
    deleteMessages?: true;
    banUsers?: true;
    inviteUsers?: true;
    pinMessages?: true;
    addAdmins?: true;
    anonymous?: true;
    manageCall?: true;
    other?: true;
    manageTopics?: true;
    postStories?: true;
    editStories?: true;
    deleteStories?: true;
    manageDirectMessages?: true;
    manageRanks?: true;
    CONSTRUCTOR_ID: 1605510357;
    SUBCLASS_OF_ID: 2252195780;
    className: 'ChatAdminRights';

    static fromReader(reader: Reader): ChatAdminRights;
  }
  export class ChatBannedRights extends VirtualClass<{
    // flags: Api.Type;
    viewMessages?: true;
    sendMessages?: true;
    sendMedia?: true;
    sendStickers?: true;
    sendGifs?: true;
    sendGames?: true;
    sendInline?: true;
    embedLinks?: true;
    sendPolls?: true;
    changeInfo?: true;
    inviteUsers?: true;
    pinMessages?: true;
    manageTopics?: true;
    sendPhotos?: true;
    sendVideos?: true;
    sendRoundvideos?: true;
    sendAudios?: true;
    sendVoices?: true;
    sendDocs?: true;
    sendPlain?: true;
    editRank?: true;
    sendReactions?: true;
    untilDate: int;
  }> {
    // flags: Api.Type;
    viewMessages?: true;
    sendMessages?: true;
    sendMedia?: true;
    sendStickers?: true;
    sendGifs?: true;
    sendGames?: true;
    sendInline?: true;
    embedLinks?: true;
    sendPolls?: true;
    changeInfo?: true;
    inviteUsers?: true;
    pinMessages?: true;
    manageTopics?: true;
    sendPhotos?: true;
    sendVideos?: true;
    sendRoundvideos?: true;
    sendAudios?: true;
    sendVoices?: true;
    sendDocs?: true;
    sendPlain?: true;
    editRank?: true;
    sendReactions?: true;
    untilDate: int;
    CONSTRUCTOR_ID: 2668758040;
    SUBCLASS_OF_ID: 1263814057;
    className: 'ChatBannedRights';

    static fromReader(reader: Reader): ChatBannedRights;
  }
  export class InputWallPaper extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 3861952889;
    SUBCLASS_OF_ID: 4000784410;
    className: 'InputWallPaper';

    static fromReader(reader: Reader): InputWallPaper;
  }
  export class InputWallPaperSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 1913199744;
    SUBCLASS_OF_ID: 4000784410;
    className: 'InputWallPaperSlug';

    static fromReader(reader: Reader): InputWallPaperSlug;
  }
  export class InputWallPaperNoFile extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 2524595758;
    SUBCLASS_OF_ID: 4000784410;
    className: 'InputWallPaperNoFile';

    static fromReader(reader: Reader): InputWallPaperNoFile;
  }
  export class CodeSettings extends VirtualClass<{
    // flags: Api.Type;
    allowFlashcall?: true;
    currentNumber?: true;
    allowAppHash?: true;
    allowMissedCall?: true;
    allowFirebase?: true;
    unknownNumber?: true;
    logoutTokens?: bytes[];
    token?: string;
    appSandbox?: Bool;
  } | void> {
    // flags: Api.Type;
    allowFlashcall?: true;
    currentNumber?: true;
    allowAppHash?: true;
    allowMissedCall?: true;
    allowFirebase?: true;
    unknownNumber?: true;
    logoutTokens?: bytes[];
    token?: string;
    appSandbox?: Bool;
    CONSTRUCTOR_ID: 2904898936;
    SUBCLASS_OF_ID: 1223539850;
    className: 'CodeSettings';

    static fromReader(reader: Reader): CodeSettings;
  }
  export class WallPaperSettings extends VirtualClass<{
    // flags: Api.Type;
    blur?: true;
    motion?: true;
    backgroundColor?: int;
    secondBackgroundColor?: int;
    thirdBackgroundColor?: int;
    fourthBackgroundColor?: int;
    intensity?: int;
    rotation?: int;
    emoticon?: string;
  } | void> {
    // flags: Api.Type;
    blur?: true;
    motion?: true;
    backgroundColor?: int;
    secondBackgroundColor?: int;
    thirdBackgroundColor?: int;
    fourthBackgroundColor?: int;
    intensity?: int;
    rotation?: int;
    emoticon?: string;
    CONSTRUCTOR_ID: 925826256;
    SUBCLASS_OF_ID: 1098244882;
    className: 'WallPaperSettings';

    static fromReader(reader: Reader): WallPaperSettings;
  }
  export class AutoDownloadSettings extends VirtualClass<{
    // flags: Api.Type;
    disabled?: true;
    videoPreloadLarge?: true;
    audioPreloadNext?: true;
    phonecallsLessData?: true;
    storiesPreload?: true;
    photoSizeMax: int;
    videoSizeMax: long;
    fileSizeMax: long;
    videoUploadMaxbitrate: int;
    smallQueueActiveOperationsMax: int;
    largeQueueActiveOperationsMax: int;
  }> {
    // flags: Api.Type;
    disabled?: true;
    videoPreloadLarge?: true;
    audioPreloadNext?: true;
    phonecallsLessData?: true;
    storiesPreload?: true;
    photoSizeMax: int;
    videoSizeMax: long;
    fileSizeMax: long;
    videoUploadMaxbitrate: int;
    smallQueueActiveOperationsMax: int;
    largeQueueActiveOperationsMax: int;
    CONSTRUCTOR_ID: 3131405864;
    SUBCLASS_OF_ID: 1361582535;
    className: 'AutoDownloadSettings';

    static fromReader(reader: Reader): AutoDownloadSettings;
  }
  export class EmojiKeyword extends VirtualClass<{
    keyword: string;
    emoticons: string[];
  }> {
    keyword: string;
    emoticons: string[];
    CONSTRUCTOR_ID: 3585325561;
    SUBCLASS_OF_ID: 1712497982;
    className: 'EmojiKeyword';

    static fromReader(reader: Reader): EmojiKeyword;
  }
  export class EmojiKeywordDeleted extends VirtualClass<{
    keyword: string;
    emoticons: string[];
  }> {
    keyword: string;
    emoticons: string[];
    CONSTRUCTOR_ID: 594408994;
    SUBCLASS_OF_ID: 1712497982;
    className: 'EmojiKeywordDeleted';

    static fromReader(reader: Reader): EmojiKeywordDeleted;
  }
  export class EmojiKeywordsDifference extends VirtualClass<{
    langCode: string;
    fromVersion: int;
    version: int;
    keywords: Api.TypeEmojiKeyword[];
  }> {
    langCode: string;
    fromVersion: int;
    version: int;
    keywords: Api.TypeEmojiKeyword[];
    CONSTRUCTOR_ID: 1556570557;
    SUBCLASS_OF_ID: 3531196018;
    className: 'EmojiKeywordsDifference';

    static fromReader(reader: Reader): EmojiKeywordsDifference;
  }
  export class EmojiURL extends VirtualClass<{
    url: string;
  }> {
    url: string;
    CONSTRUCTOR_ID: 2775937949;
    SUBCLASS_OF_ID: 530614809;
    className: 'EmojiURL';

    static fromReader(reader: Reader): EmojiURL;
  }
  export class EmojiLanguage extends VirtualClass<{
    langCode: string;
  }> {
    langCode: string;
    CONSTRUCTOR_ID: 3019592545;
    SUBCLASS_OF_ID: 2760705262;
    className: 'EmojiLanguage';

    static fromReader(reader: Reader): EmojiLanguage;
  }
  export class Folder extends VirtualClass<{
    // flags: Api.Type;
    autofillNewBroadcasts?: true;
    autofillPublicGroups?: true;
    autofillNewCorrespondents?: true;
    id: int;
    title: string;
    photo?: Api.TypeChatPhoto;
  }> {
    // flags: Api.Type;
    autofillNewBroadcasts?: true;
    autofillPublicGroups?: true;
    autofillNewCorrespondents?: true;
    id: int;
    title: string;
    photo?: Api.TypeChatPhoto;
    CONSTRUCTOR_ID: 4283715173;
    SUBCLASS_OF_ID: 3943566587;
    className: 'Folder';

    static fromReader(reader: Reader): Folder;
  }
  export class InputFolderPeer extends VirtualClass<{
    peer: Api.TypeInputPeer;
    folderId: int;
  }> {
    peer: Api.TypeInputPeer;
    folderId: int;
    CONSTRUCTOR_ID: 4224893590;
    SUBCLASS_OF_ID: 1954700800;
    className: 'InputFolderPeer';

    static fromReader(reader: Reader): InputFolderPeer;
  }
  export class FolderPeer extends VirtualClass<{
    peer: Api.TypePeer;
    folderId: int;
  }> {
    peer: Api.TypePeer;
    folderId: int;
    CONSTRUCTOR_ID: 3921323624;
    SUBCLASS_OF_ID: 4092733499;
    className: 'FolderPeer';

    static fromReader(reader: Reader): FolderPeer;
  }
  export class UrlAuthResultRequest extends VirtualClass<{
    // flags: Api.Type;
    requestWriteAccess?: true;
    requestPhoneNumber?: true;
    matchCodesFirst?: true;
    isApp?: true;
    bot: Api.TypeUser;
    domain: string;
    browser?: string;
    platform?: string;
    ip?: string;
    region?: string;
    matchCodes?: string[];
    userIdHint?: long;
    verifiedAppName?: string;
  }> {
    // flags: Api.Type;
    requestWriteAccess?: true;
    requestPhoneNumber?: true;
    matchCodesFirst?: true;
    isApp?: true;
    bot: Api.TypeUser;
    domain: string;
    browser?: string;
    platform?: string;
    ip?: string;
    region?: string;
    matchCodes?: string[];
    userIdHint?: long;
    verifiedAppName?: string;
    CONSTRUCTOR_ID: 1020666860;
    SUBCLASS_OF_ID: 2003159838;
    className: 'UrlAuthResultRequest';

    static fromReader(reader: Reader): UrlAuthResultRequest;
  }
  export class UrlAuthResultAccepted extends VirtualClass<{
    // flags: Api.Type;
    url?: string;
  } | void> {
    // flags: Api.Type;
    url?: string;
    CONSTRUCTOR_ID: 1648005024;
    SUBCLASS_OF_ID: 2003159838;
    className: 'UrlAuthResultAccepted';

    static fromReader(reader: Reader): UrlAuthResultAccepted;
  }
  export class UrlAuthResultDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2849430303;
    SUBCLASS_OF_ID: 2003159838;
    className: 'UrlAuthResultDefault';

    static fromReader(reader: Reader): UrlAuthResultDefault;
  }
  export class ChannelLocationEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3216354699;
    SUBCLASS_OF_ID: 3961916287;
    className: 'ChannelLocationEmpty';

    static fromReader(reader: Reader): ChannelLocationEmpty;
  }
  export class ChannelLocation extends VirtualClass<{
    geoPoint: Api.TypeGeoPoint;
    address: string;
  }> {
    geoPoint: Api.TypeGeoPoint;
    address: string;
    CONSTRUCTOR_ID: 547062491;
    SUBCLASS_OF_ID: 3961916287;
    className: 'ChannelLocation';

    static fromReader(reader: Reader): ChannelLocation;
  }
  export class PeerLocated extends VirtualClass<{
    peer: Api.TypePeer;
    expires: int;
    distance: int;
  }> {
    peer: Api.TypePeer;
    expires: int;
    distance: int;
    CONSTRUCTOR_ID: 3393592157;
    SUBCLASS_OF_ID: 4208604332;
    className: 'PeerLocated';

    static fromReader(reader: Reader): PeerLocated;
  }
  export class PeerSelfLocated extends VirtualClass<{
    expires: int;
  }> {
    expires: int;
    CONSTRUCTOR_ID: 4176226379;
    SUBCLASS_OF_ID: 4208604332;
    className: 'PeerSelfLocated';

    static fromReader(reader: Reader): PeerSelfLocated;
  }
  export class RestrictionReason extends VirtualClass<{
    platform: string;
    reason: string;
    text: string;
  }> {
    platform: string;
    reason: string;
    text: string;
    CONSTRUCTOR_ID: 3497176244;
    SUBCLASS_OF_ID: 112039341;
    className: 'RestrictionReason';

    static fromReader(reader: Reader): RestrictionReason;
  }
  export class InputTheme extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 1012306921;
    SUBCLASS_OF_ID: 127992048;
    className: 'InputTheme';

    static fromReader(reader: Reader): InputTheme;
  }
  export class InputThemeSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 4119399921;
    SUBCLASS_OF_ID: 127992048;
    className: 'InputThemeSlug';

    static fromReader(reader: Reader): InputThemeSlug;
  }
  export class Theme extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    default?: true;
    forChat?: true;
    id: long;
    accessHash: long;
    slug: string;
    title: string;
    document?: Api.TypeDocument;
    settings?: Api.TypeThemeSettings[];
    emoticon?: string;
    installsCount?: int;
  }> {
    // flags: Api.Type;
    creator?: true;
    default?: true;
    forChat?: true;
    id: long;
    accessHash: long;
    slug: string;
    title: string;
    document?: Api.TypeDocument;
    settings?: Api.TypeThemeSettings[];
    emoticon?: string;
    installsCount?: int;
    CONSTRUCTOR_ID: 2685298646;
    SUBCLASS_OF_ID: 1454688268;
    className: 'Theme';

    static fromReader(reader: Reader): Theme;
  }
  export class BaseThemeClassic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3282117730;
    SUBCLASS_OF_ID: 520352836;
    className: 'BaseThemeClassic';

    static fromReader(reader: Reader): BaseThemeClassic;
  }
  export class BaseThemeDay extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4225242760;
    SUBCLASS_OF_ID: 520352836;
    className: 'BaseThemeDay';

    static fromReader(reader: Reader): BaseThemeDay;
  }
  export class BaseThemeNight extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3081969320;
    SUBCLASS_OF_ID: 520352836;
    className: 'BaseThemeNight';

    static fromReader(reader: Reader): BaseThemeNight;
  }
  export class BaseThemeTinted extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1834973166;
    SUBCLASS_OF_ID: 520352836;
    className: 'BaseThemeTinted';

    static fromReader(reader: Reader): BaseThemeTinted;
  }
  export class BaseThemeArctic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1527845466;
    SUBCLASS_OF_ID: 520352836;
    className: 'BaseThemeArctic';

    static fromReader(reader: Reader): BaseThemeArctic;
  }
  export class InputThemeSettings extends VirtualClass<{
    // flags: Api.Type;
    messageColorsAnimated?: true;
    baseTheme: Api.TypeBaseTheme;
    accentColor: int;
    outboxAccentColor?: int;
    messageColors?: int[];
    wallpaper?: Api.TypeInputWallPaper;
    wallpaperSettings?: Api.TypeWallPaperSettings;
  }> {
    // flags: Api.Type;
    messageColorsAnimated?: true;
    baseTheme: Api.TypeBaseTheme;
    accentColor: int;
    outboxAccentColor?: int;
    messageColors?: int[];
    wallpaper?: Api.TypeInputWallPaper;
    wallpaperSettings?: Api.TypeWallPaperSettings;
    CONSTRUCTOR_ID: 2413711439;
    SUBCLASS_OF_ID: 2201536642;
    className: 'InputThemeSettings';

    static fromReader(reader: Reader): InputThemeSettings;
  }
  export class ThemeSettings extends VirtualClass<{
    // flags: Api.Type;
    messageColorsAnimated?: true;
    baseTheme: Api.TypeBaseTheme;
    accentColor: int;
    outboxAccentColor?: int;
    messageColors?: int[];
    wallpaper?: Api.TypeWallPaper;
  }> {
    // flags: Api.Type;
    messageColorsAnimated?: true;
    baseTheme: Api.TypeBaseTheme;
    accentColor: int;
    outboxAccentColor?: int;
    messageColors?: int[];
    wallpaper?: Api.TypeWallPaper;
    CONSTRUCTOR_ID: 4200117972;
    SUBCLASS_OF_ID: 2187750712;
    className: 'ThemeSettings';

    static fromReader(reader: Reader): ThemeSettings;
  }
  export class WebPageAttributeTheme extends VirtualClass<{
    // flags: Api.Type;
    documents?: Api.TypeDocument[];
    settings?: Api.TypeThemeSettings;
  } | void> {
    // flags: Api.Type;
    documents?: Api.TypeDocument[];
    settings?: Api.TypeThemeSettings;
    CONSTRUCTOR_ID: 1421174295;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeTheme';

    static fromReader(reader: Reader): WebPageAttributeTheme;
  }
  export class WebPageAttributeStory extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    id: int;
    story?: Api.TypeStoryItem;
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    id: int;
    story?: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 781501415;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeStory';

    static fromReader(reader: Reader): WebPageAttributeStory;
  }
  export class WebPageAttributeStickerSet extends VirtualClass<{
    // flags: Api.Type;
    emojis?: true;
    textColor?: true;
    stickers: Api.TypeDocument[];
  }> {
    // flags: Api.Type;
    emojis?: true;
    textColor?: true;
    stickers: Api.TypeDocument[];
    CONSTRUCTOR_ID: 1355547603;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeStickerSet';

    static fromReader(reader: Reader): WebPageAttributeStickerSet;
  }
  export class WebPageAttributeUniqueStarGift extends VirtualClass<{
    gift: Api.TypeStarGift;
  }> {
    gift: Api.TypeStarGift;
    CONSTRUCTOR_ID: 3480186296;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeUniqueStarGift';

    static fromReader(reader: Reader): WebPageAttributeUniqueStarGift;
  }
  export class WebPageAttributeStarGiftCollection extends VirtualClass<{
    icons: Api.TypeDocument[];
  }> {
    icons: Api.TypeDocument[];
    CONSTRUCTOR_ID: 835375875;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeStarGiftCollection';

    static fromReader(reader: Reader): WebPageAttributeStarGiftCollection;
  }
  export class WebPageAttributeStarGiftAuction extends VirtualClass<{
    gift: Api.TypeStarGift;
    endDate: int;
  }> {
    gift: Api.TypeStarGift;
    endDate: int;
    CONSTRUCTOR_ID: 29770178;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeStarGiftAuction';

    static fromReader(reader: Reader): WebPageAttributeStarGiftAuction;
  }
  export class WebPageAttributeAiComposeTone extends VirtualClass<{
    emojiId: long;
  }> {
    emojiId: long;
    CONSTRUCTOR_ID: 2005007896;
    SUBCLASS_OF_ID: 2949638599;
    className: 'WebPageAttributeAiComposeTone';

    static fromReader(reader: Reader): WebPageAttributeAiComposeTone;
  }
  export class BankCardOpenUrl extends VirtualClass<{
    url: string;
    name: string;
  }> {
    url: string;
    name: string;
    CONSTRUCTOR_ID: 4117234314;
    SUBCLASS_OF_ID: 4074915342;
    className: 'BankCardOpenUrl';

    static fromReader(reader: Reader): BankCardOpenUrl;
  }
  export class DialogFilter extends VirtualClass<{
    // flags: Api.Type;
    contacts?: true;
    nonContacts?: true;
    groups?: true;
    broadcasts?: true;
    bots?: true;
    excludeMuted?: true;
    excludeRead?: true;
    excludeArchived?: true;
    titleNoanimate?: true;
    id: int;
    title: Api.TypeTextWithEntities;
    emoticon?: string;
    color?: int;
    pinnedPeers: Api.TypeInputPeer[];
    includePeers: Api.TypeInputPeer[];
    excludePeers: Api.TypeInputPeer[];
  }> {
    // flags: Api.Type;
    contacts?: true;
    nonContacts?: true;
    groups?: true;
    broadcasts?: true;
    bots?: true;
    excludeMuted?: true;
    excludeRead?: true;
    excludeArchived?: true;
    titleNoanimate?: true;
    id: int;
    title: Api.TypeTextWithEntities;
    emoticon?: string;
    color?: int;
    pinnedPeers: Api.TypeInputPeer[];
    includePeers: Api.TypeInputPeer[];
    excludePeers: Api.TypeInputPeer[];
    CONSTRUCTOR_ID: 2856789585;
    SUBCLASS_OF_ID: 1764475991;
    className: 'DialogFilter';

    static fromReader(reader: Reader): DialogFilter;
  }
  export class DialogFilterDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 909284270;
    SUBCLASS_OF_ID: 1764475991;
    className: 'DialogFilterDefault';

    static fromReader(reader: Reader): DialogFilterDefault;
  }
  export class DialogFilterChatlist extends VirtualClass<{
    // flags: Api.Type;
    hasMyInvites?: true;
    titleNoanimate?: true;
    id: int;
    title: Api.TypeTextWithEntities;
    emoticon?: string;
    color?: int;
    pinnedPeers: Api.TypeInputPeer[];
    includePeers: Api.TypeInputPeer[];
  }> {
    // flags: Api.Type;
    hasMyInvites?: true;
    titleNoanimate?: true;
    id: int;
    title: Api.TypeTextWithEntities;
    emoticon?: string;
    color?: int;
    pinnedPeers: Api.TypeInputPeer[];
    includePeers: Api.TypeInputPeer[];
    CONSTRUCTOR_ID: 2522053591;
    SUBCLASS_OF_ID: 1764475991;
    className: 'DialogFilterChatlist';

    static fromReader(reader: Reader): DialogFilterChatlist;
  }
  export class DialogFilterSuggested extends VirtualClass<{
    filter: Api.TypeDialogFilter;
    description: string;
  }> {
    filter: Api.TypeDialogFilter;
    description: string;
    CONSTRUCTOR_ID: 2004110666;
    SUBCLASS_OF_ID: 837673094;
    className: 'DialogFilterSuggested';

    static fromReader(reader: Reader): DialogFilterSuggested;
  }
  export class StatsDateRangeDays extends VirtualClass<{
    minDate: int;
    maxDate: int;
  }> {
    minDate: int;
    maxDate: int;
    CONSTRUCTOR_ID: 3057118639;
    SUBCLASS_OF_ID: 2166579781;
    className: 'StatsDateRangeDays';

    static fromReader(reader: Reader): StatsDateRangeDays;
  }
  export class StatsAbsValueAndPrev extends VirtualClass<{
    current: double;
    previous: double;
  }> {
    current: double;
    previous: double;
    CONSTRUCTOR_ID: 3410210014;
    SUBCLASS_OF_ID: 1052662191;
    className: 'StatsAbsValueAndPrev';

    static fromReader(reader: Reader): StatsAbsValueAndPrev;
  }
  export class StatsPercentValue extends VirtualClass<{
    part: double;
    total: double;
  }> {
    part: double;
    total: double;
    CONSTRUCTOR_ID: 3419287520;
    SUBCLASS_OF_ID: 2533541150;
    className: 'StatsPercentValue';

    static fromReader(reader: Reader): StatsPercentValue;
  }
  export class StatsGraphAsync extends VirtualClass<{
    token: string;
  }> {
    token: string;
    CONSTRUCTOR_ID: 1244130093;
    SUBCLASS_OF_ID: 2609918291;
    className: 'StatsGraphAsync';

    static fromReader(reader: Reader): StatsGraphAsync;
  }
  export class StatsGraphError extends VirtualClass<{
    error: string;
  }> {
    error: string;
    CONSTRUCTOR_ID: 3202127906;
    SUBCLASS_OF_ID: 2609918291;
    className: 'StatsGraphError';

    static fromReader(reader: Reader): StatsGraphError;
  }
  export class StatsGraph extends VirtualClass<{
    // flags: Api.Type;
    json: Api.TypeDataJSON;
    zoomToken?: string;
  }> {
    // flags: Api.Type;
    json: Api.TypeDataJSON;
    zoomToken?: string;
    CONSTRUCTOR_ID: 2393138358;
    SUBCLASS_OF_ID: 2609918291;
    className: 'StatsGraph';

    static fromReader(reader: Reader): StatsGraph;
  }
  export class VideoSize extends VirtualClass<{
    // flags: Api.Type;
    type: string;
    w: int;
    h: int;
    size: int;
    videoStartTs?: double;
  }> {
    // flags: Api.Type;
    type: string;
    w: int;
    h: int;
    size: int;
    videoStartTs?: double;
    CONSTRUCTOR_ID: 3727929492;
    SUBCLASS_OF_ID: 1660015881;
    className: 'VideoSize';

    static fromReader(reader: Reader): VideoSize;
  }
  export class VideoSizeEmojiMarkup extends VirtualClass<{
    emojiId: long;
    backgroundColors: int[];
  }> {
    emojiId: long;
    backgroundColors: int[];
    CONSTRUCTOR_ID: 4166795580;
    SUBCLASS_OF_ID: 1660015881;
    className: 'VideoSizeEmojiMarkup';

    static fromReader(reader: Reader): VideoSizeEmojiMarkup;
  }
  export class VideoSizeStickerMarkup extends VirtualClass<{
    stickerset: Api.TypeInputStickerSet;
    stickerId: long;
    backgroundColors: int[];
  }> {
    stickerset: Api.TypeInputStickerSet;
    stickerId: long;
    backgroundColors: int[];
    CONSTRUCTOR_ID: 228623102;
    SUBCLASS_OF_ID: 1660015881;
    className: 'VideoSizeStickerMarkup';

    static fromReader(reader: Reader): VideoSizeStickerMarkup;
  }
  export class StatsGroupTopPoster extends VirtualClass<{
    userId: long;
    messages: int;
    avgChars: int;
  }> {
    userId: long;
    messages: int;
    avgChars: int;
    CONSTRUCTOR_ID: 2634330011;
    SUBCLASS_OF_ID: 2177224227;
    className: 'StatsGroupTopPoster';

    static fromReader(reader: Reader): StatsGroupTopPoster;
  }
  export class StatsGroupTopAdmin extends VirtualClass<{
    userId: long;
    deleted: int;
    kicked: int;
    banned: int;
  }> {
    userId: long;
    deleted: int;
    kicked: int;
    banned: int;
    CONSTRUCTOR_ID: 3612888199;
    SUBCLASS_OF_ID: 2150997085;
    className: 'StatsGroupTopAdmin';

    static fromReader(reader: Reader): StatsGroupTopAdmin;
  }
  export class StatsGroupTopInviter extends VirtualClass<{
    userId: long;
    invitations: int;
  }> {
    userId: long;
    invitations: int;
    CONSTRUCTOR_ID: 1398765469;
    SUBCLASS_OF_ID: 2231438458;
    className: 'StatsGroupTopInviter';

    static fromReader(reader: Reader): StatsGroupTopInviter;
  }
  export class GlobalPrivacySettings extends VirtualClass<{
    // flags: Api.Type;
    archiveAndMuteNewNoncontactPeers?: true;
    keepArchivedUnmuted?: true;
    keepArchivedFolders?: true;
    hideReadMarks?: true;
    newNoncontactPeersRequirePremium?: true;
    displayGiftsButton?: true;
    noncontactPeersPaidStars?: long;
    disallowedGifts?: Api.TypeDisallowedGiftsSettings;
  } | void> {
    // flags: Api.Type;
    archiveAndMuteNewNoncontactPeers?: true;
    keepArchivedUnmuted?: true;
    keepArchivedFolders?: true;
    hideReadMarks?: true;
    newNoncontactPeersRequirePremium?: true;
    displayGiftsButton?: true;
    noncontactPeersPaidStars?: long;
    disallowedGifts?: Api.TypeDisallowedGiftsSettings;
    CONSTRUCTOR_ID: 4265718607;
    SUBCLASS_OF_ID: 3373160304;
    className: 'GlobalPrivacySettings';

    static fromReader(reader: Reader): GlobalPrivacySettings;
  }
  export class MessageViews extends VirtualClass<{
    // flags: Api.Type;
    views?: int;
    forwards?: int;
    replies?: Api.TypeMessageReplies;
  } | void> {
    // flags: Api.Type;
    views?: int;
    forwards?: int;
    replies?: Api.TypeMessageReplies;
    CONSTRUCTOR_ID: 1163625789;
    SUBCLASS_OF_ID: 1018201017;
    className: 'MessageViews';

    static fromReader(reader: Reader): MessageViews;
  }
  export class MessageReplyHeader extends VirtualClass<{
    // flags: Api.Type;
    replyToScheduled?: true;
    forumTopic?: true;
    quote?: true;
    replyToMsgId?: int;
    replyToPeerId?: Api.TypePeer;
    replyFrom?: Api.TypeMessageFwdHeader;
    replyMedia?: Api.TypeMessageMedia;
    replyToTopId?: int;
    quoteText?: string;
    quoteEntities?: Api.TypeMessageEntity[];
    quoteOffset?: int;
    todoItemId?: int;
    pollOption?: bytes;
  } | void> {
    // flags: Api.Type;
    replyToScheduled?: true;
    forumTopic?: true;
    quote?: true;
    replyToMsgId?: int;
    replyToPeerId?: Api.TypePeer;
    replyFrom?: Api.TypeMessageFwdHeader;
    replyMedia?: Api.TypeMessageMedia;
    replyToTopId?: int;
    quoteText?: string;
    quoteEntities?: Api.TypeMessageEntity[];
    quoteOffset?: int;
    todoItemId?: int;
    pollOption?: bytes;
    CONSTRUCTOR_ID: 462937446;
    SUBCLASS_OF_ID: 1531810151;
    className: 'MessageReplyHeader';

    static fromReader(reader: Reader): MessageReplyHeader;
  }
  export class MessageReplyStoryHeader extends VirtualClass<{
    peer: Api.TypePeer;
    storyId: int;
  }> {
    peer: Api.TypePeer;
    storyId: int;
    CONSTRUCTOR_ID: 240843065;
    SUBCLASS_OF_ID: 1531810151;
    className: 'MessageReplyStoryHeader';

    static fromReader(reader: Reader): MessageReplyStoryHeader;
  }
  export class MessageReplies extends VirtualClass<{
    // flags: Api.Type;
    comments?: true;
    replies: int;
    repliesPts: int;
    recentRepliers?: Api.TypePeer[];
    channelId?: long;
    maxId?: int;
    readMaxId?: int;
  }> {
    // flags: Api.Type;
    comments?: true;
    replies: int;
    repliesPts: int;
    recentRepliers?: Api.TypePeer[];
    channelId?: long;
    maxId?: int;
    readMaxId?: int;
    CONSTRUCTOR_ID: 2211844034;
    SUBCLASS_OF_ID: 1825397986;
    className: 'MessageReplies';

    static fromReader(reader: Reader): MessageReplies;
  }
  export class PeerBlocked extends VirtualClass<{
    peerId: Api.TypePeer;
    date: int;
  }> {
    peerId: Api.TypePeer;
    date: int;
    CONSTRUCTOR_ID: 3908927508;
    SUBCLASS_OF_ID: 1425210520;
    className: 'PeerBlocked';

    static fromReader(reader: Reader): PeerBlocked;
  }
  export class GroupCallDiscarded extends VirtualClass<{
    id: long;
    accessHash: long;
    duration: int;
  }> {
    id: long;
    accessHash: long;
    duration: int;
    CONSTRUCTOR_ID: 2004925620;
    SUBCLASS_OF_ID: 548729632;
    className: 'GroupCallDiscarded';

    static fromReader(reader: Reader): GroupCallDiscarded;
  }
  export class GroupCall extends VirtualClass<{
    // flags: Api.Type;
    joinMuted?: true;
    canChangeJoinMuted?: true;
    joinDateAsc?: true;
    scheduleStartSubscribed?: true;
    canStartVideo?: true;
    recordVideoActive?: true;
    rtmpStream?: true;
    listenersHidden?: true;
    conference?: true;
    creator?: true;
    messagesEnabled?: true;
    canChangeMessagesEnabled?: true;
    min?: true;
    id: long;
    accessHash: long;
    participantsCount: int;
    title?: string;
    streamDcId?: int;
    recordStartDate?: int;
    scheduleDate?: int;
    unmutedVideoCount?: int;
    unmutedVideoLimit: int;
    version: int;
    inviteLink?: string;
    sendPaidMessagesStars?: long;
    defaultSendAs?: Api.TypePeer;
  }> {
    // flags: Api.Type;
    joinMuted?: true;
    canChangeJoinMuted?: true;
    joinDateAsc?: true;
    scheduleStartSubscribed?: true;
    canStartVideo?: true;
    recordVideoActive?: true;
    rtmpStream?: true;
    listenersHidden?: true;
    conference?: true;
    creator?: true;
    messagesEnabled?: true;
    canChangeMessagesEnabled?: true;
    min?: true;
    id: long;
    accessHash: long;
    participantsCount: int;
    title?: string;
    streamDcId?: int;
    recordStartDate?: int;
    scheduleDate?: int;
    unmutedVideoCount?: int;
    unmutedVideoLimit: int;
    version: int;
    inviteLink?: string;
    sendPaidMessagesStars?: long;
    defaultSendAs?: Api.TypePeer;
    CONSTRUCTOR_ID: 4021466647;
    SUBCLASS_OF_ID: 548729632;
    className: 'GroupCall';

    static fromReader(reader: Reader): GroupCall;
  }
  export class InputGroupCall extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 3635053583;
    SUBCLASS_OF_ID: 1482758833;
    className: 'InputGroupCall';

    static fromReader(reader: Reader): InputGroupCall;
  }
  export class InputGroupCallSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 4261839423;
    SUBCLASS_OF_ID: 1482758833;
    className: 'InputGroupCallSlug';

    static fromReader(reader: Reader): InputGroupCallSlug;
  }
  export class InputGroupCallInviteMessage extends VirtualClass<{
    msgId: int;
  }> {
    msgId: int;
    CONSTRUCTOR_ID: 2349883455;
    SUBCLASS_OF_ID: 1482758833;
    className: 'InputGroupCallInviteMessage';

    static fromReader(reader: Reader): InputGroupCallInviteMessage;
  }
  export class GroupCallParticipant extends VirtualClass<{
    // flags: Api.Type;
    muted?: true;
    left?: true;
    canSelfUnmute?: true;
    justJoined?: true;
    versioned?: true;
    min?: true;
    mutedByYou?: true;
    volumeByAdmin?: true;
    self?: true;
    videoJoined?: true;
    peer: Api.TypePeer;
    date: int;
    activeDate?: int;
    source: int;
    volume?: int;
    about?: string;
    raiseHandRating?: long;
    video?: Api.TypeGroupCallParticipantVideo;
    presentation?: Api.TypeGroupCallParticipantVideo;
    paidStarsTotal?: long;
  }> {
    // flags: Api.Type;
    muted?: true;
    left?: true;
    canSelfUnmute?: true;
    justJoined?: true;
    versioned?: true;
    min?: true;
    mutedByYou?: true;
    volumeByAdmin?: true;
    self?: true;
    videoJoined?: true;
    peer: Api.TypePeer;
    date: int;
    activeDate?: int;
    source: int;
    volume?: int;
    about?: string;
    raiseHandRating?: long;
    video?: Api.TypeGroupCallParticipantVideo;
    presentation?: Api.TypeGroupCallParticipantVideo;
    paidStarsTotal?: long;
    CONSTRUCTOR_ID: 708691884;
    SUBCLASS_OF_ID: 3222974284;
    className: 'GroupCallParticipant';

    static fromReader(reader: Reader): GroupCallParticipant;
  }
  export class InlineQueryPeerTypeSameBotPM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 813821341;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypeSameBotPM';

    static fromReader(reader: Reader): InlineQueryPeerTypeSameBotPM;
  }
  export class InlineQueryPeerTypePM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2201751468;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypePM';

    static fromReader(reader: Reader): InlineQueryPeerTypePM;
  }
  export class InlineQueryPeerTypeChat extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3613836554;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypeChat';

    static fromReader(reader: Reader): InlineQueryPeerTypeChat;
  }
  export class InlineQueryPeerTypeMegagroup extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1589952067;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypeMegagroup';

    static fromReader(reader: Reader): InlineQueryPeerTypeMegagroup;
  }
  export class InlineQueryPeerTypeBroadcast extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1664413338;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypeBroadcast';

    static fromReader(reader: Reader): InlineQueryPeerTypeBroadcast;
  }
  export class InlineQueryPeerTypeBotPM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 238759180;
    SUBCLASS_OF_ID: 2947611167;
    className: 'InlineQueryPeerTypeBotPM';

    static fromReader(reader: Reader): InlineQueryPeerTypeBotPM;
  }
  export class ChatInviteImporter extends VirtualClass<{
    // flags: Api.Type;
    requested?: true;
    viaChatlist?: true;
    userId: long;
    date: int;
    about?: string;
    approvedBy?: long;
  }> {
    // flags: Api.Type;
    requested?: true;
    viaChatlist?: true;
    userId: long;
    date: int;
    about?: string;
    approvedBy?: long;
    CONSTRUCTOR_ID: 2354765785;
    SUBCLASS_OF_ID: 1393710126;
    className: 'ChatInviteImporter';

    static fromReader(reader: Reader): ChatInviteImporter;
  }
  export class ChatAdminWithInvites extends VirtualClass<{
    adminId: long;
    invitesCount: int;
    revokedInvitesCount: int;
  }> {
    adminId: long;
    invitesCount: int;
    revokedInvitesCount: int;
    CONSTRUCTOR_ID: 4075613987;
    SUBCLASS_OF_ID: 1348727704;
    className: 'ChatAdminWithInvites';

    static fromReader(reader: Reader): ChatAdminWithInvites;
  }
  export class GroupCallParticipantVideoSourceGroup extends VirtualClass<{
    semantics: string;
    sources: int[];
  }> {
    semantics: string;
    sources: int[];
    CONSTRUCTOR_ID: 3702593719;
    SUBCLASS_OF_ID: 806746236;
    className: 'GroupCallParticipantVideoSourceGroup';

    static fromReader(reader: Reader): GroupCallParticipantVideoSourceGroup;
  }
  export class GroupCallParticipantVideo extends VirtualClass<{
    // flags: Api.Type;
    paused?: true;
    endpoint: string;
    sourceGroups: Api.TypeGroupCallParticipantVideoSourceGroup[];
    audioSource?: int;
  }> {
    // flags: Api.Type;
    paused?: true;
    endpoint: string;
    sourceGroups: Api.TypeGroupCallParticipantVideoSourceGroup[];
    audioSource?: int;
    CONSTRUCTOR_ID: 1735736008;
    SUBCLASS_OF_ID: 4014389467;
    className: 'GroupCallParticipantVideo';

    static fromReader(reader: Reader): GroupCallParticipantVideo;
  }
  export class BotCommandScopeDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 795652779;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopeDefault';

    static fromReader(reader: Reader): BotCommandScopeDefault;
  }
  export class BotCommandScopeUsers extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1011811544;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopeUsers';

    static fromReader(reader: Reader): BotCommandScopeUsers;
  }
  export class BotCommandScopeChats extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1877059713;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopeChats';

    static fromReader(reader: Reader): BotCommandScopeChats;
  }
  export class BotCommandScopeChatAdmins extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3114950762;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopeChatAdmins';

    static fromReader(reader: Reader): BotCommandScopeChatAdmins;
  }
  export class BotCommandScopePeer extends VirtualClass<{
    peer: Api.TypeInputPeer;
  }> {
    peer: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 3684534653;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopePeer';

    static fromReader(reader: Reader): BotCommandScopePeer;
  }
  export class BotCommandScopePeerAdmins extends VirtualClass<{
    peer: Api.TypeInputPeer;
  }> {
    peer: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 1071145937;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopePeerAdmins';

    static fromReader(reader: Reader): BotCommandScopePeerAdmins;
  }
  export class BotCommandScopePeerUser extends VirtualClass<{
    peer: Api.TypeInputPeer;
    userId: Api.TypeInputUser;
  }> {
    peer: Api.TypeInputPeer;
    userId: Api.TypeInputUser;
    CONSTRUCTOR_ID: 169026035;
    SUBCLASS_OF_ID: 1269783824;
    className: 'BotCommandScopePeerUser';

    static fromReader(reader: Reader): BotCommandScopePeerUser;
  }
  export class ChatTheme extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 3286236164;
    SUBCLASS_OF_ID: 805087221;
    className: 'ChatTheme';

    static fromReader(reader: Reader): ChatTheme;
  }
  export class ChatThemeUniqueGift extends VirtualClass<{
    gift: Api.TypeStarGift;
    themeSettings: Api.TypeThemeSettings[];
  }> {
    gift: Api.TypeStarGift;
    themeSettings: Api.TypeThemeSettings[];
    CONSTRUCTOR_ID: 878246344;
    SUBCLASS_OF_ID: 805087221;
    className: 'ChatThemeUniqueGift';

    static fromReader(reader: Reader): ChatThemeUniqueGift;
  }
  export class SponsoredMessage extends VirtualClass<{
    // flags: Api.Type;
    recommended?: true;
    canReport?: true;
    randomId: bytes;
    url: string;
    title: string;
    message: string;
    entities?: Api.TypeMessageEntity[];
    photo?: Api.TypePhoto;
    media?: Api.TypeMessageMedia;
    color?: Api.TypePeerColor;
    buttonText: string;
    sponsorInfo?: string;
    additionalInfo?: string;
    minDisplayDuration?: int;
    maxDisplayDuration?: int;
  }> {
    // flags: Api.Type;
    recommended?: true;
    canReport?: true;
    randomId: bytes;
    url: string;
    title: string;
    message: string;
    entities?: Api.TypeMessageEntity[];
    photo?: Api.TypePhoto;
    media?: Api.TypeMessageMedia;
    color?: Api.TypePeerColor;
    buttonText: string;
    sponsorInfo?: string;
    additionalInfo?: string;
    minDisplayDuration?: int;
    maxDisplayDuration?: int;
    CONSTRUCTOR_ID: 2109703795;
    SUBCLASS_OF_ID: 3780630582;
    className: 'SponsoredMessage';

    static fromReader(reader: Reader): SponsoredMessage;
  }
  export class SearchResultsCalendarPeriod extends VirtualClass<{
    date: int;
    minMsgId: int;
    maxMsgId: int;
    count: int;
  }> {
    date: int;
    minMsgId: int;
    maxMsgId: int;
    count: int;
    CONSTRUCTOR_ID: 3383776159;
    SUBCLASS_OF_ID: 3797743871;
    className: 'SearchResultsCalendarPeriod';

    static fromReader(reader: Reader): SearchResultsCalendarPeriod;
  }
  export class SearchResultPosition extends VirtualClass<{
    msgId: int;
    date: int;
    offset: int;
  }> {
    msgId: int;
    date: int;
    offset: int;
    CONSTRUCTOR_ID: 2137295719;
    SUBCLASS_OF_ID: 3101824532;
    className: 'SearchResultPosition';

    static fromReader(reader: Reader): SearchResultPosition;
  }
  export class ReactionCount extends VirtualClass<{
    // flags: Api.Type;
    chosenOrder?: int;
    reaction: Api.TypeReaction;
    count: int;
  }> {
    // flags: Api.Type;
    chosenOrder?: int;
    reaction: Api.TypeReaction;
    count: int;
    CONSTRUCTOR_ID: 2748435328;
    SUBCLASS_OF_ID: 3523792447;
    className: 'ReactionCount';

    static fromReader(reader: Reader): ReactionCount;
  }
  export class MessageReactions extends VirtualClass<{
    // flags: Api.Type;
    min?: true;
    canSeeList?: true;
    reactionsAsTags?: true;
    results: Api.TypeReactionCount[];
    recentReactions?: Api.TypeMessagePeerReaction[];
    topReactors?: Api.TypeMessageReactor[];
  }> {
    // flags: Api.Type;
    min?: true;
    canSeeList?: true;
    reactionsAsTags?: true;
    results: Api.TypeReactionCount[];
    recentReactions?: Api.TypeMessagePeerReaction[];
    topReactors?: Api.TypeMessageReactor[];
    CONSTRUCTOR_ID: 171155211;
    SUBCLASS_OF_ID: 2321221404;
    className: 'MessageReactions';

    static fromReader(reader: Reader): MessageReactions;
  }
  export class AvailableReaction extends VirtualClass<{
    // flags: Api.Type;
    inactive?: true;
    premium?: true;
    reaction: string;
    title: string;
    staticIcon: Api.TypeDocument;
    appearAnimation: Api.TypeDocument;
    selectAnimation: Api.TypeDocument;
    activateAnimation: Api.TypeDocument;
    effectAnimation: Api.TypeDocument;
    aroundAnimation?: Api.TypeDocument;
    centerIcon?: Api.TypeDocument;
  }> {
    // flags: Api.Type;
    inactive?: true;
    premium?: true;
    reaction: string;
    title: string;
    staticIcon: Api.TypeDocument;
    appearAnimation: Api.TypeDocument;
    selectAnimation: Api.TypeDocument;
    activateAnimation: Api.TypeDocument;
    effectAnimation: Api.TypeDocument;
    aroundAnimation?: Api.TypeDocument;
    centerIcon?: Api.TypeDocument;
    CONSTRUCTOR_ID: 3229084673;
    SUBCLASS_OF_ID: 2350685555;
    className: 'AvailableReaction';

    static fromReader(reader: Reader): AvailableReaction;
  }
  export class MessagePeerReaction extends VirtualClass<{
    // flags: Api.Type;
    big?: true;
    unread?: true;
    my?: true;
    peerId: Api.TypePeer;
    date: int;
    reaction: Api.TypeReaction;
  }> {
    // flags: Api.Type;
    big?: true;
    unread?: true;
    my?: true;
    peerId: Api.TypePeer;
    date: int;
    reaction: Api.TypeReaction;
    CONSTRUCTOR_ID: 2356786748;
    SUBCLASS_OF_ID: 2943591077;
    className: 'MessagePeerReaction';

    static fromReader(reader: Reader): MessagePeerReaction;
  }
  export class GroupCallStreamChannel extends VirtualClass<{
    channel: int;
    scale: int;
    lastTimestampMs: long;
  }> {
    channel: int;
    scale: int;
    lastTimestampMs: long;
    CONSTRUCTOR_ID: 2162903215;
    SUBCLASS_OF_ID: 3712266840;
    className: 'GroupCallStreamChannel';

    static fromReader(reader: Reader): GroupCallStreamChannel;
  }
  export class AttachMenuBotIconColor extends VirtualClass<{
    name: string;
    color: int;
  }> {
    name: string;
    color: int;
    CONSTRUCTOR_ID: 1165423600;
    SUBCLASS_OF_ID: 3198471018;
    className: 'AttachMenuBotIconColor';

    static fromReader(reader: Reader): AttachMenuBotIconColor;
  }
  export class AttachMenuBotIcon extends VirtualClass<{
    // flags: Api.Type;
    name: string;
    icon: Api.TypeDocument;
    colors?: Api.TypeAttachMenuBotIconColor[];
  }> {
    // flags: Api.Type;
    name: string;
    icon: Api.TypeDocument;
    colors?: Api.TypeAttachMenuBotIconColor[];
    CONSTRUCTOR_ID: 2997303403;
    SUBCLASS_OF_ID: 2152219989;
    className: 'AttachMenuBotIcon';

    static fromReader(reader: Reader): AttachMenuBotIcon;
  }
  export class AttachMenuBot extends VirtualClass<{
    // flags: Api.Type;
    inactive?: true;
    hasSettings?: true;
    requestWriteAccess?: true;
    showInAttachMenu?: true;
    showInSideMenu?: true;
    sideMenuDisclaimerNeeded?: true;
    botId: long;
    shortName: string;
    peerTypes?: Api.TypeAttachMenuPeerType[];
    icons: Api.TypeAttachMenuBotIcon[];
  }> {
    // flags: Api.Type;
    inactive?: true;
    hasSettings?: true;
    requestWriteAccess?: true;
    showInAttachMenu?: true;
    showInSideMenu?: true;
    sideMenuDisclaimerNeeded?: true;
    botId: long;
    shortName: string;
    peerTypes?: Api.TypeAttachMenuPeerType[];
    icons: Api.TypeAttachMenuBotIcon[];
    CONSTRUCTOR_ID: 3641544190;
    SUBCLASS_OF_ID: 2668131398;
    className: 'AttachMenuBot';

    static fromReader(reader: Reader): AttachMenuBot;
  }
  export class AttachMenuBotsNotModified extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4057500252;
    SUBCLASS_OF_ID: 2217616346;
    className: 'AttachMenuBotsNotModified';

    static fromReader(reader: Reader): AttachMenuBotsNotModified;
  }
  export class AttachMenuBots extends VirtualClass<{
    hash: long;
    bots: Api.TypeAttachMenuBot[];
    users: Api.TypeUser[];
  }> {
    hash: long;
    bots: Api.TypeAttachMenuBot[];
    users: Api.TypeUser[];
    CONSTRUCTOR_ID: 1011024320;
    SUBCLASS_OF_ID: 2217616346;
    className: 'AttachMenuBots';

    static fromReader(reader: Reader): AttachMenuBots;
  }
  export class AttachMenuBotsBot extends VirtualClass<{
    bot: Api.TypeAttachMenuBot;
    users: Api.TypeUser[];
  }> {
    bot: Api.TypeAttachMenuBot;
    users: Api.TypeUser[];
    CONSTRUCTOR_ID: 2478794367;
    SUBCLASS_OF_ID: 3677587517;
    className: 'AttachMenuBotsBot';

    static fromReader(reader: Reader): AttachMenuBotsBot;
  }
  export class WebViewResultUrl extends VirtualClass<{
    // flags: Api.Type;
    fullsize?: true;
    fullscreen?: true;
    queryId?: long;
    url: string;
  }> {
    // flags: Api.Type;
    fullsize?: true;
    fullscreen?: true;
    queryId?: long;
    url: string;
    CONSTRUCTOR_ID: 1294139288;
    SUBCLASS_OF_ID: 2479793990;
    className: 'WebViewResultUrl';

    static fromReader(reader: Reader): WebViewResultUrl;
  }
  export class WebViewMessageSent extends VirtualClass<{
    // flags: Api.Type;
    msgId?: Api.TypeInputBotInlineMessageID;
  } | void> {
    // flags: Api.Type;
    msgId?: Api.TypeInputBotInlineMessageID;
    CONSTRUCTOR_ID: 211046684;
    SUBCLASS_OF_ID: 1977914130;
    className: 'WebViewMessageSent';

    static fromReader(reader: Reader): WebViewMessageSent;
  }
  export class BotMenuButtonDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1966318984;
    SUBCLASS_OF_ID: 1282522428;
    className: 'BotMenuButtonDefault';

    static fromReader(reader: Reader): BotMenuButtonDefault;
  }
  export class BotMenuButtonCommands extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1113113093;
    SUBCLASS_OF_ID: 1282522428;
    className: 'BotMenuButtonCommands';

    static fromReader(reader: Reader): BotMenuButtonCommands;
  }
  export class BotMenuButton extends VirtualClass<{
    text: string;
    url: string;
  }> {
    text: string;
    url: string;
    CONSTRUCTOR_ID: 3350559974;
    SUBCLASS_OF_ID: 1282522428;
    className: 'BotMenuButton';

    static fromReader(reader: Reader): BotMenuButton;
  }
  export class NotificationSoundDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2548612798;
    SUBCLASS_OF_ID: 4076201307;
    className: 'NotificationSoundDefault';

    static fromReader(reader: Reader): NotificationSoundDefault;
  }
  export class NotificationSoundNone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1863070943;
    SUBCLASS_OF_ID: 4076201307;
    className: 'NotificationSoundNone';

    static fromReader(reader: Reader): NotificationSoundNone;
  }
  export class NotificationSoundLocal extends VirtualClass<{
    title: string;
    data: string;
  }> {
    title: string;
    data: string;
    CONSTRUCTOR_ID: 2198575844;
    SUBCLASS_OF_ID: 4076201307;
    className: 'NotificationSoundLocal';

    static fromReader(reader: Reader): NotificationSoundLocal;
  }
  export class NotificationSoundRingtone extends VirtualClass<{
    id: long;
  }> {
    id: long;
    CONSTRUCTOR_ID: 4285300809;
    SUBCLASS_OF_ID: 4076201307;
    className: 'NotificationSoundRingtone';

    static fromReader(reader: Reader): NotificationSoundRingtone;
  }
  export class AttachMenuPeerTypeSameBotPM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2104224014;
    SUBCLASS_OF_ID: 3520628432;
    className: 'AttachMenuPeerTypeSameBotPM';

    static fromReader(reader: Reader): AttachMenuPeerTypeSameBotPM;
  }
  export class AttachMenuPeerTypeBotPM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3274439194;
    SUBCLASS_OF_ID: 3520628432;
    className: 'AttachMenuPeerTypeBotPM';

    static fromReader(reader: Reader): AttachMenuPeerTypeBotPM;
  }
  export class AttachMenuPeerTypePM extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4047950623;
    SUBCLASS_OF_ID: 3520628432;
    className: 'AttachMenuPeerTypePM';

    static fromReader(reader: Reader): AttachMenuPeerTypePM;
  }
  export class AttachMenuPeerTypeChat extends VirtualClass<void> {
    CONSTRUCTOR_ID: 84480319;
    SUBCLASS_OF_ID: 3520628432;
    className: 'AttachMenuPeerTypeChat';

    static fromReader(reader: Reader): AttachMenuPeerTypeChat;
  }
  export class AttachMenuPeerTypeBroadcast extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2080104188;
    SUBCLASS_OF_ID: 3520628432;
    className: 'AttachMenuPeerTypeBroadcast';

    static fromReader(reader: Reader): AttachMenuPeerTypeBroadcast;
  }
  export class InputInvoiceMessage extends VirtualClass<{
    peer: Api.TypeInputPeer;
    msgId: int;
  }> {
    peer: Api.TypeInputPeer;
    msgId: int;
    CONSTRUCTOR_ID: 3317000281;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceMessage';

    static fromReader(reader: Reader): InputInvoiceMessage;
  }
  export class InputInvoiceSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 3274099439;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceSlug';

    static fromReader(reader: Reader): InputInvoiceSlug;
  }
  export class InputInvoicePremiumGiftCode extends VirtualClass<{
    purpose: Api.TypeInputStorePaymentPurpose;
    option: Api.TypePremiumGiftCodeOption;
  }> {
    purpose: Api.TypeInputStorePaymentPurpose;
    option: Api.TypePremiumGiftCodeOption;
    CONSTRUCTOR_ID: 2560125965;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoicePremiumGiftCode';

    static fromReader(reader: Reader): InputInvoicePremiumGiftCode;
  }
  export class InputInvoiceStars extends VirtualClass<{
    purpose: Api.TypeInputStorePaymentPurpose;
  }> {
    purpose: Api.TypeInputStorePaymentPurpose;
    CONSTRUCTOR_ID: 1710230755;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStars';

    static fromReader(reader: Reader): InputInvoiceStars;
  }
  export class InputInvoiceChatInviteSubscription extends VirtualClass<{
    hash: string;
  }> {
    hash: string;
    CONSTRUCTOR_ID: 887591921;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceChatInviteSubscription';

    static fromReader(reader: Reader): InputInvoiceChatInviteSubscription;
  }
  export class InputInvoiceStarGift extends VirtualClass<{
    // flags: Api.Type;
    hideName?: true;
    includeUpgrade?: true;
    peer: Api.TypeInputPeer;
    giftId: long;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    hideName?: true;
    includeUpgrade?: true;
    peer: Api.TypeInputPeer;
    giftId: long;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 3898760850;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGift';

    static fromReader(reader: Reader): InputInvoiceStarGift;
  }
  export class InputInvoiceStarGiftUpgrade extends VirtualClass<{
    // flags: Api.Type;
    keepOriginalDetails?: true;
    stargift: Api.TypeInputSavedStarGift;
  }> {
    // flags: Api.Type;
    keepOriginalDetails?: true;
    stargift: Api.TypeInputSavedStarGift;
    CONSTRUCTOR_ID: 1300335965;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftUpgrade';

    static fromReader(reader: Reader): InputInvoiceStarGiftUpgrade;
  }
  export class InputInvoiceStarGiftTransfer extends VirtualClass<{
    stargift: Api.TypeInputSavedStarGift;
    toId: Api.TypeInputPeer;
  }> {
    stargift: Api.TypeInputSavedStarGift;
    toId: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 1247763417;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftTransfer';

    static fromReader(reader: Reader): InputInvoiceStarGiftTransfer;
  }
  export class InputInvoicePremiumGiftStars extends VirtualClass<{
    // flags: Api.Type;
    userId: Api.TypeInputUser;
    months: int;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    userId: Api.TypeInputUser;
    months: int;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 3669668591;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoicePremiumGiftStars';

    static fromReader(reader: Reader): InputInvoicePremiumGiftStars;
  }
  export class InputInvoiceBusinessBotTransferStars extends VirtualClass<{
    bot: Api.TypeInputUser;
    stars: long;
  }> {
    bot: Api.TypeInputUser;
    stars: long;
    CONSTRUCTOR_ID: 4103700034;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceBusinessBotTransferStars';

    static fromReader(reader: Reader): InputInvoiceBusinessBotTransferStars;
  }
  export class InputInvoiceStarGiftResale extends VirtualClass<{
    // flags: Api.Type;
    ton?: true;
    slug: string;
    toId: Api.TypeInputPeer;
  }> {
    // flags: Api.Type;
    ton?: true;
    slug: string;
    toId: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 3281998628;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftResale';

    static fromReader(reader: Reader): InputInvoiceStarGiftResale;
  }
  export class InputInvoiceStarGiftPrepaidUpgrade extends VirtualClass<{
    peer: Api.TypeInputPeer;
    hash: string;
  }> {
    peer: Api.TypeInputPeer;
    hash: string;
    CONSTRUCTOR_ID: 2584430776;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftPrepaidUpgrade';

    static fromReader(reader: Reader): InputInvoiceStarGiftPrepaidUpgrade;
  }
  export class InputInvoicePremiumAuthCode extends VirtualClass<{
    purpose: Api.TypeInputStorePaymentPurpose;
  }> {
    purpose: Api.TypeInputStorePaymentPurpose;
    CONSTRUCTOR_ID: 1048049172;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoicePremiumAuthCode';

    static fromReader(reader: Reader): InputInvoicePremiumAuthCode;
  }
  export class InputInvoiceStarGiftDropOriginalDetails extends VirtualClass<{
    stargift: Api.TypeInputSavedStarGift;
  }> {
    stargift: Api.TypeInputSavedStarGift;
    CONSTRUCTOR_ID: 153344209;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftDropOriginalDetails';

    static fromReader(reader: Reader): InputInvoiceStarGiftDropOriginalDetails;
  }
  export class InputInvoiceStarGiftAuctionBid extends VirtualClass<{
    // flags: Api.Type;
    hideName?: true;
    updateBid?: true;
    peer?: Api.TypeInputPeer;
    giftId: long;
    bidAmount: long;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    hideName?: true;
    updateBid?: true;
    peer?: Api.TypeInputPeer;
    giftId: long;
    bidAmount: long;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 516618768;
    SUBCLASS_OF_ID: 1919851518;
    className: 'InputInvoiceStarGiftAuctionBid';

    static fromReader(reader: Reader): InputInvoiceStarGiftAuctionBid;
  }
  export class InputStorePaymentPremiumSubscription extends VirtualClass<{
    // flags: Api.Type;
    restore?: true;
    upgrade?: true;
  } | void> {
    // flags: Api.Type;
    restore?: true;
    upgrade?: true;
    CONSTRUCTOR_ID: 2792693350;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentPremiumSubscription';

    static fromReader(reader: Reader): InputStorePaymentPremiumSubscription;
  }
  export class InputStorePaymentGiftPremium extends VirtualClass<{
    userId: Api.TypeInputUser;
    currency: string;
    amount: long;
  }> {
    userId: Api.TypeInputUser;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 1634697192;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentGiftPremium';

    static fromReader(reader: Reader): InputStorePaymentGiftPremium;
  }
  export class InputStorePaymentPremiumGiftCode extends VirtualClass<{
    // flags: Api.Type;
    users: Api.TypeInputUser[];
    boostPeer?: Api.TypeInputPeer;
    currency: string;
    amount: long;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    users: Api.TypeInputUser[];
    boostPeer?: Api.TypeInputPeer;
    currency: string;
    amount: long;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 4219011987;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentPremiumGiftCode';

    static fromReader(reader: Reader): InputStorePaymentPremiumGiftCode;
  }
  export class InputStorePaymentPremiumGiveaway extends VirtualClass<{
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    boostPeer: Api.TypeInputPeer;
    additionalPeers?: Api.TypeInputPeer[];
    countriesIso2?: string[];
    prizeDescription?: string;
    randomId: long;
    untilDate: int;
    currency: string;
    amount: long;
  }> {
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    boostPeer: Api.TypeInputPeer;
    additionalPeers?: Api.TypeInputPeer[];
    countriesIso2?: string[];
    prizeDescription?: string;
    randomId: long;
    untilDate: int;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 369444042;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentPremiumGiveaway';

    static fromReader(reader: Reader): InputStorePaymentPremiumGiveaway;
  }
  export class InputStorePaymentStarsTopup extends VirtualClass<{
    // flags: Api.Type;
    stars: long;
    currency: string;
    amount: long;
    spendPurposePeer?: Api.TypeInputPeer;
  }> {
    // flags: Api.Type;
    stars: long;
    currency: string;
    amount: long;
    spendPurposePeer?: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 4188186315;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentStarsTopup';

    static fromReader(reader: Reader): InputStorePaymentStarsTopup;
  }
  export class InputStorePaymentStarsGift extends VirtualClass<{
    userId: Api.TypeInputUser;
    stars: long;
    currency: string;
    amount: long;
  }> {
    userId: Api.TypeInputUser;
    stars: long;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 494149367;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentStarsGift';

    static fromReader(reader: Reader): InputStorePaymentStarsGift;
  }
  export class InputStorePaymentStarsGiveaway extends VirtualClass<{
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    stars: long;
    boostPeer: Api.TypeInputPeer;
    additionalPeers?: Api.TypeInputPeer[];
    countriesIso2?: string[];
    prizeDescription?: string;
    randomId: long;
    untilDate: int;
    currency: string;
    amount: long;
    users: int;
  }> {
    // flags: Api.Type;
    onlyNewSubscribers?: true;
    winnersAreVisible?: true;
    stars: long;
    boostPeer: Api.TypeInputPeer;
    additionalPeers?: Api.TypeInputPeer[];
    countriesIso2?: string[];
    prizeDescription?: string;
    randomId: long;
    untilDate: int;
    currency: string;
    amount: long;
    users: int;
    CONSTRUCTOR_ID: 1964968186;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentStarsGiveaway';

    static fromReader(reader: Reader): InputStorePaymentStarsGiveaway;
  }
  export class InputStorePaymentAuthCode extends VirtualClass<{
    // flags: Api.Type;
    restore?: true;
    phoneNumber: string;
    phoneCodeHash: string;
    premiumDays: int;
    currency: string;
    amount: long;
  }> {
    // flags: Api.Type;
    restore?: true;
    phoneNumber: string;
    phoneCodeHash: string;
    premiumDays: int;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 1069645911;
    SUBCLASS_OF_ID: 3886290765;
    className: 'InputStorePaymentAuthCode';

    static fromReader(reader: Reader): InputStorePaymentAuthCode;
  }
  export class PaymentFormMethod extends VirtualClass<{
    url: string;
    title: string;
  }> {
    url: string;
    title: string;
    CONSTRUCTOR_ID: 2298016283;
    SUBCLASS_OF_ID: 1069664278;
    className: 'PaymentFormMethod';

    static fromReader(reader: Reader): PaymentFormMethod;
  }
  export class EmojiStatusEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 769727150;
    SUBCLASS_OF_ID: 4180717880;
    className: 'EmojiStatusEmpty';

    static fromReader(reader: Reader): EmojiStatusEmpty;
  }
  export class EmojiStatus extends VirtualClass<{
    // flags: Api.Type;
    documentId: long;
    until?: int;
  }> {
    // flags: Api.Type;
    documentId: long;
    until?: int;
    CONSTRUCTOR_ID: 3892250250;
    SUBCLASS_OF_ID: 4180717880;
    className: 'EmojiStatus';

    static fromReader(reader: Reader): EmojiStatus;
  }
  export class EmojiStatusCollectible extends VirtualClass<{
    // flags: Api.Type;
    collectibleId: long;
    documentId: long;
    title: string;
    slug: string;
    patternDocumentId: long;
    centerColor: int;
    edgeColor: int;
    patternColor: int;
    textColor: int;
    until?: int;
  }> {
    // flags: Api.Type;
    collectibleId: long;
    documentId: long;
    title: string;
    slug: string;
    patternDocumentId: long;
    centerColor: int;
    edgeColor: int;
    patternColor: int;
    textColor: int;
    until?: int;
    CONSTRUCTOR_ID: 1904500795;
    SUBCLASS_OF_ID: 4180717880;
    className: 'EmojiStatusCollectible';

    static fromReader(reader: Reader): EmojiStatusCollectible;
  }
  export class InputEmojiStatusCollectible extends VirtualClass<{
    // flags: Api.Type;
    collectibleId: long;
    until?: int;
  }> {
    // flags: Api.Type;
    collectibleId: long;
    until?: int;
    CONSTRUCTOR_ID: 118758847;
    SUBCLASS_OF_ID: 4180717880;
    className: 'InputEmojiStatusCollectible';

    static fromReader(reader: Reader): InputEmojiStatusCollectible;
  }
  export class ReactionEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2046153753;
    SUBCLASS_OF_ID: 1570858401;
    className: 'ReactionEmpty';

    static fromReader(reader: Reader): ReactionEmpty;
  }
  export class ReactionEmoji extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 455247544;
    SUBCLASS_OF_ID: 1570858401;
    className: 'ReactionEmoji';

    static fromReader(reader: Reader): ReactionEmoji;
  }
  export class ReactionCustomEmoji extends VirtualClass<{
    documentId: long;
  }> {
    documentId: long;
    CONSTRUCTOR_ID: 2302016627;
    SUBCLASS_OF_ID: 1570858401;
    className: 'ReactionCustomEmoji';

    static fromReader(reader: Reader): ReactionCustomEmoji;
  }
  export class ReactionPaid extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1379771627;
    SUBCLASS_OF_ID: 1570858401;
    className: 'ReactionPaid';

    static fromReader(reader: Reader): ReactionPaid;
  }
  export class ChatReactionsNone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3942396604;
    SUBCLASS_OF_ID: 320742581;
    className: 'ChatReactionsNone';

    static fromReader(reader: Reader): ChatReactionsNone;
  }
  export class ChatReactionsAll extends VirtualClass<{
    // flags: Api.Type;
    allowCustom?: true;
  } | void> {
    // flags: Api.Type;
    allowCustom?: true;
    CONSTRUCTOR_ID: 1385335754;
    SUBCLASS_OF_ID: 320742581;
    className: 'ChatReactionsAll';

    static fromReader(reader: Reader): ChatReactionsAll;
  }
  export class ChatReactionsSome extends VirtualClass<{
    reactions: Api.TypeReaction[];
  }> {
    reactions: Api.TypeReaction[];
    CONSTRUCTOR_ID: 1713193015;
    SUBCLASS_OF_ID: 320742581;
    className: 'ChatReactionsSome';

    static fromReader(reader: Reader): ChatReactionsSome;
  }
  export class EmailVerifyPurposeLoginSetup extends VirtualClass<{
    phoneNumber: string;
    phoneCodeHash: string;
  }> {
    phoneNumber: string;
    phoneCodeHash: string;
    CONSTRUCTOR_ID: 1128644211;
    SUBCLASS_OF_ID: 3110628072;
    className: 'EmailVerifyPurposeLoginSetup';

    static fromReader(reader: Reader): EmailVerifyPurposeLoginSetup;
  }
  export class EmailVerifyPurposeLoginChange extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1383932651;
    SUBCLASS_OF_ID: 3110628072;
    className: 'EmailVerifyPurposeLoginChange';

    static fromReader(reader: Reader): EmailVerifyPurposeLoginChange;
  }
  export class EmailVerifyPurposePassport extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3153401477;
    SUBCLASS_OF_ID: 3110628072;
    className: 'EmailVerifyPurposePassport';

    static fromReader(reader: Reader): EmailVerifyPurposePassport;
  }
  export class EmailVerificationCode extends VirtualClass<{
    code: string;
  }> {
    code: string;
    CONSTRUCTOR_ID: 2452510121;
    SUBCLASS_OF_ID: 606003776;
    className: 'EmailVerificationCode';

    static fromReader(reader: Reader): EmailVerificationCode;
  }
  export class EmailVerificationGoogle extends VirtualClass<{
    token: string;
  }> {
    token: string;
    CONSTRUCTOR_ID: 3683688130;
    SUBCLASS_OF_ID: 606003776;
    className: 'EmailVerificationGoogle';

    static fromReader(reader: Reader): EmailVerificationGoogle;
  }
  export class EmailVerificationApple extends VirtualClass<{
    token: string;
  }> {
    token: string;
    CONSTRUCTOR_ID: 2530243837;
    SUBCLASS_OF_ID: 606003776;
    className: 'EmailVerificationApple';

    static fromReader(reader: Reader): EmailVerificationApple;
  }
  export class PremiumSubscriptionOption extends VirtualClass<{
    // flags: Api.Type;
    current?: true;
    canPurchaseUpgrade?: true;
    transaction?: string;
    months: int;
    currency: string;
    amount: long;
    botUrl: string;
    storeProduct?: string;
  }> {
    // flags: Api.Type;
    current?: true;
    canPurchaseUpgrade?: true;
    transaction?: string;
    months: int;
    currency: string;
    amount: long;
    botUrl: string;
    storeProduct?: string;
    CONSTRUCTOR_ID: 1596792306;
    SUBCLASS_OF_ID: 774752063;
    className: 'PremiumSubscriptionOption';

    static fromReader(reader: Reader): PremiumSubscriptionOption;
  }
  export class SendAsPeer extends VirtualClass<{
    // flags: Api.Type;
    premiumRequired?: true;
    peer: Api.TypePeer;
  }> {
    // flags: Api.Type;
    premiumRequired?: true;
    peer: Api.TypePeer;
    CONSTRUCTOR_ID: 3088871476;
    SUBCLASS_OF_ID: 1143177700;
    className: 'SendAsPeer';

    static fromReader(reader: Reader): SendAsPeer;
  }
  export class MessageExtendedMediaPreview extends VirtualClass<{
    // flags: Api.Type;
    w?: int;
    h?: int;
    thumb?: Api.TypePhotoSize;
    videoDuration?: int;
  } | void> {
    // flags: Api.Type;
    w?: int;
    h?: int;
    thumb?: Api.TypePhotoSize;
    videoDuration?: int;
    CONSTRUCTOR_ID: 2908916936;
    SUBCLASS_OF_ID: 2535971165;
    className: 'MessageExtendedMediaPreview';

    static fromReader(reader: Reader): MessageExtendedMediaPreview;
  }
  export class MessageExtendedMedia extends VirtualClass<{
    media: Api.TypeMessageMedia;
  }> {
    media: Api.TypeMessageMedia;
    CONSTRUCTOR_ID: 3997670500;
    SUBCLASS_OF_ID: 2535971165;
    className: 'MessageExtendedMedia';

    static fromReader(reader: Reader): MessageExtendedMedia;
  }
  export class StickerKeyword extends VirtualClass<{
    documentId: long;
    keyword: string[];
  }> {
    documentId: long;
    keyword: string[];
    CONSTRUCTOR_ID: 4244550300;
    SUBCLASS_OF_ID: 1435835755;
    className: 'StickerKeyword';

    static fromReader(reader: Reader): StickerKeyword;
  }
  export class Username extends VirtualClass<{
    // flags: Api.Type;
    editable?: true;
    active?: true;
    username: string;
  }> {
    // flags: Api.Type;
    editable?: true;
    active?: true;
    username: string;
    CONSTRUCTOR_ID: 3020371527;
    SUBCLASS_OF_ID: 19424289;
    className: 'Username';

    static fromReader(reader: Reader): Username;
  }
  export class ForumTopicDeleted extends VirtualClass<{
    id: int;
  }> {
    id: int;
    CONSTRUCTOR_ID: 37687451;
    SUBCLASS_OF_ID: 2367169027;
    className: 'ForumTopicDeleted';

    static fromReader(reader: Reader): ForumTopicDeleted;
  }
  export class ForumTopic extends VirtualClass<{
    // flags: Api.Type;
    my?: true;
    closed?: true;
    pinned?: true;
    short?: true;
    hidden?: true;
    titleMissing?: true;
    id: int;
    date: int;
    peer: Api.TypePeer;
    title: string;
    iconColor: int;
    iconEmojiId?: long;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadMentionsCount: int;
    unreadReactionsCount: int;
    unreadPollVotesCount: int;
    fromId: Api.TypePeer;
    notifySettings: Api.TypePeerNotifySettings;
    draft?: Api.TypeDraftMessage;
  }> {
    // flags: Api.Type;
    my?: true;
    closed?: true;
    pinned?: true;
    short?: true;
    hidden?: true;
    titleMissing?: true;
    id: int;
    date: int;
    peer: Api.TypePeer;
    title: string;
    iconColor: int;
    iconEmojiId?: long;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadMentionsCount: int;
    unreadReactionsCount: int;
    unreadPollVotesCount: int;
    fromId: Api.TypePeer;
    notifySettings: Api.TypePeerNotifySettings;
    draft?: Api.TypeDraftMessage;
    CONSTRUCTOR_ID: 4242200597;
    SUBCLASS_OF_ID: 2367169027;
    className: 'ForumTopic';

    static fromReader(reader: Reader): ForumTopic;
  }
  export class DefaultHistoryTTL extends VirtualClass<{
    period: int;
  }> {
    period: int;
    CONSTRUCTOR_ID: 1135897376;
    SUBCLASS_OF_ID: 4027396967;
    className: 'DefaultHistoryTTL';

    static fromReader(reader: Reader): DefaultHistoryTTL;
  }
  export class ExportedContactToken extends VirtualClass<{
    url: string;
    expires: int;
  }> {
    url: string;
    expires: int;
    CONSTRUCTOR_ID: 1103040667;
    SUBCLASS_OF_ID: 2262679249;
    className: 'ExportedContactToken';

    static fromReader(reader: Reader): ExportedContactToken;
  }
  export class RequestPeerTypeUser extends VirtualClass<{
    // flags: Api.Type;
    bot?: Bool;
    premium?: Bool;
  } | void> {
    // flags: Api.Type;
    bot?: Bool;
    premium?: Bool;
    CONSTRUCTOR_ID: 1597737472;
    SUBCLASS_OF_ID: 3919636500;
    className: 'RequestPeerTypeUser';

    static fromReader(reader: Reader): RequestPeerTypeUser;
  }
  export class RequestPeerTypeChat extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    botParticipant?: true;
    hasUsername?: Bool;
    forum?: Bool;
    userAdminRights?: Api.TypeChatAdminRights;
    botAdminRights?: Api.TypeChatAdminRights;
  } | void> {
    // flags: Api.Type;
    creator?: true;
    botParticipant?: true;
    hasUsername?: Bool;
    forum?: Bool;
    userAdminRights?: Api.TypeChatAdminRights;
    botAdminRights?: Api.TypeChatAdminRights;
    CONSTRUCTOR_ID: 3387977243;
    SUBCLASS_OF_ID: 3919636500;
    className: 'RequestPeerTypeChat';

    static fromReader(reader: Reader): RequestPeerTypeChat;
  }
  export class RequestPeerTypeBroadcast extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    hasUsername?: Bool;
    userAdminRights?: Api.TypeChatAdminRights;
    botAdminRights?: Api.TypeChatAdminRights;
  } | void> {
    // flags: Api.Type;
    creator?: true;
    hasUsername?: Bool;
    userAdminRights?: Api.TypeChatAdminRights;
    botAdminRights?: Api.TypeChatAdminRights;
    CONSTRUCTOR_ID: 865857388;
    SUBCLASS_OF_ID: 3919636500;
    className: 'RequestPeerTypeBroadcast';

    static fromReader(reader: Reader): RequestPeerTypeBroadcast;
  }
  export class RequestPeerTypeCreateBot extends VirtualClass<{
    // flags: Api.Type;
    botManaged?: true;
    suggestedName?: string;
    suggestedUsername?: string;
  } | void> {
    // flags: Api.Type;
    botManaged?: true;
    suggestedName?: string;
    suggestedUsername?: string;
    CONSTRUCTOR_ID: 1048699000;
    SUBCLASS_OF_ID: 3919636500;
    className: 'RequestPeerTypeCreateBot';

    static fromReader(reader: Reader): RequestPeerTypeCreateBot;
  }
  export class EmojiListNotModified extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1209970170;
    SUBCLASS_OF_ID: 3169807034;
    className: 'EmojiListNotModified';

    static fromReader(reader: Reader): EmojiListNotModified;
  }
  export class EmojiList extends VirtualClass<{
    hash: long;
    documentId: long[];
  }> {
    hash: long;
    documentId: long[];
    CONSTRUCTOR_ID: 2048790993;
    SUBCLASS_OF_ID: 3169807034;
    className: 'EmojiList';

    static fromReader(reader: Reader): EmojiList;
  }
  export class EmojiGroup extends VirtualClass<{
    title: string;
    iconEmojiId: long;
    emoticons: string[];
  }> {
    title: string;
    iconEmojiId: long;
    emoticons: string[];
    CONSTRUCTOR_ID: 2056961449;
    SUBCLASS_OF_ID: 1440784787;
    className: 'EmojiGroup';

    static fromReader(reader: Reader): EmojiGroup;
  }
  export class EmojiGroupGreeting extends VirtualClass<{
    title: string;
    iconEmojiId: long;
    emoticons: string[];
  }> {
    title: string;
    iconEmojiId: long;
    emoticons: string[];
    CONSTRUCTOR_ID: 2161274055;
    SUBCLASS_OF_ID: 1440784787;
    className: 'EmojiGroupGreeting';

    static fromReader(reader: Reader): EmojiGroupGreeting;
  }
  export class EmojiGroupPremium extends VirtualClass<{
    title: string;
    iconEmojiId: long;
  }> {
    title: string;
    iconEmojiId: long;
    CONSTRUCTOR_ID: 154914612;
    SUBCLASS_OF_ID: 1440784787;
    className: 'EmojiGroupPremium';

    static fromReader(reader: Reader): EmojiGroupPremium;
  }
  export class TextWithEntities extends VirtualClass<{
    text: string;
    entities: Api.TypeMessageEntity[];
  }> {
    text: string;
    entities: Api.TypeMessageEntity[];
    CONSTRUCTOR_ID: 1964978502;
    SUBCLASS_OF_ID: 2513062661;
    className: 'TextWithEntities';

    static fromReader(reader: Reader): TextWithEntities;
  }
  export class AutoSaveSettings extends VirtualClass<{
    // flags: Api.Type;
    photos?: true;
    videos?: true;
    videoMaxSize?: long;
  } | void> {
    // flags: Api.Type;
    photos?: true;
    videos?: true;
    videoMaxSize?: long;
    CONSTRUCTOR_ID: 3360175310;
    SUBCLASS_OF_ID: 3443234534;
    className: 'AutoSaveSettings';

    static fromReader(reader: Reader): AutoSaveSettings;
  }
  export class AutoSaveException extends VirtualClass<{
    peer: Api.TypePeer;
    settings: Api.TypeAutoSaveSettings;
  }> {
    peer: Api.TypePeer;
    settings: Api.TypeAutoSaveSettings;
    CONSTRUCTOR_ID: 2170563911;
    SUBCLASS_OF_ID: 3716579625;
    className: 'AutoSaveException';

    static fromReader(reader: Reader): AutoSaveException;
  }
  export class InputBotAppID extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 2837495162;
    SUBCLASS_OF_ID: 3059063121;
    className: 'InputBotAppID';

    static fromReader(reader: Reader): InputBotAppID;
  }
  export class InputBotAppShortName extends VirtualClass<{
    botId: Api.TypeInputUser;
    shortName: string;
  }> {
    botId: Api.TypeInputUser;
    shortName: string;
    CONSTRUCTOR_ID: 2425095175;
    SUBCLASS_OF_ID: 3059063121;
    className: 'InputBotAppShortName';

    static fromReader(reader: Reader): InputBotAppShortName;
  }
  export class BotAppNotModified extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1571189943;
    SUBCLASS_OF_ID: 34550446;
    className: 'BotAppNotModified';

    static fromReader(reader: Reader): BotAppNotModified;
  }
  export class BotApp extends VirtualClass<{
    // flags: Api.Type;
    id: long;
    accessHash: long;
    shortName: string;
    title: string;
    description: string;
    photo: Api.TypePhoto;
    document?: Api.TypeDocument;
    hash: long;
  }> {
    // flags: Api.Type;
    id: long;
    accessHash: long;
    shortName: string;
    title: string;
    description: string;
    photo: Api.TypePhoto;
    document?: Api.TypeDocument;
    hash: long;
    CONSTRUCTOR_ID: 2516373974;
    SUBCLASS_OF_ID: 34550446;
    className: 'BotApp';

    static fromReader(reader: Reader): BotApp;
  }
  export class InlineBotWebView extends VirtualClass<{
    text: string;
    url: string;
  }> {
    text: string;
    url: string;
    CONSTRUCTOR_ID: 3044185557;
    SUBCLASS_OF_ID: 1826625002;
    className: 'InlineBotWebView';

    static fromReader(reader: Reader): InlineBotWebView;
  }
  export class ReadParticipantDate extends VirtualClass<{
    userId: long;
    date: int;
  }> {
    userId: long;
    date: int;
    CONSTRUCTOR_ID: 1246753138;
    SUBCLASS_OF_ID: 4245130466;
    className: 'ReadParticipantDate';

    static fromReader(reader: Reader): ReadParticipantDate;
  }
  export class InputChatlistDialogFilter extends VirtualClass<{
    filterId: int;
  }> {
    filterId: int;
    CONSTRUCTOR_ID: 4091599411;
    SUBCLASS_OF_ID: 37721689;
    className: 'InputChatlistDialogFilter';

    static fromReader(reader: Reader): InputChatlistDialogFilter;
  }
  export class ExportedChatlistInvite extends VirtualClass<{
    // flags: Api.Type;
    title: string;
    url: string;
    peers: Api.TypePeer[];
  }> {
    // flags: Api.Type;
    title: string;
    url: string;
    peers: Api.TypePeer[];
    CONSTRUCTOR_ID: 206668204;
    SUBCLASS_OF_ID: 1997666559;
    className: 'ExportedChatlistInvite';

    static fromReader(reader: Reader): ExportedChatlistInvite;
  }
  export class MessagePeerVote extends VirtualClass<{
    peer: Api.TypePeer;
    option: bytes;
    date: int;
  }> {
    peer: Api.TypePeer;
    option: bytes;
    date: int;
    CONSTRUCTOR_ID: 3066834268;
    SUBCLASS_OF_ID: 2244112898;
    className: 'MessagePeerVote';

    static fromReader(reader: Reader): MessagePeerVote;
  }
  export class MessagePeerVoteInputOption extends VirtualClass<{
    peer: Api.TypePeer;
    date: int;
  }> {
    peer: Api.TypePeer;
    date: int;
    CONSTRUCTOR_ID: 1959634180;
    SUBCLASS_OF_ID: 2244112898;
    className: 'MessagePeerVoteInputOption';

    static fromReader(reader: Reader): MessagePeerVoteInputOption;
  }
  export class MessagePeerVoteMultiple extends VirtualClass<{
    peer: Api.TypePeer;
    options: bytes[];
    date: int;
  }> {
    peer: Api.TypePeer;
    options: bytes[];
    date: int;
    CONSTRUCTOR_ID: 1177089766;
    SUBCLASS_OF_ID: 2244112898;
    className: 'MessagePeerVoteMultiple';

    static fromReader(reader: Reader): MessagePeerVoteMultiple;
  }
  export class StoryViews extends VirtualClass<{
    // flags: Api.Type;
    hasViewers?: true;
    viewsCount: int;
    forwardsCount?: int;
    reactions?: Api.TypeReactionCount[];
    reactionsCount?: int;
    recentViewers?: long[];
  }> {
    // flags: Api.Type;
    hasViewers?: true;
    viewsCount: int;
    forwardsCount?: int;
    reactions?: Api.TypeReactionCount[];
    reactionsCount?: int;
    recentViewers?: long[];
    CONSTRUCTOR_ID: 2371443926;
    SUBCLASS_OF_ID: 1424272486;
    className: 'StoryViews';

    static fromReader(reader: Reader): StoryViews;
  }
  export class StoryItemDeleted extends VirtualClass<{
    id: int;
  }> {
    id: int;
    CONSTRUCTOR_ID: 1374088783;
    SUBCLASS_OF_ID: 3564613939;
    className: 'StoryItemDeleted';

    static fromReader(reader: Reader): StoryItemDeleted;
  }
  export class StoryItemSkipped extends VirtualClass<{
    // flags: Api.Type;
    closeFriends?: true;
    live?: true;
    id: int;
    date: int;
    expireDate: int;
  }> {
    // flags: Api.Type;
    closeFriends?: true;
    live?: true;
    id: int;
    date: int;
    expireDate: int;
    CONSTRUCTOR_ID: 4289579283;
    SUBCLASS_OF_ID: 3564613939;
    className: 'StoryItemSkipped';

    static fromReader(reader: Reader): StoryItemSkipped;
  }
  export class StoryItem extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    public?: true;
    closeFriends?: true;
    min?: true;
    noforwards?: true;
    edited?: true;
    contacts?: true;
    selectedContacts?: true;
    out?: true;
    id: int;
    date: int;
    fromId?: Api.TypePeer;
    fwdFrom?: Api.TypeStoryFwdHeader;
    expireDate: int;
    caption?: string;
    entities?: Api.TypeMessageEntity[];
    media: Api.TypeMessageMedia;
    mediaAreas?: Api.TypeMediaArea[];
    privacy?: Api.TypePrivacyRule[];
    views?: Api.TypeStoryViews;
    sentReaction?: Api.TypeReaction;
    albums?: int[];
    music?: Api.TypeDocument;
  }> {
    // flags: Api.Type;
    pinned?: true;
    public?: true;
    closeFriends?: true;
    min?: true;
    noforwards?: true;
    edited?: true;
    contacts?: true;
    selectedContacts?: true;
    out?: true;
    id: int;
    date: int;
    fromId?: Api.TypePeer;
    fwdFrom?: Api.TypeStoryFwdHeader;
    expireDate: int;
    caption?: string;
    entities?: Api.TypeMessageEntity[];
    media: Api.TypeMessageMedia;
    mediaAreas?: Api.TypeMediaArea[];
    privacy?: Api.TypePrivacyRule[];
    views?: Api.TypeStoryViews;
    sentReaction?: Api.TypeReaction;
    albums?: int[];
    music?: Api.TypeDocument;
    CONSTRUCTOR_ID: 379894076;
    SUBCLASS_OF_ID: 3564613939;
    className: 'StoryItem';

    static fromReader(reader: Reader): StoryItem;
  }
  export class StoryView extends VirtualClass<{
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    userId: long;
    date: int;
    reaction?: Api.TypeReaction;
  }> {
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    userId: long;
    date: int;
    reaction?: Api.TypeReaction;
    CONSTRUCTOR_ID: 2965236421;
    SUBCLASS_OF_ID: 898711459;
    className: 'StoryView';

    static fromReader(reader: Reader): StoryView;
  }
  export class StoryViewPublicForward extends VirtualClass<{
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    message: Api.TypeMessage;
  }> {
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 2424530699;
    SUBCLASS_OF_ID: 898711459;
    className: 'StoryViewPublicForward';

    static fromReader(reader: Reader): StoryViewPublicForward;
  }
  export class StoryViewPublicRepost extends VirtualClass<{
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    peerId: Api.TypePeer;
    story: Api.TypeStoryItem;
  }> {
    // flags: Api.Type;
    blocked?: true;
    blockedMyStoriesFrom?: true;
    peerId: Api.TypePeer;
    story: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 3178549065;
    SUBCLASS_OF_ID: 898711459;
    className: 'StoryViewPublicRepost';

    static fromReader(reader: Reader): StoryViewPublicRepost;
  }
  export class InputReplyToMessage extends VirtualClass<{
    // flags: Api.Type;
    replyToMsgId: int;
    topMsgId?: int;
    replyToPeerId?: Api.TypeInputPeer;
    quoteText?: string;
    quoteEntities?: Api.TypeMessageEntity[];
    quoteOffset?: int;
    monoforumPeerId?: Api.TypeInputPeer;
    todoItemId?: int;
    pollOption?: bytes;
  }> {
    // flags: Api.Type;
    replyToMsgId: int;
    topMsgId?: int;
    replyToPeerId?: Api.TypeInputPeer;
    quoteText?: string;
    quoteEntities?: Api.TypeMessageEntity[];
    quoteOffset?: int;
    monoforumPeerId?: Api.TypeInputPeer;
    todoItemId?: int;
    pollOption?: bytes;
    CONSTRUCTOR_ID: 1003796418;
    SUBCLASS_OF_ID: 2356220701;
    className: 'InputReplyToMessage';

    static fromReader(reader: Reader): InputReplyToMessage;
  }
  export class InputReplyToStory extends VirtualClass<{
    peer: Api.TypeInputPeer;
    storyId: int;
  }> {
    peer: Api.TypeInputPeer;
    storyId: int;
    CONSTRUCTOR_ID: 1484862010;
    SUBCLASS_OF_ID: 2356220701;
    className: 'InputReplyToStory';

    static fromReader(reader: Reader): InputReplyToStory;
  }
  export class InputReplyToMonoForum extends VirtualClass<{
    monoforumPeerId: Api.TypeInputPeer;
  }> {
    monoforumPeerId: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 1775660101;
    SUBCLASS_OF_ID: 2356220701;
    className: 'InputReplyToMonoForum';

    static fromReader(reader: Reader): InputReplyToMonoForum;
  }
  export class ExportedStoryLink extends VirtualClass<{
    link: string;
  }> {
    link: string;
    CONSTRUCTOR_ID: 1070138683;
    SUBCLASS_OF_ID: 264585638;
    className: 'ExportedStoryLink';

    static fromReader(reader: Reader): ExportedStoryLink;
  }
  export class StoriesStealthMode extends VirtualClass<{
    // flags: Api.Type;
    activeUntilDate?: int;
    cooldownUntilDate?: int;
  } | void> {
    // flags: Api.Type;
    activeUntilDate?: int;
    cooldownUntilDate?: int;
    CONSTRUCTOR_ID: 1898850301;
    SUBCLASS_OF_ID: 49120257;
    className: 'StoriesStealthMode';

    static fromReader(reader: Reader): StoriesStealthMode;
  }
  export class MediaAreaCoordinates extends VirtualClass<{
    // flags: Api.Type;
    x: double;
    y: double;
    w: double;
    h: double;
    rotation: double;
    radius?: double;
  }> {
    // flags: Api.Type;
    x: double;
    y: double;
    w: double;
    h: double;
    rotation: double;
    radius?: double;
    CONSTRUCTOR_ID: 3486113794;
    SUBCLASS_OF_ID: 491031609;
    className: 'MediaAreaCoordinates';

    static fromReader(reader: Reader): MediaAreaCoordinates;
  }
  export class MediaAreaVenue extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    geo: Api.TypeGeoPoint;
    title: string;
    address: string;
    provider: string;
    venueId: string;
    venueType: string;
    CONSTRUCTOR_ID: 3196246940;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaVenue';

    static fromReader(reader: Reader): MediaAreaVenue;
  }
  export class InputMediaAreaVenue extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    queryId: long;
    resultId: string;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    queryId: long;
    resultId: string;
    CONSTRUCTOR_ID: 2994872703;
    SUBCLASS_OF_ID: 4084038642;
    className: 'InputMediaAreaVenue';

    static fromReader(reader: Reader): InputMediaAreaVenue;
  }
  export class MediaAreaGeoPoint extends VirtualClass<{
    // flags: Api.Type;
    coordinates: Api.TypeMediaAreaCoordinates;
    geo: Api.TypeGeoPoint;
    address?: Api.TypeGeoPointAddress;
  }> {
    // flags: Api.Type;
    coordinates: Api.TypeMediaAreaCoordinates;
    geo: Api.TypeGeoPoint;
    address?: Api.TypeGeoPointAddress;
    CONSTRUCTOR_ID: 3402974509;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaGeoPoint';

    static fromReader(reader: Reader): MediaAreaGeoPoint;
  }
  export class MediaAreaSuggestedReaction extends VirtualClass<{
    // flags: Api.Type;
    dark?: true;
    flipped?: true;
    coordinates: Api.TypeMediaAreaCoordinates;
    reaction: Api.TypeReaction;
  }> {
    // flags: Api.Type;
    dark?: true;
    flipped?: true;
    coordinates: Api.TypeMediaAreaCoordinates;
    reaction: Api.TypeReaction;
    CONSTRUCTOR_ID: 340088945;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaSuggestedReaction';

    static fromReader(reader: Reader): MediaAreaSuggestedReaction;
  }
  export class MediaAreaChannelPost extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    channelId: long;
    msgId: int;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    channelId: long;
    msgId: int;
    CONSTRUCTOR_ID: 1996756655;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaChannelPost';

    static fromReader(reader: Reader): MediaAreaChannelPost;
  }
  export class InputMediaAreaChannelPost extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    channel: Api.TypeInputChannel;
    msgId: int;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    channel: Api.TypeInputChannel;
    msgId: int;
    CONSTRUCTOR_ID: 577893055;
    SUBCLASS_OF_ID: 4084038642;
    className: 'InputMediaAreaChannelPost';

    static fromReader(reader: Reader): InputMediaAreaChannelPost;
  }
  export class MediaAreaUrl extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    url: string;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    url: string;
    CONSTRUCTOR_ID: 926421125;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaUrl';

    static fromReader(reader: Reader): MediaAreaUrl;
  }
  export class MediaAreaWeather extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    emoji: string;
    temperatureC: double;
    color: int;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    emoji: string;
    temperatureC: double;
    color: int;
    CONSTRUCTOR_ID: 1235637404;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaWeather';

    static fromReader(reader: Reader): MediaAreaWeather;
  }
  export class MediaAreaStarGift extends VirtualClass<{
    coordinates: Api.TypeMediaAreaCoordinates;
    slug: string;
  }> {
    coordinates: Api.TypeMediaAreaCoordinates;
    slug: string;
    CONSTRUCTOR_ID: 1468491885;
    SUBCLASS_OF_ID: 4084038642;
    className: 'MediaAreaStarGift';

    static fromReader(reader: Reader): MediaAreaStarGift;
  }
  export class PeerStories extends VirtualClass<{
    // flags: Api.Type;
    peer: Api.TypePeer;
    maxReadId?: int;
    stories: Api.TypeStoryItem[];
  }> {
    // flags: Api.Type;
    peer: Api.TypePeer;
    maxReadId?: int;
    stories: Api.TypeStoryItem[];
    CONSTRUCTOR_ID: 2587224473;
    SUBCLASS_OF_ID: 304908871;
    className: 'PeerStories';

    static fromReader(reader: Reader): PeerStories;
  }
  export class PremiumGiftCodeOption extends VirtualClass<{
    // flags: Api.Type;
    users: int;
    months: int;
    storeProduct?: string;
    storeQuantity?: int;
    currency: string;
    amount: long;
  }> {
    // flags: Api.Type;
    users: int;
    months: int;
    storeProduct?: string;
    storeQuantity?: int;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 629052971;
    SUBCLASS_OF_ID: 2216898;
    className: 'PremiumGiftCodeOption';

    static fromReader(reader: Reader): PremiumGiftCodeOption;
  }
  export class PrepaidGiveaway extends VirtualClass<{
    id: long;
    months: int;
    quantity: int;
    date: int;
  }> {
    id: long;
    months: int;
    quantity: int;
    date: int;
    CONSTRUCTOR_ID: 2991824212;
    SUBCLASS_OF_ID: 3997067136;
    className: 'PrepaidGiveaway';

    static fromReader(reader: Reader): PrepaidGiveaway;
  }
  export class PrepaidStarsGiveaway extends VirtualClass<{
    id: long;
    stars: long;
    quantity: int;
    boosts: int;
    date: int;
  }> {
    id: long;
    stars: long;
    quantity: int;
    boosts: int;
    date: int;
    CONSTRUCTOR_ID: 2594011104;
    SUBCLASS_OF_ID: 3997067136;
    className: 'PrepaidStarsGiveaway';

    static fromReader(reader: Reader): PrepaidStarsGiveaway;
  }
  export class Boost extends VirtualClass<{
    // flags: Api.Type;
    gift?: true;
    giveaway?: true;
    unclaimed?: true;
    id: string;
    userId?: long;
    giveawayMsgId?: int;
    date: int;
    expires: int;
    usedGiftSlug?: string;
    multiplier?: int;
    stars?: long;
  }> {
    // flags: Api.Type;
    gift?: true;
    giveaway?: true;
    unclaimed?: true;
    id: string;
    userId?: long;
    giveawayMsgId?: int;
    date: int;
    expires: int;
    usedGiftSlug?: string;
    multiplier?: int;
    stars?: long;
    CONSTRUCTOR_ID: 1262359766;
    SUBCLASS_OF_ID: 2544175212;
    className: 'Boost';

    static fromReader(reader: Reader): Boost;
  }
  export class MyBoost extends VirtualClass<{
    // flags: Api.Type;
    slot: int;
    peer?: Api.TypePeer;
    date: int;
    expires: int;
    cooldownUntilDate?: int;
  }> {
    // flags: Api.Type;
    slot: int;
    peer?: Api.TypePeer;
    date: int;
    expires: int;
    cooldownUntilDate?: int;
    CONSTRUCTOR_ID: 3293069660;
    SUBCLASS_OF_ID: 3306842303;
    className: 'MyBoost';

    static fromReader(reader: Reader): MyBoost;
  }
  export class StoryFwdHeader extends VirtualClass<{
    // flags: Api.Type;
    modified?: true;
    from?: Api.TypePeer;
    fromName?: string;
    storyId?: int;
  } | void> {
    // flags: Api.Type;
    modified?: true;
    from?: Api.TypePeer;
    fromName?: string;
    storyId?: int;
    CONSTRUCTOR_ID: 3089555792;
    SUBCLASS_OF_ID: 2863706412;
    className: 'StoryFwdHeader';

    static fromReader(reader: Reader): StoryFwdHeader;
  }
  export class PostInteractionCountersMessage extends VirtualClass<{
    msgId: int;
    views: int;
    forwards: int;
    reactions: int;
  }> {
    msgId: int;
    views: int;
    forwards: int;
    reactions: int;
    CONSTRUCTOR_ID: 3875901055;
    SUBCLASS_OF_ID: 1850361243;
    className: 'PostInteractionCountersMessage';

    static fromReader(reader: Reader): PostInteractionCountersMessage;
  }
  export class PostInteractionCountersStory extends VirtualClass<{
    storyId: int;
    views: int;
    forwards: int;
    reactions: int;
  }> {
    storyId: int;
    views: int;
    forwards: int;
    reactions: int;
    CONSTRUCTOR_ID: 2319978023;
    SUBCLASS_OF_ID: 1850361243;
    className: 'PostInteractionCountersStory';

    static fromReader(reader: Reader): PostInteractionCountersStory;
  }
  export class PublicForwardMessage extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 32685898;
    SUBCLASS_OF_ID: 1653609939;
    className: 'PublicForwardMessage';

    static fromReader(reader: Reader): PublicForwardMessage;
  }
  export class PublicForwardStory extends VirtualClass<{
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
  }> {
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 3992169936;
    SUBCLASS_OF_ID: 1653609939;
    className: 'PublicForwardStory';

    static fromReader(reader: Reader): PublicForwardStory;
  }
  export class PeerColor extends VirtualClass<{
    // flags: Api.Type;
    color?: int;
    backgroundEmojiId?: long;
  } | void> {
    // flags: Api.Type;
    color?: int;
    backgroundEmojiId?: long;
    CONSTRUCTOR_ID: 3041614543;
    SUBCLASS_OF_ID: 4068582527;
    className: 'PeerColor';

    static fromReader(reader: Reader): PeerColor;
  }
  export class PeerColorCollectible extends VirtualClass<{
    // flags: Api.Type;
    collectibleId: long;
    giftEmojiId: long;
    backgroundEmojiId: long;
    accentColor: int;
    colors: int[];
    darkAccentColor?: int;
    darkColors?: int[];
  }> {
    // flags: Api.Type;
    collectibleId: long;
    giftEmojiId: long;
    backgroundEmojiId: long;
    accentColor: int;
    colors: int[];
    darkAccentColor?: int;
    darkColors?: int[];
    CONSTRUCTOR_ID: 3116393370;
    SUBCLASS_OF_ID: 4068582527;
    className: 'PeerColorCollectible';

    static fromReader(reader: Reader): PeerColorCollectible;
  }
  export class InputPeerColorCollectible extends VirtualClass<{
    collectibleId: long;
  }> {
    collectibleId: long;
    CONSTRUCTOR_ID: 3102377641;
    SUBCLASS_OF_ID: 4068582527;
    className: 'InputPeerColorCollectible';

    static fromReader(reader: Reader): InputPeerColorCollectible;
  }
  export class StoryReaction extends VirtualClass<{
    peerId: Api.TypePeer;
    date: int;
    reaction: Api.TypeReaction;
  }> {
    peerId: Api.TypePeer;
    date: int;
    reaction: Api.TypeReaction;
    CONSTRUCTOR_ID: 1620104917;
    SUBCLASS_OF_ID: 3379257259;
    className: 'StoryReaction';

    static fromReader(reader: Reader): StoryReaction;
  }
  export class StoryReactionPublicForward extends VirtualClass<{
    message: Api.TypeMessage;
  }> {
    message: Api.TypeMessage;
    CONSTRUCTOR_ID: 3148555843;
    SUBCLASS_OF_ID: 3379257259;
    className: 'StoryReactionPublicForward';

    static fromReader(reader: Reader): StoryReactionPublicForward;
  }
  export class StoryReactionPublicRepost extends VirtualClass<{
    peerId: Api.TypePeer;
    story: Api.TypeStoryItem;
  }> {
    peerId: Api.TypePeer;
    story: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 3486322451;
    SUBCLASS_OF_ID: 3379257259;
    className: 'StoryReactionPublicRepost';

    static fromReader(reader: Reader): StoryReactionPublicRepost;
  }
  export class SavedDialog extends VirtualClass<{
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    topMessage: int;
  }> {
    // flags: Api.Type;
    pinned?: true;
    peer: Api.TypePeer;
    topMessage: int;
    CONSTRUCTOR_ID: 3179793260;
    SUBCLASS_OF_ID: 599418118;
    className: 'SavedDialog';

    static fromReader(reader: Reader): SavedDialog;
  }
  export class MonoForumDialog extends VirtualClass<{
    // flags: Api.Type;
    unreadMark?: true;
    nopaidMessagesException?: true;
    peer: Api.TypePeer;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadReactionsCount: int;
    draft?: Api.TypeDraftMessage;
  }> {
    // flags: Api.Type;
    unreadMark?: true;
    nopaidMessagesException?: true;
    peer: Api.TypePeer;
    topMessage: int;
    readInboxMaxId: int;
    readOutboxMaxId: int;
    unreadCount: int;
    unreadReactionsCount: int;
    draft?: Api.TypeDraftMessage;
    CONSTRUCTOR_ID: 1681948327;
    SUBCLASS_OF_ID: 599418118;
    className: 'MonoForumDialog';

    static fromReader(reader: Reader): MonoForumDialog;
  }
  export class SavedReactionTag extends VirtualClass<{
    // flags: Api.Type;
    reaction: Api.TypeReaction;
    title?: string;
    count: int;
  }> {
    // flags: Api.Type;
    reaction: Api.TypeReaction;
    title?: string;
    count: int;
    CONSTRUCTOR_ID: 3413112872;
    SUBCLASS_OF_ID: 3983021080;
    className: 'SavedReactionTag';

    static fromReader(reader: Reader): SavedReactionTag;
  }
  export class OutboxReadDate extends VirtualClass<{
    date: int;
  }> {
    date: int;
    CONSTRUCTOR_ID: 1001931436;
    SUBCLASS_OF_ID: 1867613126;
    className: 'OutboxReadDate';

    static fromReader(reader: Reader): OutboxReadDate;
  }
  export class SmsJob extends VirtualClass<{
    jobId: string;
    phoneNumber: string;
    text: string;
  }> {
    jobId: string;
    phoneNumber: string;
    text: string;
    CONSTRUCTOR_ID: 3869372088;
    SUBCLASS_OF_ID: 522459262;
    className: 'SmsJob';

    static fromReader(reader: Reader): SmsJob;
  }
  export class BusinessWeeklyOpen extends VirtualClass<{
    startMinute: int;
    endMinute: int;
  }> {
    startMinute: int;
    endMinute: int;
    CONSTRUCTOR_ID: 302717625;
    SUBCLASS_OF_ID: 406857255;
    className: 'BusinessWeeklyOpen';

    static fromReader(reader: Reader): BusinessWeeklyOpen;
  }
  export class BusinessWorkHours extends VirtualClass<{
    // flags: Api.Type;
    openNow?: true;
    timezoneId: string;
    weeklyOpen: Api.TypeBusinessWeeklyOpen[];
  }> {
    // flags: Api.Type;
    openNow?: true;
    timezoneId: string;
    weeklyOpen: Api.TypeBusinessWeeklyOpen[];
    CONSTRUCTOR_ID: 2358423704;
    SUBCLASS_OF_ID: 1704962053;
    className: 'BusinessWorkHours';

    static fromReader(reader: Reader): BusinessWorkHours;
  }
  export class BusinessLocation extends VirtualClass<{
    // flags: Api.Type;
    geoPoint?: Api.TypeGeoPoint;
    address: string;
  }> {
    // flags: Api.Type;
    geoPoint?: Api.TypeGeoPoint;
    address: string;
    CONSTRUCTOR_ID: 2891717367;
    SUBCLASS_OF_ID: 2578238160;
    className: 'BusinessLocation';

    static fromReader(reader: Reader): BusinessLocation;
  }
  export class InputBusinessRecipients extends VirtualClass<{
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: Api.TypeInputUser[];
  } | void> {
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: Api.TypeInputUser[];
    CONSTRUCTOR_ID: 1871393450;
    SUBCLASS_OF_ID: 226420031;
    className: 'InputBusinessRecipients';

    static fromReader(reader: Reader): InputBusinessRecipients;
  }
  export class BusinessRecipients extends VirtualClass<{
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: long[];
  } | void> {
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: long[];
    CONSTRUCTOR_ID: 554733559;
    SUBCLASS_OF_ID: 1384459846;
    className: 'BusinessRecipients';

    static fromReader(reader: Reader): BusinessRecipients;
  }
  export class BusinessAwayMessageScheduleAlways extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3384402617;
    SUBCLASS_OF_ID: 672702558;
    className: 'BusinessAwayMessageScheduleAlways';

    static fromReader(reader: Reader): BusinessAwayMessageScheduleAlways;
  }
  export class BusinessAwayMessageScheduleOutsideWorkHours extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3287479553;
    SUBCLASS_OF_ID: 672702558;
    className: 'BusinessAwayMessageScheduleOutsideWorkHours';

    static fromReader(reader: Reader): BusinessAwayMessageScheduleOutsideWorkHours;
  }
  export class BusinessAwayMessageScheduleCustom extends VirtualClass<{
    startDate: int;
    endDate: int;
  }> {
    startDate: int;
    endDate: int;
    CONSTRUCTOR_ID: 3427638988;
    SUBCLASS_OF_ID: 672702558;
    className: 'BusinessAwayMessageScheduleCustom';

    static fromReader(reader: Reader): BusinessAwayMessageScheduleCustom;
  }
  export class InputBusinessGreetingMessage extends VirtualClass<{
    shortcutId: int;
    recipients: Api.TypeInputBusinessRecipients;
    noActivityDays: int;
  }> {
    shortcutId: int;
    recipients: Api.TypeInputBusinessRecipients;
    noActivityDays: int;
    CONSTRUCTOR_ID: 26528571;
    SUBCLASS_OF_ID: 1652088029;
    className: 'InputBusinessGreetingMessage';

    static fromReader(reader: Reader): InputBusinessGreetingMessage;
  }
  export class BusinessGreetingMessage extends VirtualClass<{
    shortcutId: int;
    recipients: Api.TypeBusinessRecipients;
    noActivityDays: int;
  }> {
    shortcutId: int;
    recipients: Api.TypeBusinessRecipients;
    noActivityDays: int;
    CONSTRUCTOR_ID: 3843664811;
    SUBCLASS_OF_ID: 3007638222;
    className: 'BusinessGreetingMessage';

    static fromReader(reader: Reader): BusinessGreetingMessage;
  }
  export class InputBusinessAwayMessage extends VirtualClass<{
    // flags: Api.Type;
    offlineOnly?: true;
    shortcutId: int;
    schedule: Api.TypeBusinessAwayMessageSchedule;
    recipients: Api.TypeInputBusinessRecipients;
  }> {
    // flags: Api.Type;
    offlineOnly?: true;
    shortcutId: int;
    schedule: Api.TypeBusinessAwayMessageSchedule;
    recipients: Api.TypeInputBusinessRecipients;
    CONSTRUCTOR_ID: 2200008160;
    SUBCLASS_OF_ID: 3629489271;
    className: 'InputBusinessAwayMessage';

    static fromReader(reader: Reader): InputBusinessAwayMessage;
  }
  export class BusinessAwayMessage extends VirtualClass<{
    // flags: Api.Type;
    offlineOnly?: true;
    shortcutId: int;
    schedule: Api.TypeBusinessAwayMessageSchedule;
    recipients: Api.TypeBusinessRecipients;
  }> {
    // flags: Api.Type;
    offlineOnly?: true;
    shortcutId: int;
    schedule: Api.TypeBusinessAwayMessageSchedule;
    recipients: Api.TypeBusinessRecipients;
    CONSTRUCTOR_ID: 4011158108;
    SUBCLASS_OF_ID: 4057181732;
    className: 'BusinessAwayMessage';

    static fromReader(reader: Reader): BusinessAwayMessage;
  }
  export class Timezone extends VirtualClass<{
    id: string;
    name: string;
    utcOffset: int;
  }> {
    id: string;
    name: string;
    utcOffset: int;
    CONSTRUCTOR_ID: 4287793653;
    SUBCLASS_OF_ID: 3463958721;
    className: 'Timezone';

    static fromReader(reader: Reader): Timezone;
  }
  export class QuickReply extends VirtualClass<{
    shortcutId: int;
    shortcut: string;
    topMessage: int;
    count: int;
  }> {
    shortcutId: int;
    shortcut: string;
    topMessage: int;
    count: int;
    CONSTRUCTOR_ID: 110563371;
    SUBCLASS_OF_ID: 3806990098;
    className: 'QuickReply';

    static fromReader(reader: Reader): QuickReply;
  }
  export class InputQuickReplyShortcut extends VirtualClass<{
    shortcut: string;
  }> {
    shortcut: string;
    CONSTRUCTOR_ID: 609840449;
    SUBCLASS_OF_ID: 2775088215;
    className: 'InputQuickReplyShortcut';

    static fromReader(reader: Reader): InputQuickReplyShortcut;
  }
  export class InputQuickReplyShortcutId extends VirtualClass<{
    shortcutId: int;
  }> {
    shortcutId: int;
    CONSTRUCTOR_ID: 18418929;
    SUBCLASS_OF_ID: 2775088215;
    className: 'InputQuickReplyShortcutId';

    static fromReader(reader: Reader): InputQuickReplyShortcutId;
  }
  export class ConnectedBot extends VirtualClass<{
    // flags: Api.Type;
    botId: long;
    recipients: Api.TypeBusinessBotRecipients;
    rights: Api.TypeBusinessBotRights;
  }> {
    // flags: Api.Type;
    botId: long;
    recipients: Api.TypeBusinessBotRecipients;
    rights: Api.TypeBusinessBotRights;
    CONSTRUCTOR_ID: 3445908332;
    SUBCLASS_OF_ID: 904403870;
    className: 'ConnectedBot';

    static fromReader(reader: Reader): ConnectedBot;
  }
  export class Birthday extends VirtualClass<{
    // flags: Api.Type;
    day: int;
    month: int;
    year?: int;
  }> {
    // flags: Api.Type;
    day: int;
    month: int;
    year?: int;
    CONSTRUCTOR_ID: 1821253126;
    SUBCLASS_OF_ID: 3196048996;
    className: 'Birthday';

    static fromReader(reader: Reader): Birthday;
  }
  export class BotBusinessConnection extends VirtualClass<{
    // flags: Api.Type;
    disabled?: true;
    connectionId: string;
    userId: long;
    dcId: int;
    date: int;
    rights?: Api.TypeBusinessBotRights;
  }> {
    // flags: Api.Type;
    disabled?: true;
    connectionId: string;
    userId: long;
    dcId: int;
    date: int;
    rights?: Api.TypeBusinessBotRights;
    CONSTRUCTOR_ID: 2402595573;
    SUBCLASS_OF_ID: 2601715014;
    className: 'BotBusinessConnection';

    static fromReader(reader: Reader): BotBusinessConnection;
  }
  export class InputBusinessIntro extends VirtualClass<{
    // flags: Api.Type;
    title: string;
    description: string;
    sticker?: Api.TypeInputDocument;
  }> {
    // flags: Api.Type;
    title: string;
    description: string;
    sticker?: Api.TypeInputDocument;
    CONSTRUCTOR_ID: 163867085;
    SUBCLASS_OF_ID: 1683650173;
    className: 'InputBusinessIntro';

    static fromReader(reader: Reader): InputBusinessIntro;
  }
  export class BusinessIntro extends VirtualClass<{
    // flags: Api.Type;
    title: string;
    description: string;
    sticker?: Api.TypeDocument;
  }> {
    // flags: Api.Type;
    title: string;
    description: string;
    sticker?: Api.TypeDocument;
    CONSTRUCTOR_ID: 1510606445;
    SUBCLASS_OF_ID: 1694815175;
    className: 'BusinessIntro';

    static fromReader(reader: Reader): BusinessIntro;
  }
  export class InputCollectibleUsername extends VirtualClass<{
    username: string;
  }> {
    username: string;
    CONSTRUCTOR_ID: 3818152105;
    SUBCLASS_OF_ID: 705659371;
    className: 'InputCollectibleUsername';

    static fromReader(reader: Reader): InputCollectibleUsername;
  }
  export class InputCollectiblePhone extends VirtualClass<{
    phone: string;
  }> {
    phone: string;
    CONSTRUCTOR_ID: 2732725412;
    SUBCLASS_OF_ID: 705659371;
    className: 'InputCollectiblePhone';

    static fromReader(reader: Reader): InputCollectiblePhone;
  }
  export class InputBusinessBotRecipients extends VirtualClass<{
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: Api.TypeInputUser[];
    excludeUsers?: Api.TypeInputUser[];
  } | void> {
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: Api.TypeInputUser[];
    excludeUsers?: Api.TypeInputUser[];
    CONSTRUCTOR_ID: 3303379486;
    SUBCLASS_OF_ID: 2849240411;
    className: 'InputBusinessBotRecipients';

    static fromReader(reader: Reader): InputBusinessBotRecipients;
  }
  export class BusinessBotRecipients extends VirtualClass<{
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: long[];
    excludeUsers?: long[];
  } | void> {
    // flags: Api.Type;
    existingChats?: true;
    newChats?: true;
    contacts?: true;
    nonContacts?: true;
    excludeSelected?: true;
    users?: long[];
    excludeUsers?: long[];
    CONSTRUCTOR_ID: 3096245107;
    SUBCLASS_OF_ID: 4036133834;
    className: 'BusinessBotRecipients';

    static fromReader(reader: Reader): BusinessBotRecipients;
  }
  export class ContactBirthday extends VirtualClass<{
    contactId: long;
    birthday: Api.TypeBirthday;
  }> {
    contactId: long;
    birthday: Api.TypeBirthday;
    CONSTRUCTOR_ID: 496600883;
    SUBCLASS_OF_ID: 3638372358;
    className: 'ContactBirthday';

    static fromReader(reader: Reader): ContactBirthday;
  }
  export class MissingInvitee extends VirtualClass<{
    // flags: Api.Type;
    premiumWouldAllowInvite?: true;
    premiumRequiredForPm?: true;
    userId: long;
  }> {
    // flags: Api.Type;
    premiumWouldAllowInvite?: true;
    premiumRequiredForPm?: true;
    userId: long;
    CONSTRUCTOR_ID: 1653379620;
    SUBCLASS_OF_ID: 1552723164;
    className: 'MissingInvitee';

    static fromReader(reader: Reader): MissingInvitee;
  }
  export class InputBusinessChatLink extends VirtualClass<{
    // flags: Api.Type;
    message: string;
    entities?: Api.TypeMessageEntity[];
    title?: string;
  }> {
    // flags: Api.Type;
    message: string;
    entities?: Api.TypeMessageEntity[];
    title?: string;
    CONSTRUCTOR_ID: 292003751;
    SUBCLASS_OF_ID: 2875655443;
    className: 'InputBusinessChatLink';

    static fromReader(reader: Reader): InputBusinessChatLink;
  }
  export class BusinessChatLink extends VirtualClass<{
    // flags: Api.Type;
    link: string;
    message: string;
    entities?: Api.TypeMessageEntity[];
    title?: string;
    views: int;
  }> {
    // flags: Api.Type;
    link: string;
    message: string;
    entities?: Api.TypeMessageEntity[];
    title?: string;
    views: int;
    CONSTRUCTOR_ID: 3031328367;
    SUBCLASS_OF_ID: 1007504011;
    className: 'BusinessChatLink';

    static fromReader(reader: Reader): BusinessChatLink;
  }
  export class RequestedPeerUser extends VirtualClass<{
    // flags: Api.Type;
    userId: long;
    firstName?: string;
    lastName?: string;
    username?: string;
    photo?: Api.TypePhoto;
  }> {
    // flags: Api.Type;
    userId: long;
    firstName?: string;
    lastName?: string;
    username?: string;
    photo?: Api.TypePhoto;
    CONSTRUCTOR_ID: 3593466986;
    SUBCLASS_OF_ID: 3263724560;
    className: 'RequestedPeerUser';

    static fromReader(reader: Reader): RequestedPeerUser;
  }
  export class RequestedPeerChat extends VirtualClass<{
    // flags: Api.Type;
    chatId: long;
    title?: string;
    photo?: Api.TypePhoto;
  }> {
    // flags: Api.Type;
    chatId: long;
    title?: string;
    photo?: Api.TypePhoto;
    CONSTRUCTOR_ID: 1929860175;
    SUBCLASS_OF_ID: 3263724560;
    className: 'RequestedPeerChat';

    static fromReader(reader: Reader): RequestedPeerChat;
  }
  export class RequestedPeerChannel extends VirtualClass<{
    // flags: Api.Type;
    channelId: long;
    title?: string;
    username?: string;
    photo?: Api.TypePhoto;
  }> {
    // flags: Api.Type;
    channelId: long;
    title?: string;
    username?: string;
    photo?: Api.TypePhoto;
    CONSTRUCTOR_ID: 2342781924;
    SUBCLASS_OF_ID: 3263724560;
    className: 'RequestedPeerChannel';

    static fromReader(reader: Reader): RequestedPeerChannel;
  }
  export class SponsoredMessageReportOption extends VirtualClass<{
    text: string;
    option: bytes;
  }> {
    text: string;
    option: bytes;
    CONSTRUCTOR_ID: 1124938064;
    SUBCLASS_OF_ID: 3711084312;
    className: 'SponsoredMessageReportOption';

    static fromReader(reader: Reader): SponsoredMessageReportOption;
  }
  export class ReactionNotificationsFromContacts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3133384218;
    SUBCLASS_OF_ID: 878672192;
    className: 'ReactionNotificationsFromContacts';

    static fromReader(reader: Reader): ReactionNotificationsFromContacts;
  }
  export class ReactionNotificationsFromAll extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1268654752;
    SUBCLASS_OF_ID: 878672192;
    className: 'ReactionNotificationsFromAll';

    static fromReader(reader: Reader): ReactionNotificationsFromAll;
  }
  export class ReactionsNotifySettings extends VirtualClass<{
    // flags: Api.Type;
    messagesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    storiesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    pollVotesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    sound: Api.TypeNotificationSound;
    showPreviews: Bool;
  }> {
    // flags: Api.Type;
    messagesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    storiesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    pollVotesNotifyFrom?: Api.TypeReactionNotificationsFrom;
    sound: Api.TypeNotificationSound;
    showPreviews: Bool;
    CONSTRUCTOR_ID: 1910827608;
    SUBCLASS_OF_ID: 2382301265;
    className: 'ReactionsNotifySettings';

    static fromReader(reader: Reader): ReactionsNotifySettings;
  }
  export class AvailableEffect extends VirtualClass<{
    // flags: Api.Type;
    premiumRequired?: true;
    id: long;
    emoticon: string;
    staticIconId?: long;
    effectStickerId: long;
    effectAnimationId?: long;
  }> {
    // flags: Api.Type;
    premiumRequired?: true;
    id: long;
    emoticon: string;
    staticIconId?: long;
    effectStickerId: long;
    effectAnimationId?: long;
    CONSTRUCTOR_ID: 2479088254;
    SUBCLASS_OF_ID: 2556047233;
    className: 'AvailableEffect';

    static fromReader(reader: Reader): AvailableEffect;
  }
  export class FactCheck extends VirtualClass<{
    // flags: Api.Type;
    needCheck?: true;
    country?: string;
    text?: Api.TypeTextWithEntities;
    hash: long;
  }> {
    // flags: Api.Type;
    needCheck?: true;
    country?: string;
    text?: Api.TypeTextWithEntities;
    hash: long;
    CONSTRUCTOR_ID: 3097230543;
    SUBCLASS_OF_ID: 1178641315;
    className: 'FactCheck';

    static fromReader(reader: Reader): FactCheck;
  }
  export class StarsTransactionPeerUnsupported extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2515714020;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerUnsupported';

    static fromReader(reader: Reader): StarsTransactionPeerUnsupported;
  }
  export class StarsTransactionPeerAppStore extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3025646453;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerAppStore';

    static fromReader(reader: Reader): StarsTransactionPeerAppStore;
  }
  export class StarsTransactionPeerPlayMarket extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2069236235;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerPlayMarket';

    static fromReader(reader: Reader): StarsTransactionPeerPlayMarket;
  }
  export class StarsTransactionPeerPremiumBot extends VirtualClass<void> {
    CONSTRUCTOR_ID: 621656824;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerPremiumBot';

    static fromReader(reader: Reader): StarsTransactionPeerPremiumBot;
  }
  export class StarsTransactionPeerFragment extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3912227074;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerFragment';

    static fromReader(reader: Reader): StarsTransactionPeerFragment;
  }
  export class StarsTransactionPeer extends VirtualClass<{
    peer: Api.TypePeer;
  }> {
    peer: Api.TypePeer;
    CONSTRUCTOR_ID: 3624771933;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeer';

    static fromReader(reader: Reader): StarsTransactionPeer;
  }
  export class StarsTransactionPeerAds extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1617438738;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerAds';

    static fromReader(reader: Reader): StarsTransactionPeerAds;
  }
  export class StarsTransactionPeerAPI extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4184308397;
    SUBCLASS_OF_ID: 1102483843;
    className: 'StarsTransactionPeerAPI';

    static fromReader(reader: Reader): StarsTransactionPeerAPI;
  }
  export class StarsTopupOption extends VirtualClass<{
    // flags: Api.Type;
    extended?: true;
    stars: long;
    storeProduct?: string;
    currency: string;
    amount: long;
  }> {
    // flags: Api.Type;
    extended?: true;
    stars: long;
    storeProduct?: string;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 198776256;
    SUBCLASS_OF_ID: 3854345708;
    className: 'StarsTopupOption';

    static fromReader(reader: Reader): StarsTopupOption;
  }
  export class StarsTransaction extends VirtualClass<{
    // flags: Api.Type;
    refund?: true;
    pending?: true;
    failed?: true;
    gift?: true;
    reaction?: true;
    stargiftUpgrade?: true;
    businessTransfer?: true;
    stargiftResale?: true;
    postsSearch?: true;
    stargiftPrepaidUpgrade?: true;
    stargiftDropOriginalDetails?: true;
    phonegroupMessage?: true;
    stargiftAuctionBid?: true;
    offer?: true;
    id: string;
    amount: Api.TypeStarsAmount;
    date: int;
    peer: Api.TypeStarsTransactionPeer;
    title?: string;
    description?: string;
    photo?: Api.TypeWebDocument;
    transactionDate?: int;
    transactionUrl?: string;
    botPayload?: bytes;
    msgId?: int;
    extendedMedia?: Api.TypeMessageMedia[];
    subscriptionPeriod?: int;
    giveawayPostId?: int;
    stargift?: Api.TypeStarGift;
    floodskipNumber?: int;
    starrefCommissionPermille?: int;
    starrefPeer?: Api.TypePeer;
    starrefAmount?: Api.TypeStarsAmount;
    paidMessages?: int;
    premiumGiftMonths?: int;
    adsProceedsFromDate?: int;
    adsProceedsToDate?: int;
  }> {
    // flags: Api.Type;
    refund?: true;
    pending?: true;
    failed?: true;
    gift?: true;
    reaction?: true;
    stargiftUpgrade?: true;
    businessTransfer?: true;
    stargiftResale?: true;
    postsSearch?: true;
    stargiftPrepaidUpgrade?: true;
    stargiftDropOriginalDetails?: true;
    phonegroupMessage?: true;
    stargiftAuctionBid?: true;
    offer?: true;
    id: string;
    amount: Api.TypeStarsAmount;
    date: int;
    peer: Api.TypeStarsTransactionPeer;
    title?: string;
    description?: string;
    photo?: Api.TypeWebDocument;
    transactionDate?: int;
    transactionUrl?: string;
    botPayload?: bytes;
    msgId?: int;
    extendedMedia?: Api.TypeMessageMedia[];
    subscriptionPeriod?: int;
    giveawayPostId?: int;
    stargift?: Api.TypeStarGift;
    floodskipNumber?: int;
    starrefCommissionPermille?: int;
    starrefPeer?: Api.TypePeer;
    starrefAmount?: Api.TypeStarsAmount;
    paidMessages?: int;
    premiumGiftMonths?: int;
    adsProceedsFromDate?: int;
    adsProceedsToDate?: int;
    CONSTRUCTOR_ID: 325426864;
    SUBCLASS_OF_ID: 2257078130;
    className: 'StarsTransaction';

    static fromReader(reader: Reader): StarsTransaction;
  }
  export class FoundStory extends VirtualClass<{
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
  }> {
    peer: Api.TypePeer;
    story: Api.TypeStoryItem;
    CONSTRUCTOR_ID: 3900361664;
    SUBCLASS_OF_ID: 3005049029;
    className: 'FoundStory';

    static fromReader(reader: Reader): FoundStory;
  }
  export class GeoPointAddress extends VirtualClass<{
    // flags: Api.Type;
    countryIso2: string;
    state?: string;
    city?: string;
    street?: string;
  }> {
    // flags: Api.Type;
    countryIso2: string;
    state?: string;
    city?: string;
    street?: string;
    CONSTRUCTOR_ID: 3729546643;
    SUBCLASS_OF_ID: 2522202840;
    className: 'GeoPointAddress';

    static fromReader(reader: Reader): GeoPointAddress;
  }
  export class StarsRevenueStatus extends VirtualClass<{
    // flags: Api.Type;
    withdrawalEnabled?: true;
    currentBalance: Api.TypeStarsAmount;
    availableBalance: Api.TypeStarsAmount;
    overallRevenue: Api.TypeStarsAmount;
    nextWithdrawalAt?: int;
  }> {
    // flags: Api.Type;
    withdrawalEnabled?: true;
    currentBalance: Api.TypeStarsAmount;
    availableBalance: Api.TypeStarsAmount;
    overallRevenue: Api.TypeStarsAmount;
    nextWithdrawalAt?: int;
    CONSTRUCTOR_ID: 4273886353;
    SUBCLASS_OF_ID: 1031643121;
    className: 'StarsRevenueStatus';

    static fromReader(reader: Reader): StarsRevenueStatus;
  }
  export class InputStarsTransaction extends VirtualClass<{
    // flags: Api.Type;
    refund?: true;
    id: string;
  }> {
    // flags: Api.Type;
    refund?: true;
    id: string;
    CONSTRUCTOR_ID: 543876817;
    SUBCLASS_OF_ID: 300026090;
    className: 'InputStarsTransaction';

    static fromReader(reader: Reader): InputStarsTransaction;
  }
  export class StarsGiftOption extends VirtualClass<{
    // flags: Api.Type;
    extended?: true;
    stars: long;
    storeProduct?: string;
    currency: string;
    amount: long;
  }> {
    // flags: Api.Type;
    extended?: true;
    stars: long;
    storeProduct?: string;
    currency: string;
    amount: long;
    CONSTRUCTOR_ID: 1577421297;
    SUBCLASS_OF_ID: 2848803767;
    className: 'StarsGiftOption';

    static fromReader(reader: Reader): StarsGiftOption;
  }
  export class BotPreviewMedia extends VirtualClass<{
    date: int;
    media: Api.TypeMessageMedia;
  }> {
    date: int;
    media: Api.TypeMessageMedia;
    CONSTRUCTOR_ID: 602479523;
    SUBCLASS_OF_ID: 1445641261;
    className: 'BotPreviewMedia';

    static fromReader(reader: Reader): BotPreviewMedia;
  }
  export class StarsSubscriptionPricing extends VirtualClass<{
    period: int;
    amount: long;
  }> {
    period: int;
    amount: long;
    CONSTRUCTOR_ID: 88173912;
    SUBCLASS_OF_ID: 3153574313;
    className: 'StarsSubscriptionPricing';

    static fromReader(reader: Reader): StarsSubscriptionPricing;
  }
  export class StarsSubscription extends VirtualClass<{
    // flags: Api.Type;
    canceled?: true;
    canRefulfill?: true;
    missingBalance?: true;
    botCanceled?: true;
    id: string;
    peer: Api.TypePeer;
    untilDate: int;
    pricing: Api.TypeStarsSubscriptionPricing;
    chatInviteHash?: string;
    title?: string;
    photo?: Api.TypeWebDocument;
    invoiceSlug?: string;
  }> {
    // flags: Api.Type;
    canceled?: true;
    canRefulfill?: true;
    missingBalance?: true;
    botCanceled?: true;
    id: string;
    peer: Api.TypePeer;
    untilDate: int;
    pricing: Api.TypeStarsSubscriptionPricing;
    chatInviteHash?: string;
    title?: string;
    photo?: Api.TypeWebDocument;
    invoiceSlug?: string;
    CONSTRUCTOR_ID: 779004698;
    SUBCLASS_OF_ID: 3974965699;
    className: 'StarsSubscription';

    static fromReader(reader: Reader): StarsSubscription;
  }
  export class MessageReactor extends VirtualClass<{
    // flags: Api.Type;
    top?: true;
    my?: true;
    anonymous?: true;
    peerId?: Api.TypePeer;
    count: int;
  }> {
    // flags: Api.Type;
    top?: true;
    my?: true;
    anonymous?: true;
    peerId?: Api.TypePeer;
    count: int;
    CONSTRUCTOR_ID: 1269016922;
    SUBCLASS_OF_ID: 4030208697;
    className: 'MessageReactor';

    static fromReader(reader: Reader): MessageReactor;
  }
  export class StarsGiveawayOption extends VirtualClass<{
    // flags: Api.Type;
    extended?: true;
    default?: true;
    stars: long;
    yearlyBoosts: int;
    storeProduct?: string;
    currency: string;
    amount: long;
    winners: Api.TypeStarsGiveawayWinnersOption[];
  }> {
    // flags: Api.Type;
    extended?: true;
    default?: true;
    stars: long;
    yearlyBoosts: int;
    storeProduct?: string;
    currency: string;
    amount: long;
    winners: Api.TypeStarsGiveawayWinnersOption[];
    CONSTRUCTOR_ID: 2496562474;
    SUBCLASS_OF_ID: 975741451;
    className: 'StarsGiveawayOption';

    static fromReader(reader: Reader): StarsGiveawayOption;
  }
  export class StarsGiveawayWinnersOption extends VirtualClass<{
    // flags: Api.Type;
    default?: true;
    users: int;
    perUserStars: long;
  }> {
    // flags: Api.Type;
    default?: true;
    users: int;
    perUserStars: long;
    CONSTRUCTOR_ID: 1411605001;
    SUBCLASS_OF_ID: 4227506916;
    className: 'StarsGiveawayWinnersOption';

    static fromReader(reader: Reader): StarsGiveawayWinnersOption;
  }
  export class StarGift extends VirtualClass<{
    // flags: Api.Type;
    limited?: true;
    soldOut?: true;
    birthday?: true;
    requirePremium?: true;
    limitedPerUser?: true;
    peerColorAvailable?: true;
    auction?: true;
    id: long;
    sticker: Api.TypeDocument;
    stars: long;
    availabilityRemains?: int;
    availabilityTotal?: int;
    availabilityResale?: long;
    convertStars: long;
    firstSaleDate?: int;
    lastSaleDate?: int;
    upgradeStars?: long;
    resellMinStars?: long;
    title?: string;
    releasedBy?: Api.TypePeer;
    perUserTotal?: int;
    perUserRemains?: int;
    lockedUntilDate?: int;
    auctionSlug?: string;
    giftsPerRound?: int;
    auctionStartDate?: int;
    upgradeVariants?: int;
    background?: Api.TypeStarGiftBackground;
  }> {
    // flags: Api.Type;
    limited?: true;
    soldOut?: true;
    birthday?: true;
    requirePremium?: true;
    limitedPerUser?: true;
    peerColorAvailable?: true;
    auction?: true;
    id: long;
    sticker: Api.TypeDocument;
    stars: long;
    availabilityRemains?: int;
    availabilityTotal?: int;
    availabilityResale?: long;
    convertStars: long;
    firstSaleDate?: int;
    lastSaleDate?: int;
    upgradeStars?: long;
    resellMinStars?: long;
    title?: string;
    releasedBy?: Api.TypePeer;
    perUserTotal?: int;
    perUserRemains?: int;
    lockedUntilDate?: int;
    auctionSlug?: string;
    giftsPerRound?: int;
    auctionStartDate?: int;
    upgradeVariants?: int;
    background?: Api.TypeStarGiftBackground;
    CONSTRUCTOR_ID: 825922887;
    SUBCLASS_OF_ID: 3273414923;
    className: 'StarGift';

    static fromReader(reader: Reader): StarGift;
  }
  export class StarGiftUnique extends VirtualClass<{
    // flags: Api.Type;
    requirePremium?: true;
    resaleTonOnly?: true;
    themeAvailable?: true;
    burned?: true;
    crafted?: true;
    id: long;
    giftId: long;
    title: string;
    slug: string;
    num: int;
    ownerId?: Api.TypePeer;
    ownerName?: string;
    ownerAddress?: string;
    attributes: Api.TypeStarGiftAttribute[];
    availabilityIssued: int;
    availabilityTotal: int;
    giftAddress?: string;
    resellAmount?: Api.TypeStarsAmount[];
    releasedBy?: Api.TypePeer;
    valueAmount?: long;
    valueCurrency?: string;
    valueUsdAmount?: long;
    themePeer?: Api.TypePeer;
    peerColor?: Api.TypePeerColor;
    hostId?: Api.TypePeer;
    offerMinStars?: int;
    craftChancePermille?: int;
  }> {
    // flags: Api.Type;
    requirePremium?: true;
    resaleTonOnly?: true;
    themeAvailable?: true;
    burned?: true;
    crafted?: true;
    id: long;
    giftId: long;
    title: string;
    slug: string;
    num: int;
    ownerId?: Api.TypePeer;
    ownerName?: string;
    ownerAddress?: string;
    attributes: Api.TypeStarGiftAttribute[];
    availabilityIssued: int;
    availabilityTotal: int;
    giftAddress?: string;
    resellAmount?: Api.TypeStarsAmount[];
    releasedBy?: Api.TypePeer;
    valueAmount?: long;
    valueCurrency?: string;
    valueUsdAmount?: long;
    themePeer?: Api.TypePeer;
    peerColor?: Api.TypePeerColor;
    hostId?: Api.TypePeer;
    offerMinStars?: int;
    craftChancePermille?: int;
    CONSTRUCTOR_ID: 2247141837;
    SUBCLASS_OF_ID: 3273414923;
    className: 'StarGiftUnique';

    static fromReader(reader: Reader): StarGiftUnique;
  }
  export class MessageReportOption extends VirtualClass<{
    text: string;
    option: bytes;
  }> {
    text: string;
    option: bytes;
    CONSTRUCTOR_ID: 2030298073;
    SUBCLASS_OF_ID: 4252610440;
    className: 'MessageReportOption';

    static fromReader(reader: Reader): MessageReportOption;
  }
  export class ReportResultChooseOption extends VirtualClass<{
    title: string;
    options: Api.TypeMessageReportOption[];
  }> {
    title: string;
    options: Api.TypeMessageReportOption[];
    CONSTRUCTOR_ID: 4041531574;
    SUBCLASS_OF_ID: 2899571768;
    className: 'ReportResultChooseOption';

    static fromReader(reader: Reader): ReportResultChooseOption;
  }
  export class ReportResultAddComment extends VirtualClass<{
    // flags: Api.Type;
    optional?: true;
    option: bytes;
  }> {
    // flags: Api.Type;
    optional?: true;
    option: bytes;
    CONSTRUCTOR_ID: 1862904881;
    SUBCLASS_OF_ID: 2899571768;
    className: 'ReportResultAddComment';

    static fromReader(reader: Reader): ReportResultAddComment;
  }
  export class ReportResultReported extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2377333835;
    SUBCLASS_OF_ID: 2899571768;
    className: 'ReportResultReported';

    static fromReader(reader: Reader): ReportResultReported;
  }
  export class BotAppSettings extends VirtualClass<{
    // flags: Api.Type;
    placeholderPath?: bytes;
    backgroundColor?: int;
    backgroundDarkColor?: int;
    headerColor?: int;
    headerDarkColor?: int;
  } | void> {
    // flags: Api.Type;
    placeholderPath?: bytes;
    backgroundColor?: int;
    backgroundDarkColor?: int;
    headerColor?: int;
    headerDarkColor?: int;
    CONSTRUCTOR_ID: 3382384976;
    SUBCLASS_OF_ID: 396255971;
    className: 'BotAppSettings';

    static fromReader(reader: Reader): BotAppSettings;
  }
  export class StarRefProgram extends VirtualClass<{
    // flags: Api.Type;
    botId: long;
    commissionPermille: int;
    durationMonths?: int;
    endDate?: int;
    dailyRevenuePerUser?: Api.TypeStarsAmount;
  }> {
    // flags: Api.Type;
    botId: long;
    commissionPermille: int;
    durationMonths?: int;
    endDate?: int;
    dailyRevenuePerUser?: Api.TypeStarsAmount;
    CONSTRUCTOR_ID: 3708577522;
    SUBCLASS_OF_ID: 2559107074;
    className: 'StarRefProgram';

    static fromReader(reader: Reader): StarRefProgram;
  }
  export class ConnectedBotStarRef extends VirtualClass<{
    // flags: Api.Type;
    revoked?: true;
    url: string;
    date: int;
    botId: long;
    commissionPermille: int;
    durationMonths?: int;
    participants: long;
    revenue: long;
  }> {
    // flags: Api.Type;
    revoked?: true;
    url: string;
    date: int;
    botId: long;
    commissionPermille: int;
    durationMonths?: int;
    participants: long;
    revenue: long;
    CONSTRUCTOR_ID: 429997937;
    SUBCLASS_OF_ID: 2689765260;
    className: 'ConnectedBotStarRef';

    static fromReader(reader: Reader): ConnectedBotStarRef;
  }
  export class StarsAmount extends VirtualClass<{
    amount: long;
    nanos: int;
  }> {
    amount: long;
    nanos: int;
    CONSTRUCTOR_ID: 3149313187;
    SUBCLASS_OF_ID: 895169088;
    className: 'StarsAmount';

    static fromReader(reader: Reader): StarsAmount;
  }
  export class StarsTonAmount extends VirtualClass<{
    amount: long;
  }> {
    amount: long;
    CONSTRUCTOR_ID: 1957618656;
    SUBCLASS_OF_ID: 895169088;
    className: 'StarsTonAmount';

    static fromReader(reader: Reader): StarsTonAmount;
  }
  export class BotVerifierSettings extends VirtualClass<{
    // flags: Api.Type;
    canModifyCustomDescription?: true;
    icon: long;
    company: string;
    customDescription?: string;
  }> {
    // flags: Api.Type;
    canModifyCustomDescription?: true;
    icon: long;
    company: string;
    customDescription?: string;
    CONSTRUCTOR_ID: 2966251031;
    SUBCLASS_OF_ID: 4057334604;
    className: 'BotVerifierSettings';

    static fromReader(reader: Reader): BotVerifierSettings;
  }
  export class BotVerification extends VirtualClass<{
    botId: long;
    icon: long;
    description: string;
  }> {
    botId: long;
    icon: long;
    description: string;
    CONSTRUCTOR_ID: 4181513308;
    SUBCLASS_OF_ID: 750730330;
    className: 'BotVerification';

    static fromReader(reader: Reader): BotVerification;
  }
  export class StarGiftAttributeModel extends VirtualClass<{
    // flags: Api.Type;
    crafted?: true;
    name: string;
    document: Api.TypeDocument;
    rarity: Api.TypeStarGiftAttributeRarity;
  }> {
    // flags: Api.Type;
    crafted?: true;
    name: string;
    document: Api.TypeDocument;
    rarity: Api.TypeStarGiftAttributeRarity;
    CONSTRUCTOR_ID: 1448235490;
    SUBCLASS_OF_ID: 2276819400;
    className: 'StarGiftAttributeModel';

    static fromReader(reader: Reader): StarGiftAttributeModel;
  }
  export class StarGiftAttributePattern extends VirtualClass<{
    name: string;
    document: Api.TypeDocument;
    rarity: Api.TypeStarGiftAttributeRarity;
  }> {
    name: string;
    document: Api.TypeDocument;
    rarity: Api.TypeStarGiftAttributeRarity;
    CONSTRUCTOR_ID: 1315997162;
    SUBCLASS_OF_ID: 2276819400;
    className: 'StarGiftAttributePattern';

    static fromReader(reader: Reader): StarGiftAttributePattern;
  }
  export class StarGiftAttributeBackdrop extends VirtualClass<{
    name: string;
    backdropId: int;
    centerColor: int;
    edgeColor: int;
    patternColor: int;
    textColor: int;
    rarity: Api.TypeStarGiftAttributeRarity;
  }> {
    name: string;
    backdropId: int;
    centerColor: int;
    edgeColor: int;
    patternColor: int;
    textColor: int;
    rarity: Api.TypeStarGiftAttributeRarity;
    CONSTRUCTOR_ID: 2670003428;
    SUBCLASS_OF_ID: 2276819400;
    className: 'StarGiftAttributeBackdrop';

    static fromReader(reader: Reader): StarGiftAttributeBackdrop;
  }
  export class StarGiftAttributeOriginalDetails extends VirtualClass<{
    // flags: Api.Type;
    senderId?: Api.TypePeer;
    recipientId: Api.TypePeer;
    date: int;
    message?: Api.TypeTextWithEntities;
  }> {
    // flags: Api.Type;
    senderId?: Api.TypePeer;
    recipientId: Api.TypePeer;
    date: int;
    message?: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 3770675820;
    SUBCLASS_OF_ID: 2276819400;
    className: 'StarGiftAttributeOriginalDetails';

    static fromReader(reader: Reader): StarGiftAttributeOriginalDetails;
  }
  export class SavedStarGift extends VirtualClass<{
    // flags: Api.Type;
    nameHidden?: true;
    unsaved?: true;
    refunded?: true;
    canUpgrade?: true;
    pinnedToTop?: true;
    upgradeSeparate?: true;
    fromId?: Api.TypePeer;
    date: int;
    gift: Api.TypeStarGift;
    message?: Api.TypeTextWithEntities;
    msgId?: int;
    savedId?: long;
    convertStars?: long;
    upgradeStars?: long;
    canExportAt?: int;
    transferStars?: long;
    canTransferAt?: int;
    canResellAt?: int;
    collectionId?: int[];
    prepaidUpgradeHash?: string;
    dropOriginalDetailsStars?: long;
    giftNum?: int;
    canCraftAt?: int;
  }> {
    // flags: Api.Type;
    nameHidden?: true;
    unsaved?: true;
    refunded?: true;
    canUpgrade?: true;
    pinnedToTop?: true;
    upgradeSeparate?: true;
    fromId?: Api.TypePeer;
    date: int;
    gift: Api.TypeStarGift;
    message?: Api.TypeTextWithEntities;
    msgId?: int;
    savedId?: long;
    convertStars?: long;
    upgradeStars?: long;
    canExportAt?: int;
    transferStars?: long;
    canTransferAt?: int;
    canResellAt?: int;
    collectionId?: int[];
    prepaidUpgradeHash?: string;
    dropOriginalDetailsStars?: long;
    giftNum?: int;
    canCraftAt?: int;
    CONSTRUCTOR_ID: 1105150972;
    SUBCLASS_OF_ID: 2385198100;
    className: 'SavedStarGift';

    static fromReader(reader: Reader): SavedStarGift;
  }
  export class InputSavedStarGiftUser extends VirtualClass<{
    msgId: int;
  }> {
    msgId: int;
    CONSTRUCTOR_ID: 1764202389;
    SUBCLASS_OF_ID: 2406848942;
    className: 'InputSavedStarGiftUser';

    static fromReader(reader: Reader): InputSavedStarGiftUser;
  }
  export class InputSavedStarGiftChat extends VirtualClass<{
    peer: Api.TypeInputPeer;
    savedId: long;
  }> {
    peer: Api.TypeInputPeer;
    savedId: long;
    CONSTRUCTOR_ID: 4043418239;
    SUBCLASS_OF_ID: 2406848942;
    className: 'InputSavedStarGiftChat';

    static fromReader(reader: Reader): InputSavedStarGiftChat;
  }
  export class InputSavedStarGiftSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 545636920;
    SUBCLASS_OF_ID: 2406848942;
    className: 'InputSavedStarGiftSlug';

    static fromReader(reader: Reader): InputSavedStarGiftSlug;
  }
  export class PaidReactionPrivacyDefault extends VirtualClass<void> {
    CONSTRUCTOR_ID: 543872158;
    SUBCLASS_OF_ID: 1708619318;
    className: 'PaidReactionPrivacyDefault';

    static fromReader(reader: Reader): PaidReactionPrivacyDefault;
  }
  export class PaidReactionPrivacyAnonymous extends VirtualClass<void> {
    CONSTRUCTOR_ID: 520887001;
    SUBCLASS_OF_ID: 1708619318;
    className: 'PaidReactionPrivacyAnonymous';

    static fromReader(reader: Reader): PaidReactionPrivacyAnonymous;
  }
  export class PaidReactionPrivacyPeer extends VirtualClass<{
    peer: Api.TypeInputPeer;
  }> {
    peer: Api.TypeInputPeer;
    CONSTRUCTOR_ID: 3698130160;
    SUBCLASS_OF_ID: 1708619318;
    className: 'PaidReactionPrivacyPeer';

    static fromReader(reader: Reader): PaidReactionPrivacyPeer;
  }
  export class RequirementToContactEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 84580409;
    SUBCLASS_OF_ID: 2373280657;
    className: 'RequirementToContactEmpty';

    static fromReader(reader: Reader): RequirementToContactEmpty;
  }
  export class RequirementToContactPremium extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3850495209;
    SUBCLASS_OF_ID: 2373280657;
    className: 'RequirementToContactPremium';

    static fromReader(reader: Reader): RequirementToContactPremium;
  }
  export class RequirementToContactPaidMessages extends VirtualClass<{
    starsAmount: long;
  }> {
    starsAmount: long;
    CONSTRUCTOR_ID: 3036053139;
    SUBCLASS_OF_ID: 2373280657;
    className: 'RequirementToContactPaidMessages';

    static fromReader(reader: Reader): RequirementToContactPaidMessages;
  }
  export class BusinessBotRights extends VirtualClass<{
    // flags: Api.Type;
    reply?: true;
    readMessages?: true;
    deleteSentMessages?: true;
    deleteReceivedMessages?: true;
    editName?: true;
    editBio?: true;
    editProfilePhoto?: true;
    editUsername?: true;
    viewGifts?: true;
    sellGifts?: true;
    changeGiftSettings?: true;
    transferAndUpgradeGifts?: true;
    transferStars?: true;
    manageStories?: true;
  } | void> {
    // flags: Api.Type;
    reply?: true;
    readMessages?: true;
    deleteSentMessages?: true;
    deleteReceivedMessages?: true;
    editName?: true;
    editBio?: true;
    editProfilePhoto?: true;
    editUsername?: true;
    viewGifts?: true;
    sellGifts?: true;
    changeGiftSettings?: true;
    transferAndUpgradeGifts?: true;
    transferStars?: true;
    manageStories?: true;
    CONSTRUCTOR_ID: 2690796791;
    SUBCLASS_OF_ID: 3101455770;
    className: 'BusinessBotRights';

    static fromReader(reader: Reader): BusinessBotRights;
  }
  export class DisallowedGiftsSettings extends VirtualClass<{
    // flags: Api.Type;
    disallowUnlimitedStargifts?: true;
    disallowLimitedStargifts?: true;
    disallowUniqueStargifts?: true;
    disallowPremiumGifts?: true;
    disallowStargiftsFromChannels?: true;
  } | void> {
    // flags: Api.Type;
    disallowUnlimitedStargifts?: true;
    disallowLimitedStargifts?: true;
    disallowUniqueStargifts?: true;
    disallowPremiumGifts?: true;
    disallowStargiftsFromChannels?: true;
    CONSTRUCTOR_ID: 1911715524;
    SUBCLASS_OF_ID: 58911147;
    className: 'DisallowedGiftsSettings';

    static fromReader(reader: Reader): DisallowedGiftsSettings;
  }
  export class SponsoredPeer extends VirtualClass<{
    // flags: Api.Type;
    randomId: bytes;
    peer: Api.TypePeer;
    sponsorInfo?: string;
    additionalInfo?: string;
  }> {
    // flags: Api.Type;
    randomId: bytes;
    peer: Api.TypePeer;
    sponsorInfo?: string;
    additionalInfo?: string;
    CONSTRUCTOR_ID: 3331786963;
    SUBCLASS_OF_ID: 1064665102;
    className: 'SponsoredPeer';

    static fromReader(reader: Reader): SponsoredPeer;
  }
  export class StarGiftAttributeIdModel extends VirtualClass<{
    documentId: long;
  }> {
    documentId: long;
    CONSTRUCTOR_ID: 1219145276;
    SUBCLASS_OF_ID: 3005295287;
    className: 'StarGiftAttributeIdModel';

    static fromReader(reader: Reader): StarGiftAttributeIdModel;
  }
  export class StarGiftAttributeIdPattern extends VirtualClass<{
    documentId: long;
  }> {
    documentId: long;
    CONSTRUCTOR_ID: 1242965043;
    SUBCLASS_OF_ID: 3005295287;
    className: 'StarGiftAttributeIdPattern';

    static fromReader(reader: Reader): StarGiftAttributeIdPattern;
  }
  export class StarGiftAttributeIdBackdrop extends VirtualClass<{
    backdropId: int;
  }> {
    backdropId: int;
    CONSTRUCTOR_ID: 520210263;
    SUBCLASS_OF_ID: 3005295287;
    className: 'StarGiftAttributeIdBackdrop';

    static fromReader(reader: Reader): StarGiftAttributeIdBackdrop;
  }
  export class StarGiftAttributeCounter extends VirtualClass<{
    attribute: Api.TypeStarGiftAttributeId;
    count: int;
  }> {
    attribute: Api.TypeStarGiftAttributeId;
    count: int;
    CONSTRUCTOR_ID: 783398488;
    SUBCLASS_OF_ID: 2351477395;
    className: 'StarGiftAttributeCounter';

    static fromReader(reader: Reader): StarGiftAttributeCounter;
  }
  export class PendingSuggestion extends VirtualClass<{
    suggestion: string;
    title: Api.TypeTextWithEntities;
    description: Api.TypeTextWithEntities;
    url: string;
  }> {
    suggestion: string;
    title: Api.TypeTextWithEntities;
    description: Api.TypeTextWithEntities;
    url: string;
    CONSTRUCTOR_ID: 3890753042;
    SUBCLASS_OF_ID: 3126949031;
    className: 'PendingSuggestion';

    static fromReader(reader: Reader): PendingSuggestion;
  }
  export class TodoItem extends VirtualClass<{
    id: int;
    title: Api.TypeTextWithEntities;
  }> {
    id: int;
    title: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 3416892719;
    SUBCLASS_OF_ID: 3755665077;
    className: 'TodoItem';

    static fromReader(reader: Reader): TodoItem;
  }
  export class TodoList extends VirtualClass<{
    // flags: Api.Type;
    othersCanAppend?: true;
    othersCanComplete?: true;
    title: Api.TypeTextWithEntities;
    list: Api.TypeTodoItem[];
  }> {
    // flags: Api.Type;
    othersCanAppend?: true;
    othersCanComplete?: true;
    title: Api.TypeTextWithEntities;
    list: Api.TypeTodoItem[];
    CONSTRUCTOR_ID: 1236871718;
    SUBCLASS_OF_ID: 2215197619;
    className: 'TodoList';

    static fromReader(reader: Reader): TodoList;
  }
  export class TodoCompletion extends VirtualClass<{
    id: int;
    completedBy: Api.TypePeer;
    date: int;
  }> {
    id: int;
    completedBy: Api.TypePeer;
    date: int;
    CONSTRUCTOR_ID: 572241380;
    SUBCLASS_OF_ID: 3135658875;
    className: 'TodoCompletion';

    static fromReader(reader: Reader): TodoCompletion;
  }
  export class SuggestedPost extends VirtualClass<{
    // flags: Api.Type;
    accepted?: true;
    rejected?: true;
    price?: Api.TypeStarsAmount;
    scheduleDate?: int;
  } | void> {
    // flags: Api.Type;
    accepted?: true;
    rejected?: true;
    price?: Api.TypeStarsAmount;
    scheduleDate?: int;
    CONSTRUCTOR_ID: 244201445;
    SUBCLASS_OF_ID: 2389869056;
    className: 'SuggestedPost';

    static fromReader(reader: Reader): SuggestedPost;
  }
  export class StarsRating extends VirtualClass<{
    // flags: Api.Type;
    level: int;
    currentLevelStars: long;
    stars: long;
    nextLevelStars?: long;
  }> {
    // flags: Api.Type;
    level: int;
    currentLevelStars: long;
    stars: long;
    nextLevelStars?: long;
    CONSTRUCTOR_ID: 453922567;
    SUBCLASS_OF_ID: 1668506656;
    className: 'StarsRating';

    static fromReader(reader: Reader): StarsRating;
  }
  export class StarGiftCollection extends VirtualClass<{
    // flags: Api.Type;
    collectionId: int;
    title: string;
    icon?: Api.TypeDocument;
    giftsCount: int;
    hash: long;
  }> {
    // flags: Api.Type;
    collectionId: int;
    title: string;
    icon?: Api.TypeDocument;
    giftsCount: int;
    hash: long;
    CONSTRUCTOR_ID: 2641040304;
    SUBCLASS_OF_ID: 1138805578;
    className: 'StarGiftCollection';

    static fromReader(reader: Reader): StarGiftCollection;
  }
  export class StoryAlbum extends VirtualClass<{
    // flags: Api.Type;
    albumId: int;
    title: string;
    iconPhoto?: Api.TypePhoto;
    iconVideo?: Api.TypeDocument;
  }> {
    // flags: Api.Type;
    albumId: int;
    title: string;
    iconPhoto?: Api.TypePhoto;
    iconVideo?: Api.TypeDocument;
    CONSTRUCTOR_ID: 2468704346;
    SUBCLASS_OF_ID: 2089574050;
    className: 'StoryAlbum';

    static fromReader(reader: Reader): StoryAlbum;
  }
  export class SearchPostsFlood extends VirtualClass<{
    // flags: Api.Type;
    queryIsFree?: true;
    totalDaily: int;
    remains: int;
    waitTill?: int;
    starsAmount: long;
  }> {
    // flags: Api.Type;
    queryIsFree?: true;
    totalDaily: int;
    remains: int;
    waitTill?: int;
    starsAmount: long;
    CONSTRUCTOR_ID: 1040931690;
    SUBCLASS_OF_ID: 3267415233;
    className: 'SearchPostsFlood';

    static fromReader(reader: Reader): SearchPostsFlood;
  }
  export class ProfileTabPosts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3113014934;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabPosts';

    static fromReader(reader: Reader): ProfileTabPosts;
  }
  export class ProfileTabGifts extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1296815210;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabGifts';

    static fromReader(reader: Reader): ProfileTabGifts;
  }
  export class ProfileTabMedia extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1925597525;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabMedia';

    static fromReader(reader: Reader): ProfileTabMedia;
  }
  export class ProfileTabFiles extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2872286208;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabFiles';

    static fromReader(reader: Reader): ProfileTabFiles;
  }
  export class ProfileTabMusic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2670187118;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabMusic';

    static fromReader(reader: Reader): ProfileTabMusic;
  }
  export class ProfileTabVoice extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3833006382;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabVoice';

    static fromReader(reader: Reader): ProfileTabVoice;
  }
  export class ProfileTabLinks extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3546637465;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabLinks';

    static fromReader(reader: Reader): ProfileTabLinks;
  }
  export class ProfileTabGifs extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2730555029;
    SUBCLASS_OF_ID: 2924007860;
    className: 'ProfileTabGifs';

    static fromReader(reader: Reader): ProfileTabGifs;
  }
  export class InputChatThemeEmpty extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2200339587;
    SUBCLASS_OF_ID: 1462324836;
    className: 'InputChatThemeEmpty';

    static fromReader(reader: Reader): InputChatThemeEmpty;
  }
  export class InputChatTheme extends VirtualClass<{
    emoticon: string;
  }> {
    emoticon: string;
    CONSTRUCTOR_ID: 3376277852;
    SUBCLASS_OF_ID: 1462324836;
    className: 'InputChatTheme';

    static fromReader(reader: Reader): InputChatTheme;
  }
  export class InputChatThemeUniqueGift extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 2279989220;
    SUBCLASS_OF_ID: 1462324836;
    className: 'InputChatThemeUniqueGift';

    static fromReader(reader: Reader): InputChatThemeUniqueGift;
  }
  export class StarGiftUpgradePrice extends VirtualClass<{
    date: int;
    upgradeStars: long;
  }> {
    date: int;
    upgradeStars: long;
    CONSTRUCTOR_ID: 2582262557;
    SUBCLASS_OF_ID: 4099078244;
    className: 'StarGiftUpgradePrice';

    static fromReader(reader: Reader): StarGiftUpgradePrice;
  }
  export class GroupCallMessage extends VirtualClass<{
    // flags: Api.Type;
    fromAdmin?: true;
    id: int;
    fromId: Api.TypePeer;
    date: int;
    message: Api.TypeTextWithEntities;
    paidMessageStars?: long;
  }> {
    // flags: Api.Type;
    fromAdmin?: true;
    id: int;
    fromId: Api.TypePeer;
    date: int;
    message: Api.TypeTextWithEntities;
    paidMessageStars?: long;
    CONSTRUCTOR_ID: 445316222;
    SUBCLASS_OF_ID: 1624136226;
    className: 'GroupCallMessage';

    static fromReader(reader: Reader): GroupCallMessage;
  }
  export class GroupCallDonor extends VirtualClass<{
    // flags: Api.Type;
    top?: true;
    my?: true;
    peerId?: Api.TypePeer;
    stars: long;
  }> {
    // flags: Api.Type;
    top?: true;
    my?: true;
    peerId?: Api.TypePeer;
    stars: long;
    CONSTRUCTOR_ID: 3997371525;
    SUBCLASS_OF_ID: 351439792;
    className: 'GroupCallDonor';

    static fromReader(reader: Reader): GroupCallDonor;
  }
  export class RecentStory extends VirtualClass<{
    // flags: Api.Type;
    live?: true;
    maxId?: int;
  } | void> {
    // flags: Api.Type;
    live?: true;
    maxId?: int;
    CONSTRUCTOR_ID: 1897752877;
    SUBCLASS_OF_ID: 653372877;
    className: 'RecentStory';

    static fromReader(reader: Reader): RecentStory;
  }
  export class AuctionBidLevel extends VirtualClass<{
    pos: int;
    amount: long;
    date: int;
  }> {
    pos: int;
    amount: long;
    date: int;
    CONSTRUCTOR_ID: 822231244;
    SUBCLASS_OF_ID: 3125037783;
    className: 'AuctionBidLevel';

    static fromReader(reader: Reader): AuctionBidLevel;
  }
  export class StarGiftAuctionStateNotModified extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4264769874;
    SUBCLASS_OF_ID: 580130043;
    className: 'StarGiftAuctionStateNotModified';

    static fromReader(reader: Reader): StarGiftAuctionStateNotModified;
  }
  export class StarGiftAuctionState extends VirtualClass<{
    version: int;
    startDate: int;
    endDate: int;
    minBidAmount: long;
    bidLevels: Api.TypeAuctionBidLevel[];
    topBidders: long[];
    nextRoundAt: int;
    lastGiftNum: int;
    giftsLeft: int;
    currentRound: int;
    totalRounds: int;
    rounds: Api.TypeStarGiftAuctionRound[];
  }> {
    version: int;
    startDate: int;
    endDate: int;
    minBidAmount: long;
    bidLevels: Api.TypeAuctionBidLevel[];
    topBidders: long[];
    nextRoundAt: int;
    lastGiftNum: int;
    giftsLeft: int;
    currentRound: int;
    totalRounds: int;
    rounds: Api.TypeStarGiftAuctionRound[];
    CONSTRUCTOR_ID: 1998212710;
    SUBCLASS_OF_ID: 580130043;
    className: 'StarGiftAuctionState';

    static fromReader(reader: Reader): StarGiftAuctionState;
  }
  export class StarGiftAuctionStateFinished extends VirtualClass<{
    // flags: Api.Type;
    startDate: int;
    endDate: int;
    averagePrice: long;
    listedCount?: int;
    fragmentListedCount?: int;
    fragmentListedUrl?: string;
  }> {
    // flags: Api.Type;
    startDate: int;
    endDate: int;
    averagePrice: long;
    listedCount?: int;
    fragmentListedCount?: int;
    fragmentListedUrl?: string;
    CONSTRUCTOR_ID: 2536352703;
    SUBCLASS_OF_ID: 580130043;
    className: 'StarGiftAuctionStateFinished';

    static fromReader(reader: Reader): StarGiftAuctionStateFinished;
  }
  export class StarGiftAuctionUserState extends VirtualClass<{
    // flags: Api.Type;
    returned?: true;
    bidAmount?: long;
    bidDate?: int;
    minBidAmount?: long;
    bidPeer?: Api.TypePeer;
    acquiredCount: int;
  }> {
    // flags: Api.Type;
    returned?: true;
    bidAmount?: long;
    bidDate?: int;
    minBidAmount?: long;
    bidPeer?: Api.TypePeer;
    acquiredCount: int;
    CONSTRUCTOR_ID: 787403204;
    SUBCLASS_OF_ID: 86642350;
    className: 'StarGiftAuctionUserState';

    static fromReader(reader: Reader): StarGiftAuctionUserState;
  }
  export class StarGiftAuctionAcquiredGift extends VirtualClass<{
    // flags: Api.Type;
    nameHidden?: true;
    peer: Api.TypePeer;
    date: int;
    bidAmount: long;
    round: int;
    pos: int;
    message?: Api.TypeTextWithEntities;
    giftNum?: int;
  }> {
    // flags: Api.Type;
    nameHidden?: true;
    peer: Api.TypePeer;
    date: int;
    bidAmount: long;
    round: int;
    pos: int;
    message?: Api.TypeTextWithEntities;
    giftNum?: int;
    CONSTRUCTOR_ID: 1118831432;
    SUBCLASS_OF_ID: 655184435;
    className: 'StarGiftAuctionAcquiredGift';

    static fromReader(reader: Reader): StarGiftAuctionAcquiredGift;
  }
  export class StarGiftActiveAuctionState extends VirtualClass<{
    gift: Api.TypeStarGift;
    state: Api.TypeStarGiftAuctionState;
    userState: Api.TypeStarGiftAuctionUserState;
  }> {
    gift: Api.TypeStarGift;
    state: Api.TypeStarGiftAuctionState;
    userState: Api.TypeStarGiftAuctionUserState;
    CONSTRUCTOR_ID: 3541812317;
    SUBCLASS_OF_ID: 3109811689;
    className: 'StarGiftActiveAuctionState';

    static fromReader(reader: Reader): StarGiftActiveAuctionState;
  }
  export class InputStarGiftAuction extends VirtualClass<{
    giftId: long;
  }> {
    giftId: long;
    CONSTRUCTOR_ID: 48327832;
    SUBCLASS_OF_ID: 1101130410;
    className: 'InputStarGiftAuction';

    static fromReader(reader: Reader): InputStarGiftAuction;
  }
  export class InputStarGiftAuctionSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 2058715912;
    SUBCLASS_OF_ID: 1101130410;
    className: 'InputStarGiftAuctionSlug';

    static fromReader(reader: Reader): InputStarGiftAuctionSlug;
  }
  export class Passkey extends VirtualClass<{
    // flags: Api.Type;
    id: string;
    name: string;
    date: int;
    softwareEmojiId?: long;
    lastUsageDate?: int;
  }> {
    // flags: Api.Type;
    id: string;
    name: string;
    date: int;
    softwareEmojiId?: long;
    lastUsageDate?: int;
    CONSTRUCTOR_ID: 2556509887;
    SUBCLASS_OF_ID: 3476557280;
    className: 'Passkey';

    static fromReader(reader: Reader): Passkey;
  }
  export class InputPasskeyResponseRegister extends VirtualClass<{
    clientData: Api.TypeDataJSON;
    attestationData: bytes;
  }> {
    clientData: Api.TypeDataJSON;
    attestationData: bytes;
    CONSTRUCTOR_ID: 1046713180;
    SUBCLASS_OF_ID: 519096269;
    className: 'InputPasskeyResponseRegister';

    static fromReader(reader: Reader): InputPasskeyResponseRegister;
  }
  export class InputPasskeyResponseLogin extends VirtualClass<{
    clientData: Api.TypeDataJSON;
    authenticatorData: bytes;
    signature: bytes;
    userHandle: string;
  }> {
    clientData: Api.TypeDataJSON;
    authenticatorData: bytes;
    signature: bytes;
    userHandle: string;
    CONSTRUCTOR_ID: 3273638218;
    SUBCLASS_OF_ID: 519096269;
    className: 'InputPasskeyResponseLogin';

    static fromReader(reader: Reader): InputPasskeyResponseLogin;
  }
  export class InputPasskeyCredentialPublicKey extends VirtualClass<{
    id: string;
    rawId: string;
    response: Api.TypeInputPasskeyResponse;
  }> {
    id: string;
    rawId: string;
    response: Api.TypeInputPasskeyResponse;
    CONSTRUCTOR_ID: 1009235855;
    SUBCLASS_OF_ID: 514925102;
    className: 'InputPasskeyCredentialPublicKey';

    static fromReader(reader: Reader): InputPasskeyCredentialPublicKey;
  }
  export class InputPasskeyCredentialFirebasePNV extends VirtualClass<{
    pnvToken: string;
  }> {
    pnvToken: string;
    CONSTRUCTOR_ID: 1528613672;
    SUBCLASS_OF_ID: 514925102;
    className: 'InputPasskeyCredentialFirebasePNV';

    static fromReader(reader: Reader): InputPasskeyCredentialFirebasePNV;
  }
  export class StarGiftBackground extends VirtualClass<{
    centerColor: int;
    edgeColor: int;
    textColor: int;
  }> {
    centerColor: int;
    edgeColor: int;
    textColor: int;
    CONSTRUCTOR_ID: 2952094616;
    SUBCLASS_OF_ID: 63248936;
    className: 'StarGiftBackground';

    static fromReader(reader: Reader): StarGiftBackground;
  }
  export class StarGiftAuctionRound extends VirtualClass<{
    num: int;
    duration: int;
  }> {
    num: int;
    duration: int;
    CONSTRUCTOR_ID: 984483112;
    SUBCLASS_OF_ID: 1156131892;
    className: 'StarGiftAuctionRound';

    static fromReader(reader: Reader): StarGiftAuctionRound;
  }
  export class StarGiftAuctionRoundExtendable extends VirtualClass<{
    num: int;
    duration: int;
    extendTop: int;
    extendWindow: int;
  }> {
    num: int;
    duration: int;
    extendTop: int;
    extendWindow: int;
    CONSTRUCTOR_ID: 178266597;
    SUBCLASS_OF_ID: 1156131892;
    className: 'StarGiftAuctionRoundExtendable';

    static fromReader(reader: Reader): StarGiftAuctionRoundExtendable;
  }
  export class StarGiftAttributeRarity extends VirtualClass<{
    permille: int;
  }> {
    permille: int;
    CONSTRUCTOR_ID: 910391095;
    SUBCLASS_OF_ID: 260508966;
    className: 'StarGiftAttributeRarity';

    static fromReader(reader: Reader): StarGiftAttributeRarity;
  }
  export class StarGiftAttributeRarityUncommon extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3687736201;
    SUBCLASS_OF_ID: 260508966;
    className: 'StarGiftAttributeRarityUncommon';

    static fromReader(reader: Reader): StarGiftAttributeRarityUncommon;
  }
  export class StarGiftAttributeRarityRare extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4035793259;
    SUBCLASS_OF_ID: 260508966;
    className: 'StarGiftAttributeRarityRare';

    static fromReader(reader: Reader): StarGiftAttributeRarityRare;
  }
  export class StarGiftAttributeRarityEpic extends VirtualClass<void> {
    CONSTRUCTOR_ID: 2029777832;
    SUBCLASS_OF_ID: 260508966;
    className: 'StarGiftAttributeRarityEpic';

    static fromReader(reader: Reader): StarGiftAttributeRarityEpic;
  }
  export class StarGiftAttributeRarityLegendary extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3472353192;
    SUBCLASS_OF_ID: 260508966;
    className: 'StarGiftAttributeRarityLegendary';

    static fromReader(reader: Reader): StarGiftAttributeRarityLegendary;
  }
  export class KeyboardButtonStyle extends VirtualClass<{
    // flags: Api.Type;
    bgPrimary?: true;
    bgDanger?: true;
    bgSuccess?: true;
    icon?: long;
  } | void> {
    // flags: Api.Type;
    bgPrimary?: true;
    bgDanger?: true;
    bgSuccess?: true;
    icon?: long;
    CONSTRUCTOR_ID: 1339896880;
    SUBCLASS_OF_ID: 334647835;
    className: 'KeyboardButtonStyle';

    static fromReader(reader: Reader): KeyboardButtonStyle;
  }
  export class InputMessageReadMetric extends VirtualClass<{
    msgId: int;
    viewId: long;
    timeInViewMs: int;
    activeTimeInViewMs: int;
    heightToViewportRatioPermille: int;
    seenRangeRatioPermille: int;
  }> {
    msgId: int;
    viewId: long;
    timeInViewMs: int;
    activeTimeInViewMs: int;
    heightToViewportRatioPermille: int;
    seenRangeRatioPermille: int;
    CONSTRUCTOR_ID: 1076577429;
    SUBCLASS_OF_ID: 3982122149;
    className: 'InputMessageReadMetric';

    static fromReader(reader: Reader): InputMessageReadMetric;
  }
  export class InputAiComposeToneDefault extends VirtualClass<{
    tone: string;
  }> {
    tone: string;
    CONSTRUCTOR_ID: 535407039;
    SUBCLASS_OF_ID: 3576190647;
    className: 'InputAiComposeToneDefault';

    static fromReader(reader: Reader): InputAiComposeToneDefault;
  }
  export class InputAiComposeToneID extends VirtualClass<{
    id: long;
    accessHash: long;
  }> {
    id: long;
    accessHash: long;
    CONSTRUCTOR_ID: 125026432;
    SUBCLASS_OF_ID: 3576190647;
    className: 'InputAiComposeToneID';

    static fromReader(reader: Reader): InputAiComposeToneID;
  }
  export class InputAiComposeToneSlug extends VirtualClass<{
    slug: string;
  }> {
    slug: string;
    CONSTRUCTOR_ID: 530584407;
    SUBCLASS_OF_ID: 3576190647;
    className: 'InputAiComposeToneSlug';

    static fromReader(reader: Reader): InputAiComposeToneSlug;
  }
  export class AiComposeTone extends VirtualClass<{
    // flags: Api.Type;
    creator?: true;
    id: long;
    accessHash: long;
    slug: string;
    title: string;
    emojiId?: long;
    prompt?: string;
    installsCount?: int;
    authorId?: long;
    exampleEnglish?: Api.TypeAiComposeToneExample;
  }> {
    // flags: Api.Type;
    creator?: true;
    id: long;
    accessHash: long;
    slug: string;
    title: string;
    emojiId?: long;
    prompt?: string;
    installsCount?: int;
    authorId?: long;
    exampleEnglish?: Api.TypeAiComposeToneExample;
    CONSTRUCTOR_ID: 3489021609;
    SUBCLASS_OF_ID: 3564565261;
    className: 'AiComposeTone';

    static fromReader(reader: Reader): AiComposeTone;
  }
  export class AiComposeToneDefault extends VirtualClass<{
    tone: string;
    emojiId: long;
    title: string;
  }> {
    tone: string;
    emojiId: long;
    title: string;
    CONSTRUCTOR_ID: 2611831828;
    SUBCLASS_OF_ID: 3564565261;
    className: 'AiComposeToneDefault';

    static fromReader(reader: Reader): AiComposeToneDefault;
  }
  export class AiComposeToneExample extends VirtualClass<{
    from: Api.TypeTextWithEntities;
    to: Api.TypeTextWithEntities;
  }> {
    from: Api.TypeTextWithEntities;
    to: Api.TypeTextWithEntities;
    CONSTRUCTOR_ID: 4057344236;
    SUBCLASS_OF_ID: 2351207381;
    className: 'AiComposeToneExample';

    static fromReader(reader: Reader): AiComposeToneExample;
  }
  export class ResPQ extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    pq: bytes;
    serverPublicKeyFingerprints: long[];
  }> {
    nonce: int128;
    serverNonce: int128;
    pq: bytes;
    serverPublicKeyFingerprints: long[];
    CONSTRUCTOR_ID: 85337187;
    SUBCLASS_OF_ID: 2020181688;
    className: 'ResPQ';

    static fromReader(reader: Reader): ResPQ;
  }
  export class PQInnerData extends VirtualClass<{
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
  }> {
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    CONSTRUCTOR_ID: 2211011308;
    SUBCLASS_OF_ID: 1097864055;
    className: 'PQInnerData';

    static fromReader(reader: Reader): PQInnerData;
  }
  export class PQInnerDataDc extends VirtualClass<{
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    dc: int;
  }> {
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    dc: int;
    CONSTRUCTOR_ID: 2851430293;
    SUBCLASS_OF_ID: 1097864055;
    className: 'PQInnerDataDc';

    static fromReader(reader: Reader): PQInnerDataDc;
  }
  export class PQInnerDataTemp extends VirtualClass<{
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    expiresIn: int;
  }> {
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    expiresIn: int;
    CONSTRUCTOR_ID: 1013613780;
    SUBCLASS_OF_ID: 1097864055;
    className: 'PQInnerDataTemp';

    static fromReader(reader: Reader): PQInnerDataTemp;
  }
  export class PQInnerDataTempDc extends VirtualClass<{
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    dc: int;
    expiresIn: int;
  }> {
    pq: bytes;
    p: bytes;
    q: bytes;
    nonce: int128;
    serverNonce: int128;
    newNonce: int256;
    dc: int;
    expiresIn: int;
    CONSTRUCTOR_ID: 1459478408;
    SUBCLASS_OF_ID: 1097864055;
    className: 'PQInnerDataTempDc';

    static fromReader(reader: Reader): PQInnerDataTempDc;
  }
  export class ServerDHParamsFail extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    newNonceHash: int128;
  }> {
    nonce: int128;
    serverNonce: int128;
    newNonceHash: int128;
    CONSTRUCTOR_ID: 2043348061;
    SUBCLASS_OF_ID: 2786626974;
    className: 'ServerDHParamsFail';

    static fromReader(reader: Reader): ServerDHParamsFail;
  }
  export class ServerDHParamsOk extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    encryptedAnswer: bytes;
  }> {
    nonce: int128;
    serverNonce: int128;
    encryptedAnswer: bytes;
    CONSTRUCTOR_ID: 3504867164;
    SUBCLASS_OF_ID: 2786626974;
    className: 'ServerDHParamsOk';

    static fromReader(reader: Reader): ServerDHParamsOk;
  }
  export class ServerDHInnerData extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    g: int;
    dhPrime: bytes;
    gA: bytes;
    serverTime: int;
  }> {
    nonce: int128;
    serverNonce: int128;
    g: int;
    dhPrime: bytes;
    gA: bytes;
    serverTime: int;
    CONSTRUCTOR_ID: 3045658042;
    SUBCLASS_OF_ID: 3332007868;
    className: 'ServerDHInnerData';

    static fromReader(reader: Reader): ServerDHInnerData;
  }
  export class ClientDHInnerData extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    retryId: long;
    gB: bytes;
  }> {
    nonce: int128;
    serverNonce: int128;
    retryId: long;
    gB: bytes;
    CONSTRUCTOR_ID: 1715713620;
    SUBCLASS_OF_ID: 4176408426;
    className: 'ClientDHInnerData';

    static fromReader(reader: Reader): ClientDHInnerData;
  }
  export class DhGenOk extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    newNonceHash1: int128;
  }> {
    nonce: int128;
    serverNonce: int128;
    newNonceHash1: int128;
    CONSTRUCTOR_ID: 1003222836;
    SUBCLASS_OF_ID: 1440574683;
    className: 'DhGenOk';

    static fromReader(reader: Reader): DhGenOk;
  }
  export class DhGenRetry extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    newNonceHash2: int128;
  }> {
    nonce: int128;
    serverNonce: int128;
    newNonceHash2: int128;
    CONSTRUCTOR_ID: 1188831161;
    SUBCLASS_OF_ID: 1440574683;
    className: 'DhGenRetry';

    static fromReader(reader: Reader): DhGenRetry;
  }
  export class DhGenFail extends VirtualClass<{
    nonce: int128;
    serverNonce: int128;
    newNonceHash3: int128;
  }> {
    nonce: int128;
    serverNonce: int128;
    newNonceHash3: int128;
    CONSTRUCTOR_ID: 2795351554;
    SUBCLASS_OF_ID: 1440574683;
    className: 'DhGenFail';

    static fromReader(reader: Reader): DhGenFail;
  }
  export class DestroyAuthKeyOk extends VirtualClass<void> {
    CONSTRUCTOR_ID: 4133544404;
    SUBCLASS_OF_ID: 2190599822;
    className: 'DestroyAuthKeyOk';

    static fromReader(reader: Reader): DestroyAuthKeyOk;
  }
  export class DestroyAuthKeyNone extends VirtualClass<void> {
    CONSTRUCTOR_ID: 178201177;
    SUBCLASS_OF_ID: 2190599822;
    className: 'DestroyAuthKeyNone';

    static fromReader(reader: Reader): DestroyAuthKeyNone;
  }
  export class DestroyAuthKeyFail extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3926956819;
    SUBCLASS_OF_ID: 2190599822;
    className: 'DestroyAuthKeyFail';

    static fromReader(reader: Reader): DestroyAuthKeyFail;
  }
  export class MsgsAck extends VirtualClass<{
    msgIds: long[];
  }> {
    msgIds: long[];
    CONSTRUCTOR_ID: 1658238041;
    SUBCLASS_OF_ID: 2188801988;
    className: 'MsgsAck';

    static fromReader(reader: Reader): MsgsAck;
  }
  export class BadMsgNotification extends VirtualClass<{
    badMsgId: long;
    badMsgSeqno: int;
    errorCode: int;
  }> {
    badMsgId: long;
    badMsgSeqno: int;
    errorCode: int;
    CONSTRUCTOR_ID: 2817521681;
    SUBCLASS_OF_ID: 3468337495;
    className: 'BadMsgNotification';

    static fromReader(reader: Reader): BadMsgNotification;
  }
  export class BadServerSalt extends VirtualClass<{
    badMsgId: long;
    badMsgSeqno: int;
    errorCode: int;
    newServerSalt: long;
  }> {
    badMsgId: long;
    badMsgSeqno: int;
    errorCode: int;
    newServerSalt: long;
    CONSTRUCTOR_ID: 3987424379;
    SUBCLASS_OF_ID: 3468337495;
    className: 'BadServerSalt';

    static fromReader(reader: Reader): BadServerSalt;
  }
  export class MsgsStateReq extends VirtualClass<{
    msgIds: long[];
  }> {
    msgIds: long[];
    CONSTRUCTOR_ID: 3664378706;
    SUBCLASS_OF_ID: 418389456;
    className: 'MsgsStateReq';

    static fromReader(reader: Reader): MsgsStateReq;
  }
  export class MsgsStateInfo extends VirtualClass<{
    reqMsgId: long;
    info: string;
  }> {
    reqMsgId: long;
    info: string;
    CONSTRUCTOR_ID: 81704317;
    SUBCLASS_OF_ID: 118098532;
    className: 'MsgsStateInfo';

    static fromReader(reader: Reader): MsgsStateInfo;
  }
  export class MsgsAllInfo extends VirtualClass<{
    msgIds: long[];
    info: string;
  }> {
    msgIds: long[];
    info: string;
    CONSTRUCTOR_ID: 2361446705;
    SUBCLASS_OF_ID: 4203727700;
    className: 'MsgsAllInfo';

    static fromReader(reader: Reader): MsgsAllInfo;
  }
  export class MsgDetailedInfo extends VirtualClass<{
    msgId: long;
    answerMsgId: long;
    bytes: int;
    status: int;
  }> {
    msgId: long;
    answerMsgId: long;
    bytes: int;
    status: int;
    CONSTRUCTOR_ID: 661470918;
    SUBCLASS_OF_ID: 1597167086;
    className: 'MsgDetailedInfo';

    static fromReader(reader: Reader): MsgDetailedInfo;
  }
  export class MsgNewDetailedInfo extends VirtualClass<{
    answerMsgId: long;
    bytes: int;
    status: int;
  }> {
    answerMsgId: long;
    bytes: int;
    status: int;
    CONSTRUCTOR_ID: 2157819615;
    SUBCLASS_OF_ID: 1597167086;
    className: 'MsgNewDetailedInfo';

    static fromReader(reader: Reader): MsgNewDetailedInfo;
  }
  export class MsgResendReq extends VirtualClass<{
    msgIds: long[];
  }> {
    msgIds: long[];
    CONSTRUCTOR_ID: 2105940488;
    SUBCLASS_OF_ID: 33703188;
    className: 'MsgResendReq';

    static fromReader(reader: Reader): MsgResendReq;
  }
  export class RpcError extends VirtualClass<{
    errorCode: int;
    errorMessage: string;
  }> {
    errorCode: int;
    errorMessage: string;
    CONSTRUCTOR_ID: 558156313;
    SUBCLASS_OF_ID: 1243079269;
    className: 'RpcError';

    static fromReader(reader: Reader): RpcError;
  }
  export class RpcAnswerUnknown extends VirtualClass<void> {
    CONSTRUCTOR_ID: 1579864942;
    SUBCLASS_OF_ID: 1271559536;
    className: 'RpcAnswerUnknown';

    static fromReader(reader: Reader): RpcAnswerUnknown;
  }
  export class RpcAnswerDroppedRunning extends VirtualClass<void> {
    CONSTRUCTOR_ID: 3447252358;
    SUBCLASS_OF_ID: 1271559536;
    className: 'RpcAnswerDroppedRunning';

    static fromReader(reader: Reader): RpcAnswerDroppedRunning;
  }
  export class RpcAnswerDropped extends VirtualClass<{
    msgId: long;
    seqNo: int;
    bytes: int;
  }> {
    msgId: long;
    seqNo: int;
    bytes: int;
    CONSTRUCTOR_ID: 2755319991;
    SUBCLASS_OF_ID: 1271559536;
    className: 'RpcAnswerDropped';

    static fromReader(reader: Reader): RpcAnswerDropped;
  }
  export class FutureSalt extends VirtualClass<{
    validSince: int;
    validUntil: int;
    salt: long;
  }> {
    validSince: int;
    validUntil: int;
    salt: long;
    CONSTRUCTOR_ID: 155834844;
    SUBCLASS_OF_ID: 1172651471;
    className: 'FutureSalt';

    static fromReader(reader: Reader): FutureSalt;
  }
  export class FutureSalts extends VirtualClass<{
    reqMsgId: long;
    now: int;
    salts: Api.TypeFutureSalt[];
  }> {
    reqMsgId: long;
    now: int;
    salts: Api.TypeFutureSalt[];
    CONSTRUCTOR_ID: 2924480661;
    SUBCLASS_OF_ID: 277935383;
    className: 'FutureSalts';

    static fromReader(reader: Reader): FutureSalts;
  }
  export class Pong extends VirtualClass<{
    msgId: long;
    pingId: long;
  }> {
    msgId: long;
    pingId: long;
    CONSTRUCTOR_ID: 880243653;
    SUBCLASS_OF_ID: 2171268721;
    className: 'Pong';

    static fromReader(reader: Reader): Pong;
  }
  export class DestroySessionOk extends VirtualClass<{
    sessionId: long;
  }> {
    sessionId: long;
    CONSTRUCTOR_ID: 3793765884;
    SUBCLASS_OF_ID: 2936858557;
    className: 'DestroySessionOk';

    static fromReader(reader: Reader): DestroySessionOk;
  }
  export class DestroySessionNone extends VirtualClass<{
    sessionId: long;
  }> {
    sessionId: long;
    CONSTRUCTOR_ID: 1658015945;
    SUBCLASS_OF_ID: 2936858557;
    className: 'DestroySessionNone';

    static fromReader(reader: Reader): DestroySessionNone;
  }
  export class NewSessionCreated extends VirtualClass<{
    firstMsgId: long;
    uniqueId: long;
    serverSalt: long;
  }> {
    firstMsgId: long;
    uniqueId: long;
    serverSalt: long;
    CONSTRUCTOR_ID: 2663516424;
    SUBCLASS_OF_ID: 1359818801;
    className: 'NewSessionCreated';

    static fromReader(reader: Reader): NewSessionCreated;
  }
  export class HttpWait extends VirtualClass<{
    maxDelay: int;
    waitAfter: int;
    maxWait: int;
  }> {
    maxDelay: int;
    waitAfter: int;
    maxWait: int;
    CONSTRUCTOR_ID: 2459514271;
    SUBCLASS_OF_ID: 310685398;
    className: 'HttpWait';

    static fromReader(reader: Reader): HttpWait;
  }
  export class IpPort extends VirtualClass<{
    ipv4: int;
    port: int;
  }> {
    ipv4: int;
    port: int;
    CONSTRUCTOR_ID: 3560156531;
    SUBCLASS_OF_ID: 2728408870;
    className: 'IpPort';

    static fromReader(reader: Reader): IpPort;
  }
  export class IpPortSecret extends VirtualClass<{
    ipv4: int;
    port: int;
    secret: bytes;
  }> {
    ipv4: int;
    port: int;
    secret: bytes;
    CONSTRUCTOR_ID: 932718150;
    SUBCLASS_OF_ID: 2728408870;
    className: 'IpPortSecret';

    static fromReader(reader: Reader): IpPortSecret;
  }
  export class AccessPointRule extends VirtualClass<{
    phonePrefixRules: string;
    dcId: int;
    ips: Api.TypeIpPort[];
  }> {
    phonePrefixRules: string;
    dcId: int;
    ips: Api.TypeIpPort[];
    CONSTRUCTOR_ID: 1182381663;
    SUBCLASS_OF_ID: 2980880637;
    className: 'AccessPointRule';

    static fromReader(reader: Reader): AccessPointRule;
  }
  export class TlsClientHello extends VirtualClass<{
    blocks: Api.TypeTlsBlock[];
  }> {
    blocks: Api.TypeTlsBlock[];
    CONSTRUCTOR_ID: 262524817;
    SUBCLASS_OF_ID: 3203533088;
    className: 'TlsClientHello';

    static fromReader(reader: Reader): TlsClientHello;
  }
  export class TlsBlockString extends VirtualClass<{
    data: string;
  }> {
    data: string;
    CONSTRUCTOR_ID: 1488907607;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockString';

    static fromReader(reader: Reader): TlsBlockString;
  }
  export class TlsBlockRandom extends VirtualClass<{
    length: int;
  }> {
    length: int;
    CONSTRUCTOR_ID: 3265966728;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockRandom';

    static fromReader(reader: Reader): TlsBlockRandom;
  }
  export class TlsBlockZero extends VirtualClass<{
    length: int;
  }> {
    length: int;
    CONSTRUCTOR_ID: 3400654219;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockZero';

    static fromReader(reader: Reader): TlsBlockZero;
  }
  export class TlsBlockDomain extends VirtualClass<void> {
    CONSTRUCTOR_ID: 283665263;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockDomain';

    static fromReader(reader: Reader): TlsBlockDomain;
  }
  export class TlsBlockGrease extends VirtualClass<{
    seed: int;
  }> {
    seed: int;
    CONSTRUCTOR_ID: 2623335513;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockGrease';

    static fromReader(reader: Reader): TlsBlockGrease;
  }
  export class TlsBlockScope extends VirtualClass<{
    entries: Api.TypeTlsBlock[];
  }> {
    entries: Api.TypeTlsBlock[];
    CONSTRUCTOR_ID: 3638474097;
    SUBCLASS_OF_ID: 4044764304;
    className: 'TlsBlockScope';

    static fromReader(reader: Reader): TlsBlockScope;
  }
  

  export namespace storage {
    export class FileUnknown extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2861972229;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileUnknown';

      static fromReader(reader: Reader): FileUnknown;
    }
    export class FilePartial extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1086091090;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FilePartial';

      static fromReader(reader: Reader): FilePartial;
    }
    export class FileJpeg extends VirtualClass<void> {
      CONSTRUCTOR_ID: 8322574;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileJpeg';

      static fromReader(reader: Reader): FileJpeg;
    }
    export class FileGif extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3403786975;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileGif';

      static fromReader(reader: Reader): FileGif;
    }
    export class FilePng extends VirtualClass<void> {
      CONSTRUCTOR_ID: 172975040;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FilePng';

      static fromReader(reader: Reader): FilePng;
    }
    export class FilePdf extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2921222285;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FilePdf';

      static fromReader(reader: Reader): FilePdf;
    }
    export class FileMp3 extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1384777335;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileMp3';

      static fromReader(reader: Reader): FileMp3;
    }
    export class FileMov extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1258941372;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileMov';

      static fromReader(reader: Reader): FileMov;
    }
    export class FileMp4 extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3016663268;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileMp4';

      static fromReader(reader: Reader): FileMp4;
    }
    export class FileWebp extends VirtualClass<void> {
      CONSTRUCTOR_ID: 276907596;
      SUBCLASS_OF_ID: 4087473907;
      className: 'FileWebp';

      static fromReader(reader: Reader): FileWebp;
    }
  }

  export namespace auth {
    export class SentCode extends VirtualClass<{
      // flags: Api.Type;
      type: auth.TypeSentCodeType;
      phoneCodeHash: string;
      nextType?: auth.TypeCodeType;
      timeout?: int;
    }> {
      // flags: Api.Type;
      type: auth.TypeSentCodeType;
      phoneCodeHash: string;
      nextType?: auth.TypeCodeType;
      timeout?: int;
      CONSTRUCTOR_ID: 1577067778;
      SUBCLASS_OF_ID: 1827172481;
      className: 'SentCode';

      static fromReader(reader: Reader): SentCode;
    }
    export class SentCodeSuccess extends VirtualClass<{
      authorization: auth.TypeAuthorization;
    }> {
      authorization: auth.TypeAuthorization;
      CONSTRUCTOR_ID: 596704836;
      SUBCLASS_OF_ID: 1827172481;
      className: 'SentCodeSuccess';

      static fromReader(reader: Reader): SentCodeSuccess;
    }
    export class SentCodePaymentRequired extends VirtualClass<{
      storeProduct: string;
      phoneCodeHash: string;
      supportEmailAddress: string;
      supportEmailSubject: string;
      premiumDays: int;
      currency: string;
      amount: long;
    }> {
      storeProduct: string;
      phoneCodeHash: string;
      supportEmailAddress: string;
      supportEmailSubject: string;
      premiumDays: int;
      currency: string;
      amount: long;
      CONSTRUCTOR_ID: 4169301695;
      SUBCLASS_OF_ID: 1827172481;
      className: 'SentCodePaymentRequired';

      static fromReader(reader: Reader): SentCodePaymentRequired;
    }
    export class Authorization extends VirtualClass<{
      // flags: Api.Type;
      setupPasswordRequired?: true;
      otherwiseReloginDays?: int;
      tmpSessions?: int;
      futureAuthToken?: bytes;
      user: Api.TypeUser;
    }> {
      // flags: Api.Type;
      setupPasswordRequired?: true;
      otherwiseReloginDays?: int;
      tmpSessions?: int;
      futureAuthToken?: bytes;
      user: Api.TypeUser;
      CONSTRUCTOR_ID: 782418132;
      SUBCLASS_OF_ID: 3118485049;
      className: 'Authorization';

      static fromReader(reader: Reader): Authorization;
    }
    export class AuthorizationSignUpRequired extends VirtualClass<{
      // flags: Api.Type;
      termsOfService?: help.TypeTermsOfService;
    } | void> {
      // flags: Api.Type;
      termsOfService?: help.TypeTermsOfService;
      CONSTRUCTOR_ID: 1148485274;
      SUBCLASS_OF_ID: 3118485049;
      className: 'AuthorizationSignUpRequired';

      static fromReader(reader: Reader): AuthorizationSignUpRequired;
    }
    export class ExportedAuthorization extends VirtualClass<{
      id: long;
      bytes: bytes;
    }> {
      id: long;
      bytes: bytes;
      CONSTRUCTOR_ID: 3023364792;
      SUBCLASS_OF_ID: 1607593041;
      className: 'ExportedAuthorization';

      static fromReader(reader: Reader): ExportedAuthorization;
    }
    export class PasswordRecovery extends VirtualClass<{
      emailPattern: string;
    }> {
      emailPattern: string;
      CONSTRUCTOR_ID: 326715557;
      SUBCLASS_OF_ID: 4201829434;
      className: 'PasswordRecovery';

      static fromReader(reader: Reader): PasswordRecovery;
    }
    export class CodeTypeSms extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1923290508;
      SUBCLASS_OF_ID: 3019105281;
      className: 'CodeTypeSms';

      static fromReader(reader: Reader): CodeTypeSms;
    }
    export class CodeTypeCall extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1948046307;
      SUBCLASS_OF_ID: 3019105281;
      className: 'CodeTypeCall';

      static fromReader(reader: Reader): CodeTypeCall;
    }
    export class CodeTypeFlashCall extends VirtualClass<void> {
      CONSTRUCTOR_ID: 577556219;
      SUBCLASS_OF_ID: 3019105281;
      className: 'CodeTypeFlashCall';

      static fromReader(reader: Reader): CodeTypeFlashCall;
    }
    export class CodeTypeMissedCall extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3592083182;
      SUBCLASS_OF_ID: 3019105281;
      className: 'CodeTypeMissedCall';

      static fromReader(reader: Reader): CodeTypeMissedCall;
    }
    export class CodeTypeFragmentSms extends VirtualClass<void> {
      CONSTRUCTOR_ID: 116234636;
      SUBCLASS_OF_ID: 3019105281;
      className: 'CodeTypeFragmentSms';

      static fromReader(reader: Reader): CodeTypeFragmentSms;
    }
    export class SentCodeTypeApp extends VirtualClass<{
      length: int;
    }> {
      length: int;
      CONSTRUCTOR_ID: 1035688326;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeApp';

      static fromReader(reader: Reader): SentCodeTypeApp;
    }
    export class SentCodeTypeSms extends VirtualClass<{
      length: int;
    }> {
      length: int;
      CONSTRUCTOR_ID: 3221273506;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeSms';

      static fromReader(reader: Reader): SentCodeTypeSms;
    }
    export class SentCodeTypeCall extends VirtualClass<{
      length: int;
    }> {
      length: int;
      CONSTRUCTOR_ID: 1398007207;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeCall';

      static fromReader(reader: Reader): SentCodeTypeCall;
    }
    export class SentCodeTypeFlashCall extends VirtualClass<{
      pattern: string;
    }> {
      pattern: string;
      CONSTRUCTOR_ID: 2869151449;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeFlashCall';

      static fromReader(reader: Reader): SentCodeTypeFlashCall;
    }
    export class SentCodeTypeMissedCall extends VirtualClass<{
      prefix: string;
      length: int;
    }> {
      prefix: string;
      length: int;
      CONSTRUCTOR_ID: 2181063812;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeMissedCall';

      static fromReader(reader: Reader): SentCodeTypeMissedCall;
    }
    export class SentCodeTypeEmailCode extends VirtualClass<{
      // flags: Api.Type;
      appleSigninAllowed?: true;
      googleSigninAllowed?: true;
      emailPattern: string;
      length: int;
      resetAvailablePeriod?: int;
      resetPendingDate?: int;
    }> {
      // flags: Api.Type;
      appleSigninAllowed?: true;
      googleSigninAllowed?: true;
      emailPattern: string;
      length: int;
      resetAvailablePeriod?: int;
      resetPendingDate?: int;
      CONSTRUCTOR_ID: 4098946459;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeEmailCode';

      static fromReader(reader: Reader): SentCodeTypeEmailCode;
    }
    export class SentCodeTypeSetUpEmailRequired extends VirtualClass<{
      // flags: Api.Type;
      appleSigninAllowed?: true;
      googleSigninAllowed?: true;
    } | void> {
      // flags: Api.Type;
      appleSigninAllowed?: true;
      googleSigninAllowed?: true;
      CONSTRUCTOR_ID: 2773032426;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeSetUpEmailRequired';

      static fromReader(reader: Reader): SentCodeTypeSetUpEmailRequired;
    }
    export class SentCodeTypeFragmentSms extends VirtualClass<{
      url: string;
      length: int;
    }> {
      url: string;
      length: int;
      CONSTRUCTOR_ID: 3646315577;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeFragmentSms';

      static fromReader(reader: Reader): SentCodeTypeFragmentSms;
    }
    export class SentCodeTypeFirebaseSms extends VirtualClass<{
      // flags: Api.Type;
      nonce?: bytes;
      playIntegrityProjectId?: long;
      playIntegrityNonce?: bytes;
      receipt?: string;
      pushTimeout?: int;
      length: int;
    }> {
      // flags: Api.Type;
      nonce?: bytes;
      playIntegrityProjectId?: long;
      playIntegrityNonce?: bytes;
      receipt?: string;
      pushTimeout?: int;
      length: int;
      CONSTRUCTOR_ID: 10475318;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeFirebaseSms';

      static fromReader(reader: Reader): SentCodeTypeFirebaseSms;
    }
    export class SentCodeTypeSmsWord extends VirtualClass<{
      // flags: Api.Type;
      beginning?: string;
    } | void> {
      // flags: Api.Type;
      beginning?: string;
      CONSTRUCTOR_ID: 2752949377;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeSmsWord';

      static fromReader(reader: Reader): SentCodeTypeSmsWord;
    }
    export class SentCodeTypeSmsPhrase extends VirtualClass<{
      // flags: Api.Type;
      beginning?: string;
    } | void> {
      // flags: Api.Type;
      beginning?: string;
      CONSTRUCTOR_ID: 3010958511;
      SUBCLASS_OF_ID: 4284159374;
      className: 'SentCodeTypeSmsPhrase';

      static fromReader(reader: Reader): SentCodeTypeSmsPhrase;
    }
    export class LoginToken extends VirtualClass<{
      expires: int;
      token: bytes;
    }> {
      expires: int;
      token: bytes;
      CONSTRUCTOR_ID: 1654593920;
      SUBCLASS_OF_ID: 1800795702;
      className: 'LoginToken';

      static fromReader(reader: Reader): LoginToken;
    }
    export class LoginTokenMigrateTo extends VirtualClass<{
      dcId: int;
      token: bytes;
    }> {
      dcId: int;
      token: bytes;
      CONSTRUCTOR_ID: 110008598;
      SUBCLASS_OF_ID: 1800795702;
      className: 'LoginTokenMigrateTo';

      static fromReader(reader: Reader): LoginTokenMigrateTo;
    }
    export class LoginTokenSuccess extends VirtualClass<{
      authorization: auth.TypeAuthorization;
    }> {
      authorization: auth.TypeAuthorization;
      CONSTRUCTOR_ID: 957176926;
      SUBCLASS_OF_ID: 1800795702;
      className: 'LoginTokenSuccess';

      static fromReader(reader: Reader): LoginTokenSuccess;
    }
    export class LoggedOut extends VirtualClass<{
      // flags: Api.Type;
      futureAuthToken?: bytes;
    } | void> {
      // flags: Api.Type;
      futureAuthToken?: bytes;
      CONSTRUCTOR_ID: 3282207583;
      SUBCLASS_OF_ID: 176177941;
      className: 'LoggedOut';

      static fromReader(reader: Reader): LoggedOut;
    }
    export class PasskeyLoginOptions extends VirtualClass<{
      options: Api.TypeDataJSON;
    }> {
      options: Api.TypeDataJSON;
      CONSTRUCTOR_ID: 3791878025;
      SUBCLASS_OF_ID: 3648598066;
      className: 'PasskeyLoginOptions';

      static fromReader(reader: Reader): PasskeyLoginOptions;
    }
  }

  export namespace contacts {
    export class ContactsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3075189202;
      SUBCLASS_OF_ID: 951985654;
      className: 'ContactsNotModified';

      static fromReader(reader: Reader): ContactsNotModified;
    }
    export class Contacts extends VirtualClass<{
      contacts: Api.TypeContact[];
      savedCount: int;
      users: Api.TypeUser[];
    }> {
      contacts: Api.TypeContact[];
      savedCount: int;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3941105218;
      SUBCLASS_OF_ID: 951985654;
      className: 'Contacts';

      static fromReader(reader: Reader): Contacts;
    }
    export class ImportedContacts extends VirtualClass<{
      imported: Api.TypeImportedContact[];
      popularInvites: Api.TypePopularContact[];
      retryContacts: long[];
      users: Api.TypeUser[];
    }> {
      imported: Api.TypeImportedContact[];
      popularInvites: Api.TypePopularContact[];
      retryContacts: long[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2010127419;
      SUBCLASS_OF_ID: 2171776403;
      className: 'ImportedContacts';

      static fromReader(reader: Reader): ImportedContacts;
    }
    export class Blocked extends VirtualClass<{
      blocked: Api.TypePeerBlocked[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      blocked: Api.TypePeerBlocked[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 182326673;
      SUBCLASS_OF_ID: 4290400079;
      className: 'Blocked';

      static fromReader(reader: Reader): Blocked;
    }
    export class BlockedSlice extends VirtualClass<{
      count: int;
      blocked: Api.TypePeerBlocked[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      count: int;
      blocked: Api.TypePeerBlocked[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3781575060;
      SUBCLASS_OF_ID: 4290400079;
      className: 'BlockedSlice';

      static fromReader(reader: Reader): BlockedSlice;
    }
    export class Found extends VirtualClass<{
      myResults: Api.TypePeer[];
      results: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      myResults: Api.TypePeer[];
      results: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3004386717;
      SUBCLASS_OF_ID: 1132896995;
      className: 'Found';

      static fromReader(reader: Reader): Found;
    }
    export class ResolvedPeer extends VirtualClass<{
      peer: Api.TypePeer;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      peer: Api.TypePeer;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2131196633;
      SUBCLASS_OF_ID: 4033196968;
      className: 'ResolvedPeer';

      static fromReader(reader: Reader): ResolvedPeer;
    }
    export class TopPeersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3727060725;
      SUBCLASS_OF_ID: 2666052488;
      className: 'TopPeersNotModified';

      static fromReader(reader: Reader): TopPeersNotModified;
    }
    export class TopPeers extends VirtualClass<{
      categories: Api.TypeTopPeerCategoryPeers[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      categories: Api.TypeTopPeerCategoryPeers[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1891070632;
      SUBCLASS_OF_ID: 2666052488;
      className: 'TopPeers';

      static fromReader(reader: Reader): TopPeers;
    }
    export class TopPeersDisabled extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3039597469;
      SUBCLASS_OF_ID: 2666052488;
      className: 'TopPeersDisabled';

      static fromReader(reader: Reader): TopPeersDisabled;
    }
    export class ContactBirthdays extends VirtualClass<{
      contacts: Api.TypeContactBirthday[];
      users: Api.TypeUser[];
    }> {
      contacts: Api.TypeContactBirthday[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 290452237;
      SUBCLASS_OF_ID: 242920447;
      className: 'ContactBirthdays';

      static fromReader(reader: Reader): ContactBirthdays;
    }
    export class SponsoredPeersEmpty extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3929191601;
      SUBCLASS_OF_ID: 3026017484;
      className: 'SponsoredPeersEmpty';

      static fromReader(reader: Reader): SponsoredPeersEmpty;
    }
    export class SponsoredPeers extends VirtualClass<{
      peers: Api.TypeSponsoredPeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      peers: Api.TypeSponsoredPeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3942852740;
      SUBCLASS_OF_ID: 3026017484;
      className: 'SponsoredPeers';

      static fromReader(reader: Reader): SponsoredPeers;
    }
  }

  export namespace messages {
    export class Dialogs extends VirtualClass<{
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 364538944;
      SUBCLASS_OF_ID: 236671726;
      className: 'Dialogs';

      static fromReader(reader: Reader): Dialogs;
    }
    export class DialogsSlice extends VirtualClass<{
      count: int;
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      count: int;
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1910543603;
      SUBCLASS_OF_ID: 236671726;
      className: 'DialogsSlice';

      static fromReader(reader: Reader): DialogsSlice;
    }
    export class DialogsNotModified extends VirtualClass<{
      count: int;
    }> {
      count: int;
      CONSTRUCTOR_ID: 4041467286;
      SUBCLASS_OF_ID: 236671726;
      className: 'DialogsNotModified';

      static fromReader(reader: Reader): DialogsNotModified;
    }
    export class Messages extends VirtualClass<{
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 494135274;
      SUBCLASS_OF_ID: 3568569182;
      className: 'Messages';

      static fromReader(reader: Reader): Messages;
    }
    export class MessagesSlice extends VirtualClass<{
      // flags: Api.Type;
      inexact?: true;
      count: int;
      nextRate?: int;
      offsetIdOffset?: int;
      searchFlood?: Api.TypeSearchPostsFlood;
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      inexact?: true;
      count: int;
      nextRate?: int;
      offsetIdOffset?: int;
      searchFlood?: Api.TypeSearchPostsFlood;
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1595959062;
      SUBCLASS_OF_ID: 3568569182;
      className: 'MessagesSlice';

      static fromReader(reader: Reader): MessagesSlice;
    }
    export class ChannelMessages extends VirtualClass<{
      // flags: Api.Type;
      inexact?: true;
      pts: int;
      count: int;
      offsetIdOffset?: int;
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      inexact?: true;
      pts: int;
      count: int;
      offsetIdOffset?: int;
      messages: Api.TypeMessage[];
      topics: Api.TypeForumTopic[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3346446926;
      SUBCLASS_OF_ID: 3568569182;
      className: 'ChannelMessages';

      static fromReader(reader: Reader): ChannelMessages;
    }
    export class MessagesNotModified extends VirtualClass<{
      count: int;
    }> {
      count: int;
      CONSTRUCTOR_ID: 1951620897;
      SUBCLASS_OF_ID: 3568569182;
      className: 'MessagesNotModified';

      static fromReader(reader: Reader): MessagesNotModified;
    }
    export class Chats extends VirtualClass<{
      chats: Api.TypeChat[];
    }> {
      chats: Api.TypeChat[];
      CONSTRUCTOR_ID: 1694474197;
      SUBCLASS_OF_ID: 2580925204;
      className: 'Chats';

      static fromReader(reader: Reader): Chats;
    }
    export class ChatsSlice extends VirtualClass<{
      count: int;
      chats: Api.TypeChat[];
    }> {
      count: int;
      chats: Api.TypeChat[];
      CONSTRUCTOR_ID: 2631405892;
      SUBCLASS_OF_ID: 2580925204;
      className: 'ChatsSlice';

      static fromReader(reader: Reader): ChatsSlice;
    }
    export class ChatFull extends VirtualClass<{
      fullChat: Api.TypeChatFull;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      fullChat: Api.TypeChatFull;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3856126364;
      SUBCLASS_OF_ID: 576344329;
      className: 'ChatFull';

      static fromReader(reader: Reader): ChatFull;
    }
    export class AffectedHistory extends VirtualClass<{
      pts: int;
      ptsCount: int;
      offset: int;
    }> {
      pts: int;
      ptsCount: int;
      offset: int;
      CONSTRUCTOR_ID: 3025955281;
      SUBCLASS_OF_ID: 743031062;
      className: 'AffectedHistory';

      static fromReader(reader: Reader): AffectedHistory;
    }
    export class DhConfigNotModified extends VirtualClass<{
      random: bytes;
    }> {
      random: bytes;
      CONSTRUCTOR_ID: 3236054581;
      SUBCLASS_OF_ID: 3834178955;
      className: 'DhConfigNotModified';

      static fromReader(reader: Reader): DhConfigNotModified;
    }
    export class DhConfig extends VirtualClass<{
      g: int;
      p: bytes;
      version: int;
      random: bytes;
    }> {
      g: int;
      p: bytes;
      version: int;
      random: bytes;
      CONSTRUCTOR_ID: 740433629;
      SUBCLASS_OF_ID: 3834178955;
      className: 'DhConfig';

      static fromReader(reader: Reader): DhConfig;
    }
    export class SentEncryptedMessage extends VirtualClass<{
      date: int;
    }> {
      date: int;
      CONSTRUCTOR_ID: 1443858741;
      SUBCLASS_OF_ID: 3382591056;
      className: 'SentEncryptedMessage';

      static fromReader(reader: Reader): SentEncryptedMessage;
    }
    export class SentEncryptedFile extends VirtualClass<{
      date: int;
      file: Api.TypeEncryptedFile;
    }> {
      date: int;
      file: Api.TypeEncryptedFile;
      CONSTRUCTOR_ID: 2492727090;
      SUBCLASS_OF_ID: 3382591056;
      className: 'SentEncryptedFile';

      static fromReader(reader: Reader): SentEncryptedFile;
    }
    export class StickersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 4050950690;
      SUBCLASS_OF_ID: 3611015646;
      className: 'StickersNotModified';

      static fromReader(reader: Reader): StickersNotModified;
    }
    export class Stickers extends VirtualClass<{
      hash: long;
      stickers: Api.TypeDocument[];
    }> {
      hash: long;
      stickers: Api.TypeDocument[];
      CONSTRUCTOR_ID: 816245886;
      SUBCLASS_OF_ID: 3611015646;
      className: 'Stickers';

      static fromReader(reader: Reader): Stickers;
    }
    export class AllStickersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3898999491;
      SUBCLASS_OF_ID: 1166231593;
      className: 'AllStickersNotModified';

      static fromReader(reader: Reader): AllStickersNotModified;
    }
    export class AllStickers extends VirtualClass<{
      hash: long;
      sets: Api.TypeStickerSet[];
    }> {
      hash: long;
      sets: Api.TypeStickerSet[];
      CONSTRUCTOR_ID: 3451637435;
      SUBCLASS_OF_ID: 1166231593;
      className: 'AllStickers';

      static fromReader(reader: Reader): AllStickers;
    }
    export class AffectedMessages extends VirtualClass<{
      pts: int;
      ptsCount: int;
    }> {
      pts: int;
      ptsCount: int;
      CONSTRUCTOR_ID: 2228326789;
      SUBCLASS_OF_ID: 3469983854;
      className: 'AffectedMessages';

      static fromReader(reader: Reader): AffectedMessages;
    }
    export class StickerSet extends VirtualClass<{
      set: Api.TypeStickerSet;
      packs: Api.TypeStickerPack[];
      keywords: Api.TypeStickerKeyword[];
      documents: Api.TypeDocument[];
    }> {
      set: Api.TypeStickerSet;
      packs: Api.TypeStickerPack[];
      keywords: Api.TypeStickerKeyword[];
      documents: Api.TypeDocument[];
      CONSTRUCTOR_ID: 1846886166;
      SUBCLASS_OF_ID: 2607827546;
      className: 'StickerSet';

      static fromReader(reader: Reader): StickerSet;
    }
    export class StickerSetNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3556320491;
      SUBCLASS_OF_ID: 2607827546;
      className: 'StickerSetNotModified';

      static fromReader(reader: Reader): StickerSetNotModified;
    }
    export class SavedGifsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3892468898;
      SUBCLASS_OF_ID: 2794152437;
      className: 'SavedGifsNotModified';

      static fromReader(reader: Reader): SavedGifsNotModified;
    }
    export class SavedGifs extends VirtualClass<{
      hash: long;
      gifs: Api.TypeDocument[];
    }> {
      hash: long;
      gifs: Api.TypeDocument[];
      CONSTRUCTOR_ID: 2225089037;
      SUBCLASS_OF_ID: 2794152437;
      className: 'SavedGifs';

      static fromReader(reader: Reader): SavedGifs;
    }
    export class BotResults extends VirtualClass<{
      // flags: Api.Type;
      gallery?: true;
      queryId: long;
      nextOffset?: string;
      switchPm?: Api.TypeInlineBotSwitchPM;
      switchWebview?: Api.TypeInlineBotWebView;
      results: Api.TypeBotInlineResult[];
      cacheTime: int;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      gallery?: true;
      queryId: long;
      nextOffset?: string;
      switchPm?: Api.TypeInlineBotSwitchPM;
      switchWebview?: Api.TypeInlineBotWebView;
      results: Api.TypeBotInlineResult[];
      cacheTime: int;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3760321270;
      SUBCLASS_OF_ID: 1054136777;
      className: 'BotResults';

      static fromReader(reader: Reader): BotResults;
    }
    export class BotCallbackAnswer extends VirtualClass<{
      // flags: Api.Type;
      alert?: true;
      hasUrl?: true;
      nativeUi?: true;
      message?: string;
      url?: string;
      cacheTime: int;
    }> {
      // flags: Api.Type;
      alert?: true;
      hasUrl?: true;
      nativeUi?: true;
      message?: string;
      url?: string;
      cacheTime: int;
      CONSTRUCTOR_ID: 911761060;
      SUBCLASS_OF_ID: 1817039244;
      className: 'BotCallbackAnswer';

      static fromReader(reader: Reader): BotCallbackAnswer;
    }
    export class MessageEditData extends VirtualClass<{
      // flags: Api.Type;
      caption?: true;
    } | void> {
      // flags: Api.Type;
      caption?: true;
      CONSTRUCTOR_ID: 649453030;
      SUBCLASS_OF_ID: 4215772317;
      className: 'MessageEditData';

      static fromReader(reader: Reader): MessageEditData;
    }
    export class PeerDialogs extends VirtualClass<{
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      state: updates.TypeState;
    }> {
      dialogs: Api.TypeDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      state: updates.TypeState;
      CONSTRUCTOR_ID: 863093588;
      SUBCLASS_OF_ID: 986120498;
      className: 'PeerDialogs';

      static fromReader(reader: Reader): PeerDialogs;
    }
    export class FeaturedStickersNotModified extends VirtualClass<{
      count: int;
    }> {
      count: int;
      CONSTRUCTOR_ID: 3336309862;
      SUBCLASS_OF_ID: 638891810;
      className: 'FeaturedStickersNotModified';

      static fromReader(reader: Reader): FeaturedStickersNotModified;
    }
    export class FeaturedStickers extends VirtualClass<{
      // flags: Api.Type;
      premium?: true;
      hash: long;
      count: int;
      sets: Api.TypeStickerSetCovered[];
      unread: long[];
    }> {
      // flags: Api.Type;
      premium?: true;
      hash: long;
      count: int;
      sets: Api.TypeStickerSetCovered[];
      unread: long[];
      CONSTRUCTOR_ID: 3191351558;
      SUBCLASS_OF_ID: 638891810;
      className: 'FeaturedStickers';

      static fromReader(reader: Reader): FeaturedStickers;
    }
    export class RecentStickersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 186120336;
      SUBCLASS_OF_ID: 4151281283;
      className: 'RecentStickersNotModified';

      static fromReader(reader: Reader): RecentStickersNotModified;
    }
    export class RecentStickers extends VirtualClass<{
      hash: long;
      packs: Api.TypeStickerPack[];
      stickers: Api.TypeDocument[];
      dates: int[];
    }> {
      hash: long;
      packs: Api.TypeStickerPack[];
      stickers: Api.TypeDocument[];
      dates: int[];
      CONSTRUCTOR_ID: 2295561302;
      SUBCLASS_OF_ID: 4151281283;
      className: 'RecentStickers';

      static fromReader(reader: Reader): RecentStickers;
    }
    export class ArchivedStickers extends VirtualClass<{
      count: int;
      sets: Api.TypeStickerSetCovered[];
    }> {
      count: int;
      sets: Api.TypeStickerSetCovered[];
      CONSTRUCTOR_ID: 1338747336;
      SUBCLASS_OF_ID: 1922488177;
      className: 'ArchivedStickers';

      static fromReader(reader: Reader): ArchivedStickers;
    }
    export class StickerSetInstallResultSuccess extends VirtualClass<void> {
      CONSTRUCTOR_ID: 946083368;
      SUBCLASS_OF_ID: 1741373416;
      className: 'StickerSetInstallResultSuccess';

      static fromReader(reader: Reader): StickerSetInstallResultSuccess;
    }
    export class StickerSetInstallResultArchive extends VirtualClass<{
      sets: Api.TypeStickerSetCovered[];
    }> {
      sets: Api.TypeStickerSetCovered[];
      CONSTRUCTOR_ID: 904138920;
      SUBCLASS_OF_ID: 1741373416;
      className: 'StickerSetInstallResultArchive';

      static fromReader(reader: Reader): StickerSetInstallResultArchive;
    }
    export class HighScores extends VirtualClass<{
      scores: Api.TypeHighScore[];
      users: Api.TypeUser[];
    }> {
      scores: Api.TypeHighScore[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2587622809;
      SUBCLASS_OF_ID: 1825412605;
      className: 'HighScores';

      static fromReader(reader: Reader): HighScores;
    }
    export class FavedStickersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2660214483;
      SUBCLASS_OF_ID: 2389929913;
      className: 'FavedStickersNotModified';

      static fromReader(reader: Reader): FavedStickersNotModified;
    }
    export class FavedStickers extends VirtualClass<{
      hash: long;
      packs: Api.TypeStickerPack[];
      stickers: Api.TypeDocument[];
    }> {
      hash: long;
      packs: Api.TypeStickerPack[];
      stickers: Api.TypeDocument[];
      CONSTRUCTOR_ID: 750063767;
      SUBCLASS_OF_ID: 2389929913;
      className: 'FavedStickers';

      static fromReader(reader: Reader): FavedStickers;
    }
    export class FoundStickerSetsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 223655517;
      SUBCLASS_OF_ID: 68023137;
      className: 'FoundStickerSetsNotModified';

      static fromReader(reader: Reader): FoundStickerSetsNotModified;
    }
    export class FoundStickerSets extends VirtualClass<{
      hash: long;
      sets: Api.TypeStickerSetCovered[];
    }> {
      hash: long;
      sets: Api.TypeStickerSetCovered[];
      CONSTRUCTOR_ID: 2331024850;
      SUBCLASS_OF_ID: 68023137;
      className: 'FoundStickerSets';

      static fromReader(reader: Reader): FoundStickerSets;
    }
    export class SearchCounter extends VirtualClass<{
      // flags: Api.Type;
      inexact?: true;
      filter: Api.TypeMessagesFilter;
      count: int;
    }> {
      // flags: Api.Type;
      inexact?: true;
      filter: Api.TypeMessagesFilter;
      count: int;
      CONSTRUCTOR_ID: 3896830975;
      SUBCLASS_OF_ID: 3601317794;
      className: 'SearchCounter';

      static fromReader(reader: Reader): SearchCounter;
    }
    export class InactiveChats extends VirtualClass<{
      dates: int[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      dates: int[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2837970629;
      SUBCLASS_OF_ID: 2348013524;
      className: 'InactiveChats';

      static fromReader(reader: Reader): InactiveChats;
    }
    export class VotesList extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      votes: Api.TypeMessagePeerVote[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      count: int;
      votes: Api.TypeMessagePeerVote[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 1218005070;
      SUBCLASS_OF_ID: 3256457349;
      className: 'VotesList';

      static fromReader(reader: Reader): VotesList;
    }
    export class MessageViews extends VirtualClass<{
      views: Api.TypeMessageViews[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      views: Api.TypeMessageViews[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3066361155;
      SUBCLASS_OF_ID: 2947935132;
      className: 'MessageViews';

      static fromReader(reader: Reader): MessageViews;
    }
    export class DiscussionMessage extends VirtualClass<{
      // flags: Api.Type;
      messages: Api.TypeMessage[];
      maxId?: int;
      readInboxMaxId?: int;
      readOutboxMaxId?: int;
      unreadCount: int;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      messages: Api.TypeMessage[];
      maxId?: int;
      readInboxMaxId?: int;
      readOutboxMaxId?: int;
      unreadCount: int;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2788431746;
      SUBCLASS_OF_ID: 1408820200;
      className: 'DiscussionMessage';

      static fromReader(reader: Reader): DiscussionMessage;
    }
    export class HistoryImport extends VirtualClass<{
      id: long;
    }> {
      id: long;
      CONSTRUCTOR_ID: 375566091;
      SUBCLASS_OF_ID: 2978723082;
      className: 'HistoryImport';

      static fromReader(reader: Reader): HistoryImport;
    }
    export class HistoryImportParsed extends VirtualClass<{
      // flags: Api.Type;
      pm?: true;
      group?: true;
      title?: string;
    } | void> {
      // flags: Api.Type;
      pm?: true;
      group?: true;
      title?: string;
      CONSTRUCTOR_ID: 1578088377;
      SUBCLASS_OF_ID: 1538421259;
      className: 'HistoryImportParsed';

      static fromReader(reader: Reader): HistoryImportParsed;
    }
    export class AffectedFoundMessages extends VirtualClass<{
      pts: int;
      ptsCount: int;
      offset: int;
      messages: int[];
    }> {
      pts: int;
      ptsCount: int;
      offset: int;
      messages: int[];
      CONSTRUCTOR_ID: 4019011180;
      SUBCLASS_OF_ID: 4162282798;
      className: 'AffectedFoundMessages';

      static fromReader(reader: Reader): AffectedFoundMessages;
    }
    export class ExportedChatInvites extends VirtualClass<{
      count: int;
      invites: Api.TypeExportedChatInvite[];
      users: Api.TypeUser[];
    }> {
      count: int;
      invites: Api.TypeExportedChatInvite[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3183881676;
      SUBCLASS_OF_ID: 1614624881;
      className: 'ExportedChatInvites';

      static fromReader(reader: Reader): ExportedChatInvites;
    }
    export class ExportedChatInvite extends VirtualClass<{
      invite: Api.TypeExportedChatInvite;
      users: Api.TypeUser[];
    }> {
      invite: Api.TypeExportedChatInvite;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 410107472;
      SUBCLASS_OF_ID: 2195510474;
      className: 'ExportedChatInvite';

      static fromReader(reader: Reader): ExportedChatInvite;
    }
    export class ExportedChatInviteReplaced extends VirtualClass<{
      invite: Api.TypeExportedChatInvite;
      newInvite: Api.TypeExportedChatInvite;
      users: Api.TypeUser[];
    }> {
      invite: Api.TypeExportedChatInvite;
      newInvite: Api.TypeExportedChatInvite;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 572915951;
      SUBCLASS_OF_ID: 2195510474;
      className: 'ExportedChatInviteReplaced';

      static fromReader(reader: Reader): ExportedChatInviteReplaced;
    }
    export class ChatInviteImporters extends VirtualClass<{
      count: int;
      importers: Api.TypeChatInviteImporter[];
      users: Api.TypeUser[];
    }> {
      count: int;
      importers: Api.TypeChatInviteImporter[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2176233482;
      SUBCLASS_OF_ID: 3653012134;
      className: 'ChatInviteImporters';

      static fromReader(reader: Reader): ChatInviteImporters;
    }
    export class ChatAdminsWithInvites extends VirtualClass<{
      admins: Api.TypeChatAdminWithInvites[];
      users: Api.TypeUser[];
    }> {
      admins: Api.TypeChatAdminWithInvites[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3063640791;
      SUBCLASS_OF_ID: 2405149995;
      className: 'ChatAdminsWithInvites';

      static fromReader(reader: Reader): ChatAdminsWithInvites;
    }
    export class CheckedHistoryImportPeer extends VirtualClass<{
      confirmText: string;
    }> {
      confirmText: string;
      CONSTRUCTOR_ID: 2723014423;
      SUBCLASS_OF_ID: 3091968823;
      className: 'CheckedHistoryImportPeer';

      static fromReader(reader: Reader): CheckedHistoryImportPeer;
    }
    export class SponsoredMessages extends VirtualClass<{
      // flags: Api.Type;
      postsBetween?: int;
      startDelay?: int;
      betweenDelay?: int;
      messages: Api.TypeSponsoredMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      postsBetween?: int;
      startDelay?: int;
      betweenDelay?: int;
      messages: Api.TypeSponsoredMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4292502893;
      SUBCLASS_OF_ID: 2134993376;
      className: 'SponsoredMessages';

      static fromReader(reader: Reader): SponsoredMessages;
    }
    export class SponsoredMessagesEmpty extends VirtualClass<void> {
      CONSTRUCTOR_ID: 406407439;
      SUBCLASS_OF_ID: 2134993376;
      className: 'SponsoredMessagesEmpty';

      static fromReader(reader: Reader): SponsoredMessagesEmpty;
    }
    export class SearchResultsCalendar extends VirtualClass<{
      // flags: Api.Type;
      inexact?: true;
      count: int;
      minDate: int;
      minMsgId: int;
      offsetIdOffset?: int;
      periods: Api.TypeSearchResultsCalendarPeriod[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      inexact?: true;
      count: int;
      minDate: int;
      minMsgId: int;
      offsetIdOffset?: int;
      periods: Api.TypeSearchResultsCalendarPeriod[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 343859772;
      SUBCLASS_OF_ID: 2462409743;
      className: 'SearchResultsCalendar';

      static fromReader(reader: Reader): SearchResultsCalendar;
    }
    export class SearchResultsPositions extends VirtualClass<{
      count: int;
      positions: Api.TypeSearchResultsPosition[];
    }> {
      count: int;
      positions: Api.TypeSearchResultsPosition[];
      CONSTRUCTOR_ID: 1404185519;
      SUBCLASS_OF_ID: 3647172749;
      className: 'SearchResultsPositions';

      static fromReader(reader: Reader): SearchResultsPositions;
    }
    export class PeerSettings extends VirtualClass<{
      settings: Api.TypePeerSettings;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      settings: Api.TypePeerSettings;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1753266509;
      SUBCLASS_OF_ID: 1705179041;
      className: 'PeerSettings';

      static fromReader(reader: Reader): PeerSettings;
    }
    export class MessageReactionsList extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      reactions: Api.TypeMessagePeerReaction[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      count: int;
      reactions: Api.TypeMessagePeerReaction[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 834488621;
      SUBCLASS_OF_ID: 1627186662;
      className: 'MessageReactionsList';

      static fromReader(reader: Reader): MessageReactionsList;
    }
    export class AvailableReactionsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2668042583;
      SUBCLASS_OF_ID: 3827740034;
      className: 'AvailableReactionsNotModified';

      static fromReader(reader: Reader): AvailableReactionsNotModified;
    }
    export class AvailableReactions extends VirtualClass<{
      hash: int;
      reactions: Api.TypeAvailableReaction[];
    }> {
      hash: int;
      reactions: Api.TypeAvailableReaction[];
      CONSTRUCTOR_ID: 1989032621;
      SUBCLASS_OF_ID: 3827740034;
      className: 'AvailableReactions';

      static fromReader(reader: Reader): AvailableReactions;
    }
    export class TranscribedAudio extends VirtualClass<{
      // flags: Api.Type;
      pending?: true;
      transcriptionId: long;
      text: string;
      trialRemainsNum?: int;
      trialRemainsUntilDate?: int;
    }> {
      // flags: Api.Type;
      pending?: true;
      transcriptionId: long;
      text: string;
      trialRemainsNum?: int;
      trialRemainsUntilDate?: int;
      CONSTRUCTOR_ID: 3485063511;
      SUBCLASS_OF_ID: 565332278;
      className: 'TranscribedAudio';

      static fromReader(reader: Reader): TranscribedAudio;
    }
    export class ReactionsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2960120799;
      SUBCLASS_OF_ID: 2915271460;
      className: 'ReactionsNotModified';

      static fromReader(reader: Reader): ReactionsNotModified;
    }
    export class Reactions extends VirtualClass<{
      hash: long;
      reactions: Api.TypeReaction[];
    }> {
      hash: long;
      reactions: Api.TypeReaction[];
      CONSTRUCTOR_ID: 3942512406;
      SUBCLASS_OF_ID: 2915271460;
      className: 'Reactions';

      static fromReader(reader: Reader): Reactions;
    }
    export class ForumTopics extends VirtualClass<{
      // flags: Api.Type;
      orderByCreateDate?: true;
      count: int;
      topics: Api.TypeForumTopic[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      pts: int;
    }> {
      // flags: Api.Type;
      orderByCreateDate?: true;
      count: int;
      topics: Api.TypeForumTopic[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      pts: int;
      CONSTRUCTOR_ID: 913709011;
      SUBCLASS_OF_ID: 2384281118;
      className: 'ForumTopics';

      static fromReader(reader: Reader): ForumTopics;
    }
    export class EmojiGroupsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1874111879;
      SUBCLASS_OF_ID: 2127189465;
      className: 'EmojiGroupsNotModified';

      static fromReader(reader: Reader): EmojiGroupsNotModified;
    }
    export class EmojiGroups extends VirtualClass<{
      hash: int;
      groups: Api.TypeEmojiGroup[];
    }> {
      hash: int;
      groups: Api.TypeEmojiGroup[];
      CONSTRUCTOR_ID: 2283780427;
      SUBCLASS_OF_ID: 2127189465;
      className: 'EmojiGroups';

      static fromReader(reader: Reader): EmojiGroups;
    }
    export class TranslateResult extends VirtualClass<{
      result: Api.TypeTextWithEntities[];
    }> {
      result: Api.TypeTextWithEntities[];
      CONSTRUCTOR_ID: 870003448;
      SUBCLASS_OF_ID: 37897192;
      className: 'TranslateResult';

      static fromReader(reader: Reader): TranslateResult;
    }
    export class BotApp extends VirtualClass<{
      // flags: Api.Type;
      inactive?: true;
      requestWriteAccess?: true;
      hasSettings?: true;
      app: Api.TypeBotApp;
    }> {
      // flags: Api.Type;
      inactive?: true;
      requestWriteAccess?: true;
      hasSettings?: true;
      app: Api.TypeBotApp;
      CONSTRUCTOR_ID: 3947933173;
      SUBCLASS_OF_ID: 2406630311;
      className: 'BotApp';

      static fromReader(reader: Reader): BotApp;
    }
    export class WebPage extends VirtualClass<{
      webpage: Api.TypeWebPage;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      webpage: Api.TypeWebPage;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4250800829;
      SUBCLASS_OF_ID: 754495828;
      className: 'WebPage';

      static fromReader(reader: Reader): WebPage;
    }
    export class SavedDialogs extends VirtualClass<{
      dialogs: Api.TypeSavedDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      dialogs: Api.TypeSavedDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4164608545;
      SUBCLASS_OF_ID: 1632352382;
      className: 'SavedDialogs';

      static fromReader(reader: Reader): SavedDialogs;
    }
    export class SavedDialogsSlice extends VirtualClass<{
      count: int;
      dialogs: Api.TypeSavedDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      count: int;
      dialogs: Api.TypeSavedDialog[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1153080793;
      SUBCLASS_OF_ID: 1632352382;
      className: 'SavedDialogsSlice';

      static fromReader(reader: Reader): SavedDialogsSlice;
    }
    export class SavedDialogsNotModified extends VirtualClass<{
      count: int;
    }> {
      count: int;
      CONSTRUCTOR_ID: 3223285736;
      SUBCLASS_OF_ID: 1632352382;
      className: 'SavedDialogsNotModified';

      static fromReader(reader: Reader): SavedDialogsNotModified;
    }
    export class SavedReactionTagsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2291882479;
      SUBCLASS_OF_ID: 2744867811;
      className: 'SavedReactionTagsNotModified';

      static fromReader(reader: Reader): SavedReactionTagsNotModified;
    }
    export class SavedReactionTags extends VirtualClass<{
      tags: Api.TypeSavedReactionTag[];
      hash: long;
    }> {
      tags: Api.TypeSavedReactionTag[];
      hash: long;
      CONSTRUCTOR_ID: 844731658;
      SUBCLASS_OF_ID: 2744867811;
      className: 'SavedReactionTags';

      static fromReader(reader: Reader): SavedReactionTags;
    }
    export class QuickReplies extends VirtualClass<{
      quickReplies: Api.TypeQuickReply[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      quickReplies: Api.TypeQuickReply[];
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3331155605;
      SUBCLASS_OF_ID: 4147636582;
      className: 'QuickReplies';

      static fromReader(reader: Reader): QuickReplies;
    }
    export class QuickRepliesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1603398491;
      SUBCLASS_OF_ID: 4147636582;
      className: 'QuickRepliesNotModified';

      static fromReader(reader: Reader): QuickRepliesNotModified;
    }
    export class DialogFilters extends VirtualClass<{
      // flags: Api.Type;
      tagsEnabled?: true;
      filters: Api.TypeDialogFilter[];
    }> {
      // flags: Api.Type;
      tagsEnabled?: true;
      filters: Api.TypeDialogFilter[];
      CONSTRUCTOR_ID: 718878489;
      SUBCLASS_OF_ID: 2785014199;
      className: 'DialogFilters';

      static fromReader(reader: Reader): DialogFilters;
    }
    export class MyStickers extends VirtualClass<{
      count: int;
      sets: Api.TypeStickerSetCovered[];
    }> {
      count: int;
      sets: Api.TypeStickerSetCovered[];
      CONSTRUCTOR_ID: 4211040925;
      SUBCLASS_OF_ID: 2981377290;
      className: 'MyStickers';

      static fromReader(reader: Reader): MyStickers;
    }
    export class InvitedUsers extends VirtualClass<{
      updates: Api.TypeUpdates;
      missingInvitees: Api.TypeMissingInvitee[];
    }> {
      updates: Api.TypeUpdates;
      missingInvitees: Api.TypeMissingInvitee[];
      CONSTRUCTOR_ID: 2136862630;
      SUBCLASS_OF_ID: 1035899041;
      className: 'InvitedUsers';

      static fromReader(reader: Reader): InvitedUsers;
    }
    export class AvailableEffectsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3522009691;
      SUBCLASS_OF_ID: 1148245437;
      className: 'AvailableEffectsNotModified';

      static fromReader(reader: Reader): AvailableEffectsNotModified;
    }
    export class AvailableEffects extends VirtualClass<{
      hash: int;
      effects: Api.TypeAvailableEffect[];
      documents: Api.TypeDocument[];
    }> {
      hash: int;
      effects: Api.TypeAvailableEffect[];
      documents: Api.TypeDocument[];
      CONSTRUCTOR_ID: 3185271150;
      SUBCLASS_OF_ID: 1148245437;
      className: 'AvailableEffects';

      static fromReader(reader: Reader): AvailableEffects;
    }
    export class BotPreparedInlineMessage extends VirtualClass<{
      id: string;
      expireDate: int;
    }> {
      id: string;
      expireDate: int;
      CONSTRUCTOR_ID: 2395931921;
      SUBCLASS_OF_ID: 4019263931;
      className: 'BotPreparedInlineMessage';

      static fromReader(reader: Reader): BotPreparedInlineMessage;
    }
    export class PreparedInlineMessage extends VirtualClass<{
      queryId: long;
      result: Api.TypeBotInlineResult;
      peerTypes: Api.TypeInlineQueryPeerType[];
      cacheTime: int;
      users: Api.TypeUser[];
    }> {
      queryId: long;
      result: Api.TypeBotInlineResult;
      peerTypes: Api.TypeInlineQueryPeerType[];
      cacheTime: int;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4283920525;
      SUBCLASS_OF_ID: 1225645901;
      className: 'PreparedInlineMessage';

      static fromReader(reader: Reader): PreparedInlineMessage;
    }
    export class FoundStickersNotModified extends VirtualClass<{
      // flags: Api.Type;
      nextOffset?: int;
    } | void> {
      // flags: Api.Type;
      nextOffset?: int;
      CONSTRUCTOR_ID: 1611711796;
      SUBCLASS_OF_ID: 104866129;
      className: 'FoundStickersNotModified';

      static fromReader(reader: Reader): FoundStickersNotModified;
    }
    export class FoundStickers extends VirtualClass<{
      // flags: Api.Type;
      nextOffset?: int;
      hash: long;
      stickers: Api.TypeDocument[];
    }> {
      // flags: Api.Type;
      nextOffset?: int;
      hash: long;
      stickers: Api.TypeDocument[];
      CONSTRUCTOR_ID: 2194268816;
      SUBCLASS_OF_ID: 104866129;
      className: 'FoundStickers';

      static fromReader(reader: Reader): FoundStickers;
    }
    export class WebPagePreview extends VirtualClass<{
      media: Api.TypeMessageMedia;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      media: Api.TypeMessageMedia;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2358937772;
      SUBCLASS_OF_ID: 3801354434;
      className: 'WebPagePreview';

      static fromReader(reader: Reader): WebPagePreview;
    }
    export class EmojiGameOutcome extends VirtualClass<{
      seed: bytes;
      stakeTonAmount: long;
      tonAmount: long;
    }> {
      seed: bytes;
      stakeTonAmount: long;
      tonAmount: long;
      CONSTRUCTOR_ID: 3660240455;
      SUBCLASS_OF_ID: 251090281;
      className: 'EmojiGameOutcome';

      static fromReader(reader: Reader): EmojiGameOutcome;
    }
    export class EmojiGameUnavailable extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1508266805;
      SUBCLASS_OF_ID: 105590818;
      className: 'EmojiGameUnavailable';

      static fromReader(reader: Reader): EmojiGameUnavailable;
    }
    export class EmojiGameDiceInfo extends VirtualClass<{
      // flags: Api.Type;
      gameHash: string;
      prevStake: long;
      currentStreak: int;
      params: int[];
      playsLeft?: int;
    }> {
      // flags: Api.Type;
      gameHash: string;
      prevStake: long;
      currentStreak: int;
      params: int[];
      playsLeft?: int;
      CONSTRUCTOR_ID: 1155883043;
      SUBCLASS_OF_ID: 105590818;
      className: 'EmojiGameDiceInfo';

      static fromReader(reader: Reader): EmojiGameDiceInfo;
    }
    export class ComposedMessageWithAI extends VirtualClass<{
      // flags: Api.Type;
      resultText: Api.TypeTextWithEntities;
      diffText?: Api.TypeTextWithEntities;
    }> {
      // flags: Api.Type;
      resultText: Api.TypeTextWithEntities;
      diffText?: Api.TypeTextWithEntities;
      CONSTRUCTOR_ID: 2430053882;
      SUBCLASS_OF_ID: 336069599;
      className: 'ComposedMessageWithAI';

      static fromReader(reader: Reader): ComposedMessageWithAI;
    }
  }

  export namespace updates {
    export class State extends VirtualClass<{
      pts: int;
      qts: int;
      date: int;
      seq: int;
      unreadCount: int;
    }> {
      pts: int;
      qts: int;
      date: int;
      seq: int;
      unreadCount: int;
      CONSTRUCTOR_ID: 2775329342;
      SUBCLASS_OF_ID: 601823745;
      className: 'State';

      static fromReader(reader: Reader): State;
    }
    export class DifferenceEmpty extends VirtualClass<{
      date: int;
      seq: int;
    }> {
      date: int;
      seq: int;
      CONSTRUCTOR_ID: 1567990072;
      SUBCLASS_OF_ID: 541599860;
      className: 'DifferenceEmpty';

      static fromReader(reader: Reader): DifferenceEmpty;
    }
    export class Difference extends VirtualClass<{
      newMessages: Api.TypeMessage[];
      newEncryptedMessages: Api.TypeEncryptedMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      state: updates.TypeState;
    }> {
      newMessages: Api.TypeMessage[];
      newEncryptedMessages: Api.TypeEncryptedMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      state: updates.TypeState;
      CONSTRUCTOR_ID: 16030880;
      SUBCLASS_OF_ID: 541599860;
      className: 'Difference';

      static fromReader(reader: Reader): Difference;
    }
    export class DifferenceSlice extends VirtualClass<{
      newMessages: Api.TypeMessage[];
      newEncryptedMessages: Api.TypeEncryptedMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      intermediateState: updates.TypeState;
    }> {
      newMessages: Api.TypeMessage[];
      newEncryptedMessages: Api.TypeEncryptedMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      intermediateState: updates.TypeState;
      CONSTRUCTOR_ID: 2835028353;
      SUBCLASS_OF_ID: 541599860;
      className: 'DifferenceSlice';

      static fromReader(reader: Reader): DifferenceSlice;
    }
    export class DifferenceTooLong extends VirtualClass<{
      pts: int;
    }> {
      pts: int;
      CONSTRUCTOR_ID: 1258196845;
      SUBCLASS_OF_ID: 541599860;
      className: 'DifferenceTooLong';

      static fromReader(reader: Reader): DifferenceTooLong;
    }
    export class ChannelDifferenceEmpty extends VirtualClass<{
      // flags: Api.Type;
      final?: true;
      pts: int;
      timeout?: int;
    }> {
      // flags: Api.Type;
      final?: true;
      pts: int;
      timeout?: int;
      CONSTRUCTOR_ID: 1041346555;
      SUBCLASS_OF_ID: 696872797;
      className: 'ChannelDifferenceEmpty';

      static fromReader(reader: Reader): ChannelDifferenceEmpty;
    }
    export class ChannelDifferenceTooLong extends VirtualClass<{
      // flags: Api.Type;
      final?: true;
      timeout?: int;
      dialog: Api.TypeDialog;
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      final?: true;
      timeout?: int;
      dialog: Api.TypeDialog;
      messages: Api.TypeMessage[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2763835134;
      SUBCLASS_OF_ID: 696872797;
      className: 'ChannelDifferenceTooLong';

      static fromReader(reader: Reader): ChannelDifferenceTooLong;
    }
    export class ChannelDifference extends VirtualClass<{
      // flags: Api.Type;
      final?: true;
      pts: int;
      timeout?: int;
      newMessages: Api.TypeMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      final?: true;
      pts: int;
      timeout?: int;
      newMessages: Api.TypeMessage[];
      otherUpdates: Api.TypeUpdate[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 543450958;
      SUBCLASS_OF_ID: 696872797;
      className: 'ChannelDifference';

      static fromReader(reader: Reader): ChannelDifference;
    }
  }

  export namespace photos {
    export class Photos extends VirtualClass<{
      photos: Api.TypePhoto[];
      users: Api.TypeUser[];
    }> {
      photos: Api.TypePhoto[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2378853029;
      SUBCLASS_OF_ID: 667924839;
      className: 'Photos';

      static fromReader(reader: Reader): Photos;
    }
    export class PhotosSlice extends VirtualClass<{
      count: int;
      photos: Api.TypePhoto[];
      users: Api.TypeUser[];
    }> {
      count: int;
      photos: Api.TypePhoto[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 352657236;
      SUBCLASS_OF_ID: 667924839;
      className: 'PhotosSlice';

      static fromReader(reader: Reader): PhotosSlice;
    }
    export class Photo extends VirtualClass<{
      photo: Api.TypePhoto;
      users: Api.TypeUser[];
    }> {
      photo: Api.TypePhoto;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 539045032;
      SUBCLASS_OF_ID: 3264396580;
      className: 'Photo';

      static fromReader(reader: Reader): Photo;
    }
  }

  export namespace upload {
    export class File extends VirtualClass<{
      type: storage.TypeFileType;
      mtime: int;
      bytes: bytes;
    }> {
      type: storage.TypeFileType;
      mtime: int;
      bytes: bytes;
      CONSTRUCTOR_ID: 157948117;
      SUBCLASS_OF_ID: 1822152488;
      className: 'File';

      static fromReader(reader: Reader): File;
    }
    export class FileCdnRedirect extends VirtualClass<{
      dcId: int;
      fileToken: bytes;
      encryptionKey: bytes;
      encryptionIv: bytes;
      fileHashes: Api.TypeFileHash[];
    }> {
      dcId: int;
      fileToken: bytes;
      encryptionKey: bytes;
      encryptionIv: bytes;
      fileHashes: Api.TypeFileHash[];
      CONSTRUCTOR_ID: 4052539972;
      SUBCLASS_OF_ID: 1822152488;
      className: 'FileCdnRedirect';

      static fromReader(reader: Reader): FileCdnRedirect;
    }
    export class WebFile extends VirtualClass<{
      size: int;
      mimeType: string;
      fileType: storage.TypeFileType;
      mtime: int;
      bytes: bytes;
    }> {
      size: int;
      mimeType: string;
      fileType: storage.TypeFileType;
      mtime: int;
      bytes: bytes;
      CONSTRUCTOR_ID: 568808380;
      SUBCLASS_OF_ID: 1760657233;
      className: 'WebFile';

      static fromReader(reader: Reader): WebFile;
    }
    export class CdnFileReuploadNeeded extends VirtualClass<{
      requestToken: bytes;
    }> {
      requestToken: bytes;
      CONSTRUCTOR_ID: 4004045934;
      SUBCLASS_OF_ID: 4123851048;
      className: 'CdnFileReuploadNeeded';

      static fromReader(reader: Reader): CdnFileReuploadNeeded;
    }
    export class CdnFile extends VirtualClass<{
      bytes: bytes;
    }> {
      bytes: bytes;
      CONSTRUCTOR_ID: 2845821519;
      SUBCLASS_OF_ID: 4123851048;
      className: 'CdnFile';

      static fromReader(reader: Reader): CdnFile;
    }
  }

  export namespace help {
    export class AppUpdate extends VirtualClass<{
      // flags: Api.Type;
      canNotSkip?: true;
      id: int;
      version: string;
      text: string;
      entities: Api.TypeMessageEntity[];
      document?: Api.TypeDocument;
      url?: string;
      sticker?: Api.TypeDocument;
    }> {
      // flags: Api.Type;
      canNotSkip?: true;
      id: int;
      version: string;
      text: string;
      entities: Api.TypeMessageEntity[];
      document?: Api.TypeDocument;
      url?: string;
      sticker?: Api.TypeDocument;
      CONSTRUCTOR_ID: 3434860080;
      SUBCLASS_OF_ID: 1486292638;
      className: 'AppUpdate';

      static fromReader(reader: Reader): AppUpdate;
    }
    export class NoAppUpdate extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3294258486;
      SUBCLASS_OF_ID: 1486292638;
      className: 'NoAppUpdate';

      static fromReader(reader: Reader): NoAppUpdate;
    }
    export class InviteText extends VirtualClass<{
      message: string;
    }> {
      message: string;
      CONSTRUCTOR_ID: 415997816;
      SUBCLASS_OF_ID: 3480267317;
      className: 'InviteText';

      static fromReader(reader: Reader): InviteText;
    }
    export class Support extends VirtualClass<{
      phoneNumber: string;
      user: Api.TypeUser;
    }> {
      phoneNumber: string;
      user: Api.TypeUser;
      CONSTRUCTOR_ID: 398898678;
      SUBCLASS_OF_ID: 1901706475;
      className: 'Support';

      static fromReader(reader: Reader): Support;
    }
    export class TermsOfService extends VirtualClass<{
      // flags: Api.Type;
      popup?: true;
      id: Api.TypeDataJSON;
      text: string;
      entities: Api.TypeMessageEntity[];
      minAgeConfirm?: int;
    }> {
      // flags: Api.Type;
      popup?: true;
      id: Api.TypeDataJSON;
      text: string;
      entities: Api.TypeMessageEntity[];
      minAgeConfirm?: int;
      CONSTRUCTOR_ID: 2013922064;
      SUBCLASS_OF_ID: 552502034;
      className: 'TermsOfService';

      static fromReader(reader: Reader): TermsOfService;
    }
    export class RecentMeUrls extends VirtualClass<{
      urls: Api.TypeRecentMeUrl[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      urls: Api.TypeRecentMeUrl[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 235081943;
      SUBCLASS_OF_ID: 4067017847;
      className: 'RecentMeUrls';

      static fromReader(reader: Reader): RecentMeUrls;
    }
    export class TermsOfServiceUpdateEmpty extends VirtualClass<{
      expires: int;
    }> {
      expires: int;
      CONSTRUCTOR_ID: 3811614591;
      SUBCLASS_OF_ID: 691808631;
      className: 'TermsOfServiceUpdateEmpty';

      static fromReader(reader: Reader): TermsOfServiceUpdateEmpty;
    }
    export class TermsOfServiceUpdate extends VirtualClass<{
      expires: int;
      termsOfService: help.TypeTermsOfService;
    }> {
      expires: int;
      termsOfService: help.TypeTermsOfService;
      CONSTRUCTOR_ID: 686618977;
      SUBCLASS_OF_ID: 691808631;
      className: 'TermsOfServiceUpdate';

      static fromReader(reader: Reader): TermsOfServiceUpdate;
    }
    export class DeepLinkInfoEmpty extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1722786150;
      SUBCLASS_OF_ID: 2555030584;
      className: 'DeepLinkInfoEmpty';

      static fromReader(reader: Reader): DeepLinkInfoEmpty;
    }
    export class DeepLinkInfo extends VirtualClass<{
      // flags: Api.Type;
      updateApp?: true;
      message: string;
      entities?: Api.TypeMessageEntity[];
    }> {
      // flags: Api.Type;
      updateApp?: true;
      message: string;
      entities?: Api.TypeMessageEntity[];
      CONSTRUCTOR_ID: 1783556146;
      SUBCLASS_OF_ID: 2555030584;
      className: 'DeepLinkInfo';

      static fromReader(reader: Reader): DeepLinkInfo;
    }
    export class PassportConfigNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3216634967;
      SUBCLASS_OF_ID: 3328622765;
      className: 'PassportConfigNotModified';

      static fromReader(reader: Reader): PassportConfigNotModified;
    }
    export class PassportConfig extends VirtualClass<{
      hash: int;
      countriesLangs: Api.TypeDataJSON;
    }> {
      hash: int;
      countriesLangs: Api.TypeDataJSON;
      CONSTRUCTOR_ID: 2694370991;
      SUBCLASS_OF_ID: 3328622765;
      className: 'PassportConfig';

      static fromReader(reader: Reader): PassportConfig;
    }
    export class SupportName extends VirtualClass<{
      name: string;
    }> {
      name: string;
      CONSTRUCTOR_ID: 2349199817;
      SUBCLASS_OF_ID: 2135996354;
      className: 'SupportName';

      static fromReader(reader: Reader): SupportName;
    }
    export class UserInfoEmpty extends VirtualClass<void> {
      CONSTRUCTOR_ID: 4088278765;
      SUBCLASS_OF_ID: 1548998616;
      className: 'UserInfoEmpty';

      static fromReader(reader: Reader): UserInfoEmpty;
    }
    export class UserInfo extends VirtualClass<{
      message: string;
      entities: Api.TypeMessageEntity[];
      author: string;
      date: int;
    }> {
      message: string;
      entities: Api.TypeMessageEntity[];
      author: string;
      date: int;
      CONSTRUCTOR_ID: 32192344;
      SUBCLASS_OF_ID: 1548998616;
      className: 'UserInfo';

      static fromReader(reader: Reader): UserInfo;
    }
    export class PromoDataEmpty extends VirtualClass<{
      expires: int;
    }> {
      expires: int;
      CONSTRUCTOR_ID: 2566302837;
      SUBCLASS_OF_ID: 2639877442;
      className: 'PromoDataEmpty';

      static fromReader(reader: Reader): PromoDataEmpty;
    }
    export class PromoData extends VirtualClass<{
      // flags: Api.Type;
      proxy?: true;
      expires: int;
      peer?: Api.TypePeer;
      psaType?: string;
      psaMessage?: string;
      pendingSuggestions: string[];
      dismissedSuggestions: string[];
      customPendingSuggestion?: Api.TypePendingSuggestion;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      proxy?: true;
      expires: int;
      peer?: Api.TypePeer;
      psaType?: string;
      psaMessage?: string;
      pendingSuggestions: string[];
      dismissedSuggestions: string[];
      customPendingSuggestion?: Api.TypePendingSuggestion;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 145021050;
      SUBCLASS_OF_ID: 2639877442;
      className: 'PromoData';

      static fromReader(reader: Reader): PromoData;
    }
    export class CountryCode extends VirtualClass<{
      // flags: Api.Type;
      countryCode: string;
      prefixes?: string[];
      patterns?: string[];
    }> {
      // flags: Api.Type;
      countryCode: string;
      prefixes?: string[];
      patterns?: string[];
      CONSTRUCTOR_ID: 1107543535;
      SUBCLASS_OF_ID: 1995654757;
      className: 'CountryCode';

      static fromReader(reader: Reader): CountryCode;
    }
    export class Country extends VirtualClass<{
      // flags: Api.Type;
      hidden?: true;
      iso2: string;
      defaultName: string;
      name?: string;
      countryCodes: help.TypeCountryCode[];
    }> {
      // flags: Api.Type;
      hidden?: true;
      iso2: string;
      defaultName: string;
      name?: string;
      countryCodes: help.TypeCountryCode[];
      CONSTRUCTOR_ID: 3280440867;
      SUBCLASS_OF_ID: 2720964136;
      className: 'Country';

      static fromReader(reader: Reader): Country;
    }
    export class CountriesListNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2479628082;
      SUBCLASS_OF_ID: 3929144968;
      className: 'CountriesListNotModified';

      static fromReader(reader: Reader): CountriesListNotModified;
    }
    export class CountriesList extends VirtualClass<{
      countries: help.TypeCountry[];
      hash: int;
    }> {
      countries: help.TypeCountry[];
      hash: int;
      CONSTRUCTOR_ID: 2278585758;
      SUBCLASS_OF_ID: 3929144968;
      className: 'CountriesList';

      static fromReader(reader: Reader): CountriesList;
    }
    export class PremiumPromo extends VirtualClass<{
      statusText: string;
      statusEntities: Api.TypeMessageEntity[];
      videoSections: string[];
      videos: Api.TypeDocument[];
      periodOptions: Api.TypePremiumSubscriptionOption[];
      users: Api.TypeUser[];
    }> {
      statusText: string;
      statusEntities: Api.TypeMessageEntity[];
      videoSections: string[];
      videos: Api.TypeDocument[];
      periodOptions: Api.TypePremiumSubscriptionOption[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1395946908;
      SUBCLASS_OF_ID: 3381109560;
      className: 'PremiumPromo';

      static fromReader(reader: Reader): PremiumPromo;
    }
    export class AppConfigNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2094949405;
      SUBCLASS_OF_ID: 339221658;
      className: 'AppConfigNotModified';

      static fromReader(reader: Reader): AppConfigNotModified;
    }
    export class AppConfig extends VirtualClass<{
      hash: int;
      config: Api.TypeJSONValue;
    }> {
      hash: int;
      config: Api.TypeJSONValue;
      CONSTRUCTOR_ID: 3709368366;
      SUBCLASS_OF_ID: 339221658;
      className: 'AppConfig';

      static fromReader(reader: Reader): AppConfig;
    }
    export class PeerColorSet extends VirtualClass<{
      colors: int[];
    }> {
      colors: int[];
      CONSTRUCTOR_ID: 639736408;
      SUBCLASS_OF_ID: 298574124;
      className: 'PeerColorSet';

      static fromReader(reader: Reader): PeerColorSet;
    }
    export class PeerColorProfileSet extends VirtualClass<{
      paletteColors: int[];
      bgColors: int[];
      storyColors: int[];
    }> {
      paletteColors: int[];
      bgColors: int[];
      storyColors: int[];
      CONSTRUCTOR_ID: 1987928555;
      SUBCLASS_OF_ID: 298574124;
      className: 'PeerColorProfileSet';

      static fromReader(reader: Reader): PeerColorProfileSet;
    }
    export class PeerColorOption extends VirtualClass<{
      // flags: Api.Type;
      hidden?: true;
      colorId: int;
      colors?: help.TypePeerColorSet;
      darkColors?: help.TypePeerColorSet;
      channelMinLevel?: int;
      groupMinLevel?: int;
    }> {
      // flags: Api.Type;
      hidden?: true;
      colorId: int;
      colors?: help.TypePeerColorSet;
      darkColors?: help.TypePeerColorSet;
      channelMinLevel?: int;
      groupMinLevel?: int;
      CONSTRUCTOR_ID: 2917953214;
      SUBCLASS_OF_ID: 1454943896;
      className: 'PeerColorOption';

      static fromReader(reader: Reader): PeerColorOption;
    }
    export class PeerColorsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 732034510;
      SUBCLASS_OF_ID: 239036211;
      className: 'PeerColorsNotModified';

      static fromReader(reader: Reader): PeerColorsNotModified;
    }
    export class PeerColors extends VirtualClass<{
      hash: int;
      colors: help.TypePeerColorOption[];
    }> {
      hash: int;
      colors: help.TypePeerColorOption[];
      CONSTRUCTOR_ID: 16313608;
      SUBCLASS_OF_ID: 239036211;
      className: 'PeerColors';

      static fromReader(reader: Reader): PeerColors;
    }
    export class TimezonesListNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2533820620;
      SUBCLASS_OF_ID: 3396789365;
      className: 'TimezonesListNotModified';

      static fromReader(reader: Reader): TimezonesListNotModified;
    }
    export class TimezonesList extends VirtualClass<{
      timezones: Api.TypeTimezone[];
      hash: int;
    }> {
      timezones: Api.TypeTimezone[];
      hash: int;
      CONSTRUCTOR_ID: 2071260529;
      SUBCLASS_OF_ID: 3396789365;
      className: 'TimezonesList';

      static fromReader(reader: Reader): TimezonesList;
    }
    export class ConfigSimple extends VirtualClass<{
      date: int;
      expires: int;
      rules: Api.TypeAccessPointRule[];
    }> {
      date: int;
      expires: int;
      rules: Api.TypeAccessPointRule[];
      CONSTRUCTOR_ID: 1515793004;
      SUBCLASS_OF_ID: 689453764;
      className: 'ConfigSimple';

      static fromReader(reader: Reader): ConfigSimple;
    }
  }

  export namespace account {
    export class PrivacyRules extends VirtualClass<{
      rules: Api.TypePrivacyRule[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      rules: Api.TypePrivacyRule[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1352683077;
      SUBCLASS_OF_ID: 3042622082;
      className: 'PrivacyRules';

      static fromReader(reader: Reader): PrivacyRules;
    }
    export class Authorizations extends VirtualClass<{
      authorizationTtlDays: int;
      authorizations: Api.TypeAuthorization[];
    }> {
      authorizationTtlDays: int;
      authorizations: Api.TypeAuthorization[];
      CONSTRUCTOR_ID: 1275039392;
      SUBCLASS_OF_ID: 200663295;
      className: 'Authorizations';

      static fromReader(reader: Reader): Authorizations;
    }
    export class Password extends VirtualClass<{
      // flags: Api.Type;
      hasRecovery?: true;
      hasSecureValues?: true;
      hasPassword?: true;
      currentAlgo?: Api.TypePasswordKdfAlgo;
      srp_B?: bytes;
      srpId?: long;
      hint?: string;
      emailUnconfirmedPattern?: string;
      newAlgo: Api.TypePasswordKdfAlgo;
      newSecureAlgo: Api.TypeSecurePasswordKdfAlgo;
      secureRandom: bytes;
      pendingResetDate?: int;
      loginEmailPattern?: string;
    }> {
      // flags: Api.Type;
      hasRecovery?: true;
      hasSecureValues?: true;
      hasPassword?: true;
      currentAlgo?: Api.TypePasswordKdfAlgo;
      srp_B?: bytes;
      srpId?: long;
      hint?: string;
      emailUnconfirmedPattern?: string;
      newAlgo: Api.TypePasswordKdfAlgo;
      newSecureAlgo: Api.TypeSecurePasswordKdfAlgo;
      secureRandom: bytes;
      pendingResetDate?: int;
      loginEmailPattern?: string;
      CONSTRUCTOR_ID: 2507886843;
      SUBCLASS_OF_ID: 1403130275;
      className: 'Password';

      static fromReader(reader: Reader): Password;
    }
    export class PasswordSettings extends VirtualClass<{
      // flags: Api.Type;
      email?: string;
      secureSettings?: Api.TypeSecureSecretSettings;
    } | void> {
      // flags: Api.Type;
      email?: string;
      secureSettings?: Api.TypeSecureSecretSettings;
      CONSTRUCTOR_ID: 2589733861;
      SUBCLASS_OF_ID: 3527389304;
      className: 'PasswordSettings';

      static fromReader(reader: Reader): PasswordSettings;
    }
    export class PasswordInputSettings extends VirtualClass<{
      // flags: Api.Type;
      newAlgo?: Api.TypePasswordKdfAlgo;
      newPasswordHash?: bytes;
      hint?: string;
      email?: string;
      newSecureSettings?: Api.TypeSecureSecretSettings;
    } | void> {
      // flags: Api.Type;
      newAlgo?: Api.TypePasswordKdfAlgo;
      newPasswordHash?: bytes;
      hint?: string;
      email?: string;
      newSecureSettings?: Api.TypeSecureSecretSettings;
      CONSTRUCTOR_ID: 3258394569;
      SUBCLASS_OF_ID: 205679782;
      className: 'PasswordInputSettings';

      static fromReader(reader: Reader): PasswordInputSettings;
    }
    export class TmpPassword extends VirtualClass<{
      tmpPassword: bytes;
      validUntil: int;
    }> {
      tmpPassword: bytes;
      validUntil: int;
      CONSTRUCTOR_ID: 3680828724;
      SUBCLASS_OF_ID: 2959382829;
      className: 'TmpPassword';

      static fromReader(reader: Reader): TmpPassword;
    }
    export class WebAuthorizations extends VirtualClass<{
      authorizations: Api.TypeWebAuthorization[];
      users: Api.TypeUser[];
    }> {
      authorizations: Api.TypeWebAuthorization[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3981887996;
      SUBCLASS_OF_ID: 2587253554;
      className: 'WebAuthorizations';

      static fromReader(reader: Reader): WebAuthorizations;
    }
    export class AuthorizationForm extends VirtualClass<{
      // flags: Api.Type;
      requiredTypes: Api.TypeSecureRequiredType[];
      values: Api.TypeSecureValue[];
      errors: Api.TypeSecureValueError[];
      users: Api.TypeUser[];
      privacyPolicyUrl?: string;
    }> {
      // flags: Api.Type;
      requiredTypes: Api.TypeSecureRequiredType[];
      values: Api.TypeSecureValue[];
      errors: Api.TypeSecureValueError[];
      users: Api.TypeUser[];
      privacyPolicyUrl?: string;
      CONSTRUCTOR_ID: 2905480408;
      SUBCLASS_OF_ID: 2013567636;
      className: 'AuthorizationForm';

      static fromReader(reader: Reader): AuthorizationForm;
    }
    export class SentEmailCode extends VirtualClass<{
      emailPattern: string;
      length: int;
    }> {
      emailPattern: string;
      length: int;
      CONSTRUCTOR_ID: 2166326607;
      SUBCLASS_OF_ID: 1777582190;
      className: 'SentEmailCode';

      static fromReader(reader: Reader): SentEmailCode;
    }
    export class Takeout extends VirtualClass<{
      id: long;
    }> {
      id: long;
      CONSTRUCTOR_ID: 1304052993;
      SUBCLASS_OF_ID: 2218704517;
      className: 'Takeout';

      static fromReader(reader: Reader): Takeout;
    }
    export class WallPapersNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 471437699;
      SUBCLASS_OF_ID: 2730838269;
      className: 'WallPapersNotModified';

      static fromReader(reader: Reader): WallPapersNotModified;
    }
    export class WallPapers extends VirtualClass<{
      hash: long;
      wallpapers: Api.TypeWallPaper[];
    }> {
      hash: long;
      wallpapers: Api.TypeWallPaper[];
      CONSTRUCTOR_ID: 3452142988;
      SUBCLASS_OF_ID: 2730838269;
      className: 'WallPapers';

      static fromReader(reader: Reader): WallPapers;
    }
    export class AutoDownloadSettings extends VirtualClass<{
      low: Api.TypeAutoDownloadSettings;
      medium: Api.TypeAutoDownloadSettings;
      high: Api.TypeAutoDownloadSettings;
    }> {
      low: Api.TypeAutoDownloadSettings;
      medium: Api.TypeAutoDownloadSettings;
      high: Api.TypeAutoDownloadSettings;
      CONSTRUCTOR_ID: 1674235686;
      SUBCLASS_OF_ID: 800610593;
      className: 'AutoDownloadSettings';

      static fromReader(reader: Reader): AutoDownloadSettings;
    }
    export class ThemesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 4095653410;
      SUBCLASS_OF_ID: 2143625732;
      className: 'ThemesNotModified';

      static fromReader(reader: Reader): ThemesNotModified;
    }
    export class Themes extends VirtualClass<{
      hash: long;
      themes: Api.TypeTheme[];
    }> {
      hash: long;
      themes: Api.TypeTheme[];
      CONSTRUCTOR_ID: 2587724909;
      SUBCLASS_OF_ID: 2143625732;
      className: 'Themes';

      static fromReader(reader: Reader): Themes;
    }
    export class ContentSettings extends VirtualClass<{
      // flags: Api.Type;
      sensitiveEnabled?: true;
      sensitiveCanChange?: true;
    } | void> {
      // flags: Api.Type;
      sensitiveEnabled?: true;
      sensitiveCanChange?: true;
      CONSTRUCTOR_ID: 1474462241;
      SUBCLASS_OF_ID: 2923427985;
      className: 'ContentSettings';

      static fromReader(reader: Reader): ContentSettings;
    }
    export class ResetPasswordFailedWait extends VirtualClass<{
      retryDate: int;
    }> {
      retryDate: int;
      CONSTRUCTOR_ID: 3816265825;
      SUBCLASS_OF_ID: 1230009366;
      className: 'ResetPasswordFailedWait';

      static fromReader(reader: Reader): ResetPasswordFailedWait;
    }
    export class ResetPasswordRequestedWait extends VirtualClass<{
      untilDate: int;
    }> {
      untilDate: int;
      CONSTRUCTOR_ID: 3924819069;
      SUBCLASS_OF_ID: 1230009366;
      className: 'ResetPasswordRequestedWait';

      static fromReader(reader: Reader): ResetPasswordRequestedWait;
    }
    export class ResetPasswordOk extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3911636542;
      SUBCLASS_OF_ID: 1230009366;
      className: 'ResetPasswordOk';

      static fromReader(reader: Reader): ResetPasswordOk;
    }
    export class ChatThemesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3759268292;
      SUBCLASS_OF_ID: 364989096;
      className: 'ChatThemesNotModified';

      static fromReader(reader: Reader): ChatThemesNotModified;
    }
    export class ChatThemes extends VirtualClass<{
      // flags: Api.Type;
      hash: long;
      themes: Api.TypeChatTheme[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      hash: long;
      themes: Api.TypeChatTheme[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 3188294003;
      SUBCLASS_OF_ID: 364989096;
      className: 'ChatThemes';

      static fromReader(reader: Reader): ChatThemes;
    }
    export class SavedRingtonesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 4227262641;
      SUBCLASS_OF_ID: 666683742;
      className: 'SavedRingtonesNotModified';

      static fromReader(reader: Reader): SavedRingtonesNotModified;
    }
    export class SavedRingtones extends VirtualClass<{
      hash: long;
      ringtones: Api.TypeDocument[];
    }> {
      hash: long;
      ringtones: Api.TypeDocument[];
      CONSTRUCTOR_ID: 3253284037;
      SUBCLASS_OF_ID: 666683742;
      className: 'SavedRingtones';

      static fromReader(reader: Reader): SavedRingtones;
    }
    export class SavedRingtone extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3072737133;
      SUBCLASS_OF_ID: 2984412196;
      className: 'SavedRingtone';

      static fromReader(reader: Reader): SavedRingtone;
    }
    export class SavedRingtoneConverted extends VirtualClass<{
      document: Api.TypeDocument;
    }> {
      document: Api.TypeDocument;
      CONSTRUCTOR_ID: 523271863;
      SUBCLASS_OF_ID: 2984412196;
      className: 'SavedRingtoneConverted';

      static fromReader(reader: Reader): SavedRingtoneConverted;
    }
    export class EmojiStatusesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3498894917;
      SUBCLASS_OF_ID: 3554674122;
      className: 'EmojiStatusesNotModified';

      static fromReader(reader: Reader): EmojiStatusesNotModified;
    }
    export class EmojiStatuses extends VirtualClass<{
      hash: long;
      statuses: Api.TypeEmojiStatus[];
    }> {
      hash: long;
      statuses: Api.TypeEmojiStatus[];
      CONSTRUCTOR_ID: 2428790737;
      SUBCLASS_OF_ID: 3554674122;
      className: 'EmojiStatuses';

      static fromReader(reader: Reader): EmojiStatuses;
    }
    export class EmailVerified extends VirtualClass<{
      email: string;
    }> {
      email: string;
      CONSTRUCTOR_ID: 731303195;
      SUBCLASS_OF_ID: 1686319496;
      className: 'EmailVerified';

      static fromReader(reader: Reader): EmailVerified;
    }
    export class EmailVerifiedLogin extends VirtualClass<{
      email: string;
      sentCode: auth.TypeSentCode;
    }> {
      email: string;
      sentCode: auth.TypeSentCode;
      CONSTRUCTOR_ID: 3787132257;
      SUBCLASS_OF_ID: 1686319496;
      className: 'EmailVerifiedLogin';

      static fromReader(reader: Reader): EmailVerifiedLogin;
    }
    export class AutoSaveSettings extends VirtualClass<{
      usersSettings: Api.TypeAutoSaveSettings;
      chatsSettings: Api.TypeAutoSaveSettings;
      broadcastsSettings: Api.TypeAutoSaveSettings;
      exceptions: Api.TypeAutoSaveException[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      usersSettings: Api.TypeAutoSaveSettings;
      chatsSettings: Api.TypeAutoSaveSettings;
      broadcastsSettings: Api.TypeAutoSaveSettings;
      exceptions: Api.TypeAutoSaveException[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1279133341;
      SUBCLASS_OF_ID: 1221537538;
      className: 'AutoSaveSettings';

      static fromReader(reader: Reader): AutoSaveSettings;
    }
    export class ConnectedBots extends VirtualClass<{
      connectedBots: Api.TypeConnectedBot[];
      users: Api.TypeUser[];
    }> {
      connectedBots: Api.TypeConnectedBot[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 400029819;
      SUBCLASS_OF_ID: 3838506963;
      className: 'ConnectedBots';

      static fromReader(reader: Reader): ConnectedBots;
    }
    export class BusinessChatLinks extends VirtualClass<{
      links: Api.TypeBusinessChatLink[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      links: Api.TypeBusinessChatLink[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3963855569;
      SUBCLASS_OF_ID: 3334097457;
      className: 'BusinessChatLinks';

      static fromReader(reader: Reader): BusinessChatLinks;
    }
    export class ResolvedBusinessChatLinks extends VirtualClass<{
      // flags: Api.Type;
      peer: Api.TypePeer;
      message: string;
      entities?: Api.TypeMessageEntity[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      peer: Api.TypePeer;
      message: string;
      entities?: Api.TypeMessageEntity[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2586029857;
      SUBCLASS_OF_ID: 980888616;
      className: 'ResolvedBusinessChatLinks';

      static fromReader(reader: Reader): ResolvedBusinessChatLinks;
    }
    export class PaidMessagesRevenue extends VirtualClass<{
      starsAmount: long;
    }> {
      starsAmount: long;
      CONSTRUCTOR_ID: 504403720;
      SUBCLASS_OF_ID: 355404887;
      className: 'PaidMessagesRevenue';

      static fromReader(reader: Reader): PaidMessagesRevenue;
    }
    export class SavedMusicIdsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1338514798;
      SUBCLASS_OF_ID: 1263203986;
      className: 'SavedMusicIdsNotModified';

      static fromReader(reader: Reader): SavedMusicIdsNotModified;
    }
    export class SavedMusicIds extends VirtualClass<{
      ids: long[];
    }> {
      ids: long[];
      CONSTRUCTOR_ID: 2576180790;
      SUBCLASS_OF_ID: 1263203986;
      className: 'SavedMusicIds';

      static fromReader(reader: Reader): SavedMusicIds;
    }
    export class Passkeys extends VirtualClass<{
      passkeys: Api.TypePasskey[];
    }> {
      passkeys: Api.TypePasskey[];
      CONSTRUCTOR_ID: 4175473180;
      SUBCLASS_OF_ID: 618471518;
      className: 'Passkeys';

      static fromReader(reader: Reader): Passkeys;
    }
    export class PasskeyRegistrationOptions extends VirtualClass<{
      options: Api.TypeDataJSON;
    }> {
      options: Api.TypeDataJSON;
      CONSTRUCTOR_ID: 3781909729;
      SUBCLASS_OF_ID: 874349540;
      className: 'PasskeyRegistrationOptions';

      static fromReader(reader: Reader): PasskeyRegistrationOptions;
    }
  }

  export namespace channels {
    export class ChannelParticipants extends VirtualClass<{
      count: int;
      participants: Api.TypeChannelParticipant[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      count: int;
      participants: Api.TypeChannelParticipant[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2595290799;
      SUBCLASS_OF_ID: 3859443300;
      className: 'ChannelParticipants';

      static fromReader(reader: Reader): ChannelParticipants;
    }
    export class ChannelParticipantsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 4028055529;
      SUBCLASS_OF_ID: 3859443300;
      className: 'ChannelParticipantsNotModified';

      static fromReader(reader: Reader): ChannelParticipantsNotModified;
    }
    export class ChannelParticipant extends VirtualClass<{
      participant: Api.TypeChannelParticipant;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      participant: Api.TypeChannelParticipant;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3753378583;
      SUBCLASS_OF_ID: 1717048602;
      className: 'ChannelParticipant';

      static fromReader(reader: Reader): ChannelParticipant;
    }
    export class AdminLogResults extends VirtualClass<{
      events: Api.TypeChannelAdminLogEvent[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      events: Api.TypeChannelAdminLogEvent[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3985307469;
      SUBCLASS_OF_ID: 1374713532;
      className: 'AdminLogResults';

      static fromReader(reader: Reader): AdminLogResults;
    }
    export class SendAsPeers extends VirtualClass<{
      peers: Api.TypeSendAsPeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      peers: Api.TypeSendAsPeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4103516358;
      SUBCLASS_OF_ID: 952864033;
      className: 'SendAsPeers';

      static fromReader(reader: Reader): SendAsPeers;
    }
    export class SponsoredMessageReportResultChooseOption extends VirtualClass<{
      title: string;
      options: Api.TypeSponsoredMessageReportOption[];
    }> {
      title: string;
      options: Api.TypeSponsoredMessageReportOption[];
      CONSTRUCTOR_ID: 2221907522;
      SUBCLASS_OF_ID: 639834146;
      className: 'SponsoredMessageReportResultChooseOption';

      static fromReader(reader: Reader): SponsoredMessageReportResultChooseOption;
    }
    export class SponsoredMessageReportResultAdsHidden extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1044107055;
      SUBCLASS_OF_ID: 639834146;
      className: 'SponsoredMessageReportResultAdsHidden';

      static fromReader(reader: Reader): SponsoredMessageReportResultAdsHidden;
    }
    export class SponsoredMessageReportResultReported extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2910423113;
      SUBCLASS_OF_ID: 639834146;
      className: 'SponsoredMessageReportResultReported';

      static fromReader(reader: Reader): SponsoredMessageReportResultReported;
    }
  }

  export namespace payments {
    export class PaymentForm extends VirtualClass<{
      // flags: Api.Type;
      canSaveCredentials?: true;
      passwordMissing?: true;
      formId: long;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      providerId: long;
      url: string;
      nativeProvider?: string;
      nativeParams?: Api.TypeDataJSON;
      additionalMethods?: Api.TypePaymentFormMethod[];
      savedInfo?: Api.TypePaymentRequestedInfo;
      savedCredentials?: Api.TypePaymentSavedCredentials[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      canSaveCredentials?: true;
      passwordMissing?: true;
      formId: long;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      providerId: long;
      url: string;
      nativeProvider?: string;
      nativeParams?: Api.TypeDataJSON;
      additionalMethods?: Api.TypePaymentFormMethod[];
      savedInfo?: Api.TypePaymentRequestedInfo;
      savedCredentials?: Api.TypePaymentSavedCredentials[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2684716881;
      SUBCLASS_OF_ID: 2689089305;
      className: 'PaymentForm';

      static fromReader(reader: Reader): PaymentForm;
    }
    export class PaymentFormStars extends VirtualClass<{
      // flags: Api.Type;
      formId: long;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      formId: long;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2079764828;
      SUBCLASS_OF_ID: 2689089305;
      className: 'PaymentFormStars';

      static fromReader(reader: Reader): PaymentFormStars;
    }
    export class PaymentFormStarGift extends VirtualClass<{
      formId: long;
      invoice: Api.TypeInvoice;
    }> {
      formId: long;
      invoice: Api.TypeInvoice;
      CONSTRUCTOR_ID: 3022376929;
      SUBCLASS_OF_ID: 2689089305;
      className: 'PaymentFormStarGift';

      static fromReader(reader: Reader): PaymentFormStarGift;
    }
    export class ValidatedRequestedInfo extends VirtualClass<{
      // flags: Api.Type;
      id?: string;
      shippingOptions?: Api.TypeShippingOption[];
    } | void> {
      // flags: Api.Type;
      id?: string;
      shippingOptions?: Api.TypeShippingOption[];
      CONSTRUCTOR_ID: 3510966403;
      SUBCLASS_OF_ID: 2407548087;
      className: 'ValidatedRequestedInfo';

      static fromReader(reader: Reader): ValidatedRequestedInfo;
    }
    export class PaymentResult extends VirtualClass<{
      updates: Api.TypeUpdates;
    }> {
      updates: Api.TypeUpdates;
      CONSTRUCTOR_ID: 1314881805;
      SUBCLASS_OF_ID: 2330028701;
      className: 'PaymentResult';

      static fromReader(reader: Reader): PaymentResult;
    }
    export class PaymentVerificationNeeded extends VirtualClass<{
      url: string;
    }> {
      url: string;
      CONSTRUCTOR_ID: 3628142905;
      SUBCLASS_OF_ID: 2330028701;
      className: 'PaymentVerificationNeeded';

      static fromReader(reader: Reader): PaymentVerificationNeeded;
    }
    export class PaymentReceipt extends VirtualClass<{
      // flags: Api.Type;
      date: int;
      botId: long;
      providerId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      info?: Api.TypePaymentRequestedInfo;
      shipping?: Api.TypeShippingOption;
      tipAmount?: long;
      currency: string;
      totalAmount: long;
      credentialsTitle: string;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      date: int;
      botId: long;
      providerId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      info?: Api.TypePaymentRequestedInfo;
      shipping?: Api.TypeShippingOption;
      tipAmount?: long;
      currency: string;
      totalAmount: long;
      credentialsTitle: string;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1891958275;
      SUBCLASS_OF_ID: 1493210057;
      className: 'PaymentReceipt';

      static fromReader(reader: Reader): PaymentReceipt;
    }
    export class PaymentReceiptStars extends VirtualClass<{
      // flags: Api.Type;
      date: int;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      currency: string;
      totalAmount: long;
      transactionId: string;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      date: int;
      botId: long;
      title: string;
      description: string;
      photo?: Api.TypeWebDocument;
      invoice: Api.TypeInvoice;
      currency: string;
      totalAmount: long;
      transactionId: string;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3669751866;
      SUBCLASS_OF_ID: 1493210057;
      className: 'PaymentReceiptStars';

      static fromReader(reader: Reader): PaymentReceiptStars;
    }
    export class SavedInfo extends VirtualClass<{
      // flags: Api.Type;
      hasSavedCredentials?: true;
      savedInfo?: Api.TypePaymentRequestedInfo;
    } | void> {
      // flags: Api.Type;
      hasSavedCredentials?: true;
      savedInfo?: Api.TypePaymentRequestedInfo;
      CONSTRUCTOR_ID: 4220511292;
      SUBCLASS_OF_ID: 2906452294;
      className: 'SavedInfo';

      static fromReader(reader: Reader): SavedInfo;
    }
    export class BankCardData extends VirtualClass<{
      title: string;
      openUrls: Api.TypeBankCardOpenUrl[];
    }> {
      title: string;
      openUrls: Api.TypeBankCardOpenUrl[];
      CONSTRUCTOR_ID: 1042605427;
      SUBCLASS_OF_ID: 2356008587;
      className: 'BankCardData';

      static fromReader(reader: Reader): BankCardData;
    }
    export class ExportedInvoice extends VirtualClass<{
      url: string;
    }> {
      url: string;
      CONSTRUCTOR_ID: 2932919257;
      SUBCLASS_OF_ID: 907039794;
      className: 'ExportedInvoice';

      static fromReader(reader: Reader): ExportedInvoice;
    }
    export class CheckedGiftCode extends VirtualClass<{
      // flags: Api.Type;
      viaGiveaway?: true;
      fromId?: Api.TypePeer;
      giveawayMsgId?: int;
      toId?: long;
      date: int;
      days: int;
      usedDate?: int;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      viaGiveaway?: true;
      fromId?: Api.TypePeer;
      giveawayMsgId?: int;
      toId?: long;
      date: int;
      days: int;
      usedDate?: int;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3952623503;
      SUBCLASS_OF_ID: 1529452520;
      className: 'CheckedGiftCode';

      static fromReader(reader: Reader): CheckedGiftCode;
    }
    export class GiveawayInfo extends VirtualClass<{
      // flags: Api.Type;
      participating?: true;
      preparingResults?: true;
      startDate: int;
      joinedTooEarlyDate?: int;
      adminDisallowedChatId?: long;
      disallowedCountry?: string;
    }> {
      // flags: Api.Type;
      participating?: true;
      preparingResults?: true;
      startDate: int;
      joinedTooEarlyDate?: int;
      adminDisallowedChatId?: long;
      disallowedCountry?: string;
      CONSTRUCTOR_ID: 1130879648;
      SUBCLASS_OF_ID: 2527295421;
      className: 'GiveawayInfo';

      static fromReader(reader: Reader): GiveawayInfo;
    }
    export class GiveawayInfoResults extends VirtualClass<{
      // flags: Api.Type;
      winner?: true;
      refunded?: true;
      startDate: int;
      giftCodeSlug?: string;
      starsPrize?: long;
      finishDate: int;
      winnersCount: int;
      activatedCount?: int;
    }> {
      // flags: Api.Type;
      winner?: true;
      refunded?: true;
      startDate: int;
      giftCodeSlug?: string;
      starsPrize?: long;
      finishDate: int;
      winnersCount: int;
      activatedCount?: int;
      CONSTRUCTOR_ID: 3782600303;
      SUBCLASS_OF_ID: 2527295421;
      className: 'GiveawayInfoResults';

      static fromReader(reader: Reader): GiveawayInfoResults;
    }
    export class StarsStatus extends VirtualClass<{
      // flags: Api.Type;
      balance: Api.TypeStarsAmount;
      subscriptions?: Api.TypeStarsSubscription[];
      subscriptionsNextOffset?: string;
      subscriptionsMissingBalance?: long;
      history?: Api.TypeStarsTransaction[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      balance: Api.TypeStarsAmount;
      subscriptions?: Api.TypeStarsSubscription[];
      subscriptionsNextOffset?: string;
      subscriptionsMissingBalance?: long;
      history?: Api.TypeStarsTransaction[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1822222573;
      SUBCLASS_OF_ID: 1855724911;
      className: 'StarsStatus';

      static fromReader(reader: Reader): StarsStatus;
    }
    export class StarsRevenueStats extends VirtualClass<{
      // flags: Api.Type;
      topHoursGraph?: Api.TypeStatsGraph;
      revenueGraph: Api.TypeStatsGraph;
      status: Api.TypeStarsRevenueStatus;
      usdRate: double;
    }> {
      // flags: Api.Type;
      topHoursGraph?: Api.TypeStatsGraph;
      revenueGraph: Api.TypeStatsGraph;
      status: Api.TypeStarsRevenueStatus;
      usdRate: double;
      CONSTRUCTOR_ID: 1814066038;
      SUBCLASS_OF_ID: 2772915699;
      className: 'StarsRevenueStats';

      static fromReader(reader: Reader): StarsRevenueStats;
    }
    export class StarsRevenueWithdrawalUrl extends VirtualClass<{
      url: string;
    }> {
      url: string;
      CONSTRUCTOR_ID: 497778871;
      SUBCLASS_OF_ID: 2221318382;
      className: 'StarsRevenueWithdrawalUrl';

      static fromReader(reader: Reader): StarsRevenueWithdrawalUrl;
    }
    export class StarsRevenueAdsAccountUrl extends VirtualClass<{
      url: string;
    }> {
      url: string;
      CONSTRUCTOR_ID: 961445665;
      SUBCLASS_OF_ID: 1243777813;
      className: 'StarsRevenueAdsAccountUrl';

      static fromReader(reader: Reader): StarsRevenueAdsAccountUrl;
    }
    export class StarGiftsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2743640936;
      SUBCLASS_OF_ID: 1635309988;
      className: 'StarGiftsNotModified';

      static fromReader(reader: Reader): StarGiftsNotModified;
    }
    export class StarGifts extends VirtualClass<{
      hash: int;
      gifts: Api.TypeStarGift[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      hash: int;
      gifts: Api.TypeStarGift[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 785918357;
      SUBCLASS_OF_ID: 1635309988;
      className: 'StarGifts';

      static fromReader(reader: Reader): StarGifts;
    }
    export class ConnectedStarRefBots extends VirtualClass<{
      count: int;
      connectedBots: Api.TypeConnectedBotStarRef[];
      users: Api.TypeUser[];
    }> {
      count: int;
      connectedBots: Api.TypeConnectedBotStarRef[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2564155933;
      SUBCLASS_OF_ID: 593369703;
      className: 'ConnectedStarRefBots';

      static fromReader(reader: Reader): ConnectedStarRefBots;
    }
    export class SuggestedStarRefBots extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      suggestedBots: Api.TypeStarRefProgram[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      count: int;
      suggestedBots: Api.TypeStarRefProgram[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 3033913433;
      SUBCLASS_OF_ID: 1880658499;
      className: 'SuggestedStarRefBots';

      static fromReader(reader: Reader): SuggestedStarRefBots;
    }
    export class StarGiftUpgradePreview extends VirtualClass<{
      sampleAttributes: Api.TypeStarGiftAttribute[];
      prices: Api.TypeStarGiftUpgradePrice[];
      nextPrices: Api.TypeStarGiftUpgradePrice[];
    }> {
      sampleAttributes: Api.TypeStarGiftAttribute[];
      prices: Api.TypeStarGiftUpgradePrice[];
      nextPrices: Api.TypeStarGiftUpgradePrice[];
      CONSTRUCTOR_ID: 1038213101;
      SUBCLASS_OF_ID: 1579903175;
      className: 'StarGiftUpgradePreview';

      static fromReader(reader: Reader): StarGiftUpgradePreview;
    }
    export class UniqueStarGift extends VirtualClass<{
      gift: Api.TypeStarGift;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      gift: Api.TypeStarGift;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1097619176;
      SUBCLASS_OF_ID: 2024850939;
      className: 'UniqueStarGift';

      static fromReader(reader: Reader): UniqueStarGift;
    }
    export class SavedStarGifts extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      chatNotificationsEnabled?: Bool;
      gifts: Api.TypeSavedStarGift[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      chatNotificationsEnabled?: Bool;
      gifts: Api.TypeSavedStarGift[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2515765681;
      SUBCLASS_OF_ID: 3574671511;
      className: 'SavedStarGifts';

      static fromReader(reader: Reader): SavedStarGifts;
    }
    export class StarGiftWithdrawalUrl extends VirtualClass<{
      url: string;
    }> {
      url: string;
      CONSTRUCTOR_ID: 2225748636;
      SUBCLASS_OF_ID: 2726440389;
      className: 'StarGiftWithdrawalUrl';

      static fromReader(reader: Reader): StarGiftWithdrawalUrl;
    }
    export class ResaleStarGifts extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      gifts: Api.TypeStarGift[];
      nextOffset?: string;
      attributes?: Api.TypeStarGiftAttribute[];
      attributesHash?: long;
      chats: Api.TypeChat[];
      counters?: Api.TypeStarGiftAttributeCounter[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      gifts: Api.TypeStarGift[];
      nextOffset?: string;
      attributes?: Api.TypeStarGiftAttribute[];
      attributesHash?: long;
      chats: Api.TypeChat[];
      counters?: Api.TypeStarGiftAttributeCounter[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2491028191;
      SUBCLASS_OF_ID: 3000743907;
      className: 'ResaleStarGifts';

      static fromReader(reader: Reader): ResaleStarGifts;
    }
    export class StarGiftCollectionsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 2696564503;
      SUBCLASS_OF_ID: 4028047852;
      className: 'StarGiftCollectionsNotModified';

      static fromReader(reader: Reader): StarGiftCollectionsNotModified;
    }
    export class StarGiftCollections extends VirtualClass<{
      collections: Api.TypeStarGiftCollection[];
    }> {
      collections: Api.TypeStarGiftCollection[];
      CONSTRUCTOR_ID: 2317955827;
      SUBCLASS_OF_ID: 4028047852;
      className: 'StarGiftCollections';

      static fromReader(reader: Reader): StarGiftCollections;
    }
    export class UniqueStarGiftValueInfo extends VirtualClass<{
      // flags: Api.Type;
      lastSaleOnFragment?: true;
      valueIsAverage?: true;
      currency: string;
      value: long;
      initialSaleDate: int;
      initialSaleStars: long;
      initialSalePrice: long;
      lastSaleDate?: int;
      lastSalePrice?: long;
      floorPrice?: long;
      averagePrice?: long;
      listedCount?: int;
      fragmentListedCount?: int;
      fragmentListedUrl?: string;
    }> {
      // flags: Api.Type;
      lastSaleOnFragment?: true;
      valueIsAverage?: true;
      currency: string;
      value: long;
      initialSaleDate: int;
      initialSaleStars: long;
      initialSalePrice: long;
      lastSaleDate?: int;
      lastSalePrice?: long;
      floorPrice?: long;
      averagePrice?: long;
      listedCount?: int;
      fragmentListedCount?: int;
      fragmentListedUrl?: string;
      CONSTRUCTOR_ID: 1362093126;
      SUBCLASS_OF_ID: 372595652;
      className: 'UniqueStarGiftValueInfo';

      static fromReader(reader: Reader): UniqueStarGiftValueInfo;
    }
    export class CheckCanSendGiftResultOk extends VirtualClass<void> {
      CONSTRUCTOR_ID: 927967149;
      SUBCLASS_OF_ID: 1664023088;
      className: 'CheckCanSendGiftResultOk';

      static fromReader(reader: Reader): CheckCanSendGiftResultOk;
    }
    export class CheckCanSendGiftResultFail extends VirtualClass<{
      reason: Api.TypeTextWithEntities;
    }> {
      reason: Api.TypeTextWithEntities;
      CONSTRUCTOR_ID: 3588588148;
      SUBCLASS_OF_ID: 1664023088;
      className: 'CheckCanSendGiftResultFail';

      static fromReader(reader: Reader): CheckCanSendGiftResultFail;
    }
    export class StarGiftAuctionState extends VirtualClass<{
      gift: Api.TypeStarGift;
      state: Api.TypeStarGiftAuctionState;
      userState: Api.TypeStarGiftAuctionUserState;
      timeout: int;
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
    }> {
      gift: Api.TypeStarGift;
      state: Api.TypeStarGiftAuctionState;
      userState: Api.TypeStarGiftAuctionUserState;
      timeout: int;
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
      CONSTRUCTOR_ID: 1798960364;
      SUBCLASS_OF_ID: 439453081;
      className: 'StarGiftAuctionState';

      static fromReader(reader: Reader): StarGiftAuctionState;
    }
    export class StarGiftAuctionAcquiredGifts extends VirtualClass<{
      gifts: Api.TypeStarGiftAuctionAcquiredGift[];
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
    }> {
      gifts: Api.TypeStarGiftAuctionAcquiredGift[];
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
      CONSTRUCTOR_ID: 2103169520;
      SUBCLASS_OF_ID: 2802321947;
      className: 'StarGiftAuctionAcquiredGifts';

      static fromReader(reader: Reader): StarGiftAuctionAcquiredGifts;
    }
    export class StarGiftActiveAuctionsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3677608656;
      SUBCLASS_OF_ID: 2440941767;
      className: 'StarGiftActiveAuctionsNotModified';

      static fromReader(reader: Reader): StarGiftActiveAuctionsNotModified;
    }
    export class StarGiftActiveAuctions extends VirtualClass<{
      auctions: Api.TypeStarGiftActiveAuctionState[];
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
    }> {
      auctions: Api.TypeStarGiftActiveAuctionState[];
      users: Api.TypeUser[];
      chats: Api.TypeChat[];
      CONSTRUCTOR_ID: 2935401404;
      SUBCLASS_OF_ID: 2440941767;
      className: 'StarGiftActiveAuctions';

      static fromReader(reader: Reader): StarGiftActiveAuctions;
    }
    export class StarGiftUpgradeAttributes extends VirtualClass<{
      attributes: Api.TypeStarGiftAttribute[];
    }> {
      attributes: Api.TypeStarGiftAttribute[];
      CONSTRUCTOR_ID: 1187439471;
      SUBCLASS_OF_ID: 256290031;
      className: 'StarGiftUpgradeAttributes';

      static fromReader(reader: Reader): StarGiftUpgradeAttributes;
    }
  }

  export namespace phone {
    export class PhoneCall extends VirtualClass<{
      phoneCall: Api.TypePhoneCall;
      users: Api.TypeUser[];
    }> {
      phoneCall: Api.TypePhoneCall;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3968000320;
      SUBCLASS_OF_ID: 3565878863;
      className: 'PhoneCall';

      static fromReader(reader: Reader): PhoneCall;
    }
    export class GroupCall extends VirtualClass<{
      call: Api.TypeGroupCall;
      participants: Api.TypeGroupCallParticipant[];
      participantsNextOffset: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      call: Api.TypeGroupCall;
      participants: Api.TypeGroupCallParticipant[];
      participantsNextOffset: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2658302637;
      SUBCLASS_OF_ID: 809572030;
      className: 'GroupCall';

      static fromReader(reader: Reader): GroupCall;
    }
    export class GroupParticipants extends VirtualClass<{
      count: int;
      participants: Api.TypeGroupCallParticipant[];
      nextOffset: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      version: int;
    }> {
      count: int;
      participants: Api.TypeGroupCallParticipant[];
      nextOffset: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      version: int;
      CONSTRUCTOR_ID: 4101460406;
      SUBCLASS_OF_ID: 1926431988;
      className: 'GroupParticipants';

      static fromReader(reader: Reader): GroupParticipants;
    }
    export class JoinAsPeers extends VirtualClass<{
      peers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      peers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2951045695;
      SUBCLASS_OF_ID: 3031920891;
      className: 'JoinAsPeers';

      static fromReader(reader: Reader): JoinAsPeers;
    }
    export class ExportedGroupCallInvite extends VirtualClass<{
      link: string;
    }> {
      link: string;
      CONSTRUCTOR_ID: 541839704;
      SUBCLASS_OF_ID: 993787535;
      className: 'ExportedGroupCallInvite';

      static fromReader(reader: Reader): ExportedGroupCallInvite;
    }
    export class GroupCallStreamChannels extends VirtualClass<{
      channels: Api.TypeGroupCallStreamChannel[];
    }> {
      channels: Api.TypeGroupCallStreamChannel[];
      CONSTRUCTOR_ID: 3504636594;
      SUBCLASS_OF_ID: 2438448612;
      className: 'GroupCallStreamChannels';

      static fromReader(reader: Reader): GroupCallStreamChannels;
    }
    export class GroupCallStreamRtmpUrl extends VirtualClass<{
      url: string;
      key: string;
    }> {
      url: string;
      key: string;
      CONSTRUCTOR_ID: 767505458;
      SUBCLASS_OF_ID: 3522500043;
      className: 'GroupCallStreamRtmpUrl';

      static fromReader(reader: Reader): GroupCallStreamRtmpUrl;
    }
    export class GroupCallStars extends VirtualClass<{
      totalStars: long;
      topDonors: Api.TypeGroupCallDonor[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      totalStars: long;
      topDonors: Api.TypeGroupCallDonor[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2635971878;
      SUBCLASS_OF_ID: 3024584730;
      className: 'GroupCallStars';

      static fromReader(reader: Reader): GroupCallStars;
    }
  }

  export namespace stats {
    export class BroadcastStats extends VirtualClass<{
      period: Api.TypeStatsDateRangeDays;
      followers: Api.TypeStatsAbsValueAndPrev;
      viewsPerPost: Api.TypeStatsAbsValueAndPrev;
      sharesPerPost: Api.TypeStatsAbsValueAndPrev;
      reactionsPerPost: Api.TypeStatsAbsValueAndPrev;
      viewsPerStory: Api.TypeStatsAbsValueAndPrev;
      sharesPerStory: Api.TypeStatsAbsValueAndPrev;
      reactionsPerStory: Api.TypeStatsAbsValueAndPrev;
      enabledNotifications: Api.TypeStatsPercentValue;
      growthGraph: Api.TypeStatsGraph;
      followersGraph: Api.TypeStatsGraph;
      muteGraph: Api.TypeStatsGraph;
      topHoursGraph: Api.TypeStatsGraph;
      interactionsGraph: Api.TypeStatsGraph;
      ivInteractionsGraph: Api.TypeStatsGraph;
      viewsBySourceGraph: Api.TypeStatsGraph;
      newFollowersBySourceGraph: Api.TypeStatsGraph;
      languagesGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
      storyInteractionsGraph: Api.TypeStatsGraph;
      storyReactionsByEmotionGraph: Api.TypeStatsGraph;
      recentPostsInteractions: Api.TypePostInteractionCounters[];
    }> {
      period: Api.TypeStatsDateRangeDays;
      followers: Api.TypeStatsAbsValueAndPrev;
      viewsPerPost: Api.TypeStatsAbsValueAndPrev;
      sharesPerPost: Api.TypeStatsAbsValueAndPrev;
      reactionsPerPost: Api.TypeStatsAbsValueAndPrev;
      viewsPerStory: Api.TypeStatsAbsValueAndPrev;
      sharesPerStory: Api.TypeStatsAbsValueAndPrev;
      reactionsPerStory: Api.TypeStatsAbsValueAndPrev;
      enabledNotifications: Api.TypeStatsPercentValue;
      growthGraph: Api.TypeStatsGraph;
      followersGraph: Api.TypeStatsGraph;
      muteGraph: Api.TypeStatsGraph;
      topHoursGraph: Api.TypeStatsGraph;
      interactionsGraph: Api.TypeStatsGraph;
      ivInteractionsGraph: Api.TypeStatsGraph;
      viewsBySourceGraph: Api.TypeStatsGraph;
      newFollowersBySourceGraph: Api.TypeStatsGraph;
      languagesGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
      storyInteractionsGraph: Api.TypeStatsGraph;
      storyReactionsByEmotionGraph: Api.TypeStatsGraph;
      recentPostsInteractions: Api.TypePostInteractionCounters[];
      CONSTRUCTOR_ID: 963421692;
      SUBCLASS_OF_ID: 2146587688;
      className: 'BroadcastStats';

      static fromReader(reader: Reader): BroadcastStats;
    }
    export class MegagroupStats extends VirtualClass<{
      period: Api.TypeStatsDateRangeDays;
      members: Api.TypeStatsAbsValueAndPrev;
      messages: Api.TypeStatsAbsValueAndPrev;
      viewers: Api.TypeStatsAbsValueAndPrev;
      posters: Api.TypeStatsAbsValueAndPrev;
      growthGraph: Api.TypeStatsGraph;
      membersGraph: Api.TypeStatsGraph;
      newMembersBySourceGraph: Api.TypeStatsGraph;
      languagesGraph: Api.TypeStatsGraph;
      messagesGraph: Api.TypeStatsGraph;
      actionsGraph: Api.TypeStatsGraph;
      topHoursGraph: Api.TypeStatsGraph;
      weekdaysGraph: Api.TypeStatsGraph;
      topPosters: Api.TypeStatsGroupTopPoster[];
      topAdmins: Api.TypeStatsGroupTopAdmin[];
      topInviters: Api.TypeStatsGroupTopInviter[];
      users: Api.TypeUser[];
    }> {
      period: Api.TypeStatsDateRangeDays;
      members: Api.TypeStatsAbsValueAndPrev;
      messages: Api.TypeStatsAbsValueAndPrev;
      viewers: Api.TypeStatsAbsValueAndPrev;
      posters: Api.TypeStatsAbsValueAndPrev;
      growthGraph: Api.TypeStatsGraph;
      membersGraph: Api.TypeStatsGraph;
      newMembersBySourceGraph: Api.TypeStatsGraph;
      languagesGraph: Api.TypeStatsGraph;
      messagesGraph: Api.TypeStatsGraph;
      actionsGraph: Api.TypeStatsGraph;
      topHoursGraph: Api.TypeStatsGraph;
      weekdaysGraph: Api.TypeStatsGraph;
      topPosters: Api.TypeStatsGroupTopPoster[];
      topAdmins: Api.TypeStatsGroupTopAdmin[];
      topInviters: Api.TypeStatsGroupTopInviter[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4018141462;
      SUBCLASS_OF_ID: 1532608141;
      className: 'MegagroupStats';

      static fromReader(reader: Reader): MegagroupStats;
    }
    export class MessageStats extends VirtualClass<{
      viewsGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
    }> {
      viewsGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
      CONSTRUCTOR_ID: 2145983508;
      SUBCLASS_OF_ID: 2516886306;
      className: 'MessageStats';

      static fromReader(reader: Reader): MessageStats;
    }
    export class StoryStats extends VirtualClass<{
      viewsGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
    }> {
      viewsGraph: Api.TypeStatsGraph;
      reactionsByEmotionGraph: Api.TypeStatsGraph;
      CONSTRUCTOR_ID: 1355613820;
      SUBCLASS_OF_ID: 2337096660;
      className: 'StoryStats';

      static fromReader(reader: Reader): StoryStats;
    }
    export class PublicForwards extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      forwards: Api.TypePublicForward[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      forwards: Api.TypePublicForward[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2466479648;
      SUBCLASS_OF_ID: 2804429329;
      className: 'PublicForwards';

      static fromReader(reader: Reader): PublicForwards;
    }
    export class PollStats extends VirtualClass<{
      votesGraph: Api.TypeStatsGraph;
    }> {
      votesGraph: Api.TypeStatsGraph;
      CONSTRUCTOR_ID: 697941741;
      SUBCLASS_OF_ID: 3914437839;
      className: 'PollStats';

      static fromReader(reader: Reader): PollStats;
    }
  }

  export namespace stickers {
    export class SuggestedShortName extends VirtualClass<{
      shortName: string;
    }> {
      shortName: string;
      CONSTRUCTOR_ID: 2248056895;
      SUBCLASS_OF_ID: 3293203233;
      className: 'SuggestedShortName';

      static fromReader(reader: Reader): SuggestedShortName;
    }
  }

  export namespace users {
    export class UserFull extends VirtualClass<{
      fullUser: Api.TypeUserFull;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      fullUser: Api.TypeUserFull;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 997004590;
      SUBCLASS_OF_ID: 2212470261;
      className: 'UserFull';

      static fromReader(reader: Reader): UserFull;
    }
    export class Users extends VirtualClass<{
      users: Api.TypeUser[];
    }> {
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1658259128;
      SUBCLASS_OF_ID: 4065063104;
      className: 'Users';

      static fromReader(reader: Reader): Users;
    }
    export class UsersSlice extends VirtualClass<{
      count: int;
      users: Api.TypeUser[];
    }> {
      count: int;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 828000628;
      SUBCLASS_OF_ID: 4065063104;
      className: 'UsersSlice';

      static fromReader(reader: Reader): UsersSlice;
    }
    export class SavedMusicNotModified extends VirtualClass<{
      count: int;
    }> {
      count: int;
      CONSTRUCTOR_ID: 3817310884;
      SUBCLASS_OF_ID: 4162039351;
      className: 'SavedMusicNotModified';

      static fromReader(reader: Reader): SavedMusicNotModified;
    }
    export class SavedMusic extends VirtualClass<{
      count: int;
      documents: Api.TypeDocument[];
    }> {
      count: int;
      documents: Api.TypeDocument[];
      CONSTRUCTOR_ID: 883094167;
      SUBCLASS_OF_ID: 4162039351;
      className: 'SavedMusic';

      static fromReader(reader: Reader): SavedMusic;
    }
  }

  export namespace chatlists {
    export class ExportedChatlistInvite extends VirtualClass<{
      filter: Api.TypeDialogFilter;
      invite: Api.TypeExportedChatlistInvite;
    }> {
      filter: Api.TypeDialogFilter;
      invite: Api.TypeExportedChatlistInvite;
      CONSTRUCTOR_ID: 283567014;
      SUBCLASS_OF_ID: 3261681385;
      className: 'ExportedChatlistInvite';

      static fromReader(reader: Reader): ExportedChatlistInvite;
    }
    export class ExportedInvites extends VirtualClass<{
      invites: Api.TypeExportedChatlistInvite[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      invites: Api.TypeExportedChatlistInvite[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 279670215;
      SUBCLASS_OF_ID: 3871476160;
      className: 'ExportedInvites';

      static fromReader(reader: Reader): ExportedInvites;
    }
    export class ChatlistInviteAlready extends VirtualClass<{
      filterId: int;
      missingPeers: Api.TypePeer[];
      alreadyPeers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      filterId: int;
      missingPeers: Api.TypePeer[];
      alreadyPeers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4203214425;
      SUBCLASS_OF_ID: 1097993845;
      className: 'ChatlistInviteAlready';

      static fromReader(reader: Reader): ChatlistInviteAlready;
    }
    export class ChatlistInvite extends VirtualClass<{
      // flags: Api.Type;
      titleNoanimate?: true;
      title: Api.TypeTextWithEntities;
      emoticon?: string;
      peers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      titleNoanimate?: true;
      title: Api.TypeTextWithEntities;
      emoticon?: string;
      peers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 4044279343;
      SUBCLASS_OF_ID: 1097993845;
      className: 'ChatlistInvite';

      static fromReader(reader: Reader): ChatlistInvite;
    }
    export class ChatlistUpdates extends VirtualClass<{
      missingPeers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      missingPeers: Api.TypePeer[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2478671757;
      SUBCLASS_OF_ID: 2098610666;
      className: 'ChatlistUpdates';

      static fromReader(reader: Reader): ChatlistUpdates;
    }
  }

  export namespace bots {
    export class BotInfo extends VirtualClass<{
      name: string;
      about: string;
      description: string;
    }> {
      name: string;
      about: string;
      description: string;
      CONSTRUCTOR_ID: 3903288752;
      SUBCLASS_OF_ID: 3397067317;
      className: 'BotInfo';

      static fromReader(reader: Reader): BotInfo;
    }
    export class PopularAppBots extends VirtualClass<{
      // flags: Api.Type;
      nextOffset?: string;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      nextOffset?: string;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 428978491;
      SUBCLASS_OF_ID: 2070199933;
      className: 'PopularAppBots';

      static fromReader(reader: Reader): PopularAppBots;
    }
    export class PreviewInfo extends VirtualClass<{
      media: Api.TypeBotPreviewMedia[];
      langCodes: string[];
    }> {
      media: Api.TypeBotPreviewMedia[];
      langCodes: string[];
      CONSTRUCTOR_ID: 212278628;
      SUBCLASS_OF_ID: 4039278389;
      className: 'PreviewInfo';

      static fromReader(reader: Reader): PreviewInfo;
    }
    export class ExportedBotToken extends VirtualClass<{
      token: string;
    }> {
      token: string;
      CONSTRUCTOR_ID: 1012971041;
      SUBCLASS_OF_ID: 2018077815;
      className: 'ExportedBotToken';

      static fromReader(reader: Reader): ExportedBotToken;
    }
    export class RequestedButton extends VirtualClass<{
      webappReqId: string;
    }> {
      webappReqId: string;
      CONSTRUCTOR_ID: 4047224023;
      SUBCLASS_OF_ID: 262010170;
      className: 'RequestedButton';

      static fromReader(reader: Reader): RequestedButton;
    }
    export class AccessSettings extends VirtualClass<{
      // flags: Api.Type;
      restricted?: true;
      addUsers?: Api.TypeUser[];
    } | void> {
      // flags: Api.Type;
      restricted?: true;
      addUsers?: Api.TypeUser[];
      CONSTRUCTOR_ID: 3709845395;
      SUBCLASS_OF_ID: 3969976770;
      className: 'AccessSettings';

      static fromReader(reader: Reader): AccessSettings;
    }
  }

  export namespace stories {
    export class AllStoriesNotModified extends VirtualClass<{
      // flags: Api.Type;
      state: string;
      stealthMode: Api.TypeStoriesStealthMode;
    }> {
      // flags: Api.Type;
      state: string;
      stealthMode: Api.TypeStoriesStealthMode;
      CONSTRUCTOR_ID: 291044926;
      SUBCLASS_OF_ID: 2120274125;
      className: 'AllStoriesNotModified';

      static fromReader(reader: Reader): AllStoriesNotModified;
    }
    export class AllStories extends VirtualClass<{
      // flags: Api.Type;
      hasMore?: true;
      count: int;
      state: string;
      peerStories: Api.TypePeerStories[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      stealthMode: Api.TypeStoriesStealthMode;
    }> {
      // flags: Api.Type;
      hasMore?: true;
      count: int;
      state: string;
      peerStories: Api.TypePeerStories[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      stealthMode: Api.TypeStoriesStealthMode;
      CONSTRUCTOR_ID: 1862033025;
      SUBCLASS_OF_ID: 2120274125;
      className: 'AllStories';

      static fromReader(reader: Reader): AllStories;
    }
    export class Stories extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      stories: Api.TypeStoryItem[];
      pinnedToTop?: int[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      stories: Api.TypeStoryItem[];
      pinnedToTop?: int[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1673780490;
      SUBCLASS_OF_ID: 622595116;
      className: 'Stories';

      static fromReader(reader: Reader): Stories;
    }
    export class StoryViewsList extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      viewsCount: int;
      forwardsCount: int;
      reactionsCount: int;
      views: Api.TypeStoryView[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      count: int;
      viewsCount: int;
      forwardsCount: int;
      reactionsCount: int;
      views: Api.TypeStoryView[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 1507299269;
      SUBCLASS_OF_ID: 3108205920;
      className: 'StoryViewsList';

      static fromReader(reader: Reader): StoryViewsList;
    }
    export class StoryViews extends VirtualClass<{
      views: Api.TypeStoryViews[];
      users: Api.TypeUser[];
    }> {
      views: Api.TypeStoryViews[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3734957341;
      SUBCLASS_OF_ID: 1262470330;
      className: 'StoryViews';

      static fromReader(reader: Reader): StoryViews;
    }
    export class PeerStories extends VirtualClass<{
      stories: Api.TypePeerStories;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      stories: Api.TypePeerStories;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3404105576;
      SUBCLASS_OF_ID: 2639712208;
      className: 'PeerStories';

      static fromReader(reader: Reader): PeerStories;
    }
    export class StoryReactionsList extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      reactions: Api.TypeStoryReaction[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
    }> {
      // flags: Api.Type;
      count: int;
      reactions: Api.TypeStoryReaction[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      nextOffset?: string;
      CONSTRUCTOR_ID: 2858383516;
      SUBCLASS_OF_ID: 74420707;
      className: 'StoryReactionsList';

      static fromReader(reader: Reader): StoryReactionsList;
    }
    export class FoundStories extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      stories: Api.TypeFoundStory[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      stories: Api.TypeFoundStory[];
      nextOffset?: string;
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 3806230327;
      SUBCLASS_OF_ID: 393808693;
      className: 'FoundStories';

      static fromReader(reader: Reader): FoundStories;
    }
    export class CanSendStoryCount extends VirtualClass<{
      countRemains: int;
    }> {
      countRemains: int;
      CONSTRUCTOR_ID: 3280453710;
      SUBCLASS_OF_ID: 3411255960;
      className: 'CanSendStoryCount';

      static fromReader(reader: Reader): CanSendStoryCount;
    }
    export class AlbumsNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 1448008427;
      SUBCLASS_OF_ID: 94846265;
      className: 'AlbumsNotModified';

      static fromReader(reader: Reader): AlbumsNotModified;
    }
    export class Albums extends VirtualClass<{
      hash: long;
      albums: Api.TypeStoryAlbum[];
    }> {
      hash: long;
      albums: Api.TypeStoryAlbum[];
      CONSTRUCTOR_ID: 3281549882;
      SUBCLASS_OF_ID: 94846265;
      className: 'Albums';

      static fromReader(reader: Reader): Albums;
    }
  }

  export namespace premium {
    export class BoostsList extends VirtualClass<{
      // flags: Api.Type;
      count: int;
      boosts: Api.TypeBoost[];
      nextOffset?: string;
      users: Api.TypeUser[];
    }> {
      // flags: Api.Type;
      count: int;
      boosts: Api.TypeBoost[];
      nextOffset?: string;
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2264424764;
      SUBCLASS_OF_ID: 573941949;
      className: 'BoostsList';

      static fromReader(reader: Reader): BoostsList;
    }
    export class MyBoosts extends VirtualClass<{
      myBoosts: Api.TypeMyBoost[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
    }> {
      myBoosts: Api.TypeMyBoost[];
      chats: Api.TypeChat[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 2598512866;
      SUBCLASS_OF_ID: 2905936603;
      className: 'MyBoosts';

      static fromReader(reader: Reader): MyBoosts;
    }
    export class BoostsStatus extends VirtualClass<{
      // flags: Api.Type;
      myBoost?: true;
      level: int;
      currentLevelBoosts: int;
      boosts: int;
      giftBoosts?: int;
      nextLevelBoosts?: int;
      premiumAudience?: Api.TypeStatsPercentValue;
      boostUrl: string;
      prepaidGiveaways?: Api.TypePrepaidGiveaway[];
      myBoostSlots?: int[];
    }> {
      // flags: Api.Type;
      myBoost?: true;
      level: int;
      currentLevelBoosts: int;
      boosts: int;
      giftBoosts?: int;
      nextLevelBoosts?: int;
      premiumAudience?: Api.TypeStatsPercentValue;
      boostUrl: string;
      prepaidGiveaways?: Api.TypePrepaidGiveaway[];
      myBoostSlots?: int[];
      CONSTRUCTOR_ID: 1230586490;
      SUBCLASS_OF_ID: 3273333433;
      className: 'BoostsStatus';

      static fromReader(reader: Reader): BoostsStatus;
    }
  }

  export namespace smsjobs {
    export class EligibleToJoin extends VirtualClass<{
      termsUrl: string;
      monthlySentSms: int;
    }> {
      termsUrl: string;
      monthlySentSms: int;
      CONSTRUCTOR_ID: 3700114639;
      SUBCLASS_OF_ID: 1589076134;
      className: 'EligibleToJoin';

      static fromReader(reader: Reader): EligibleToJoin;
    }
    export class Status extends VirtualClass<{
      // flags: Api.Type;
      allowInternational?: true;
      recentSent: int;
      recentSince: int;
      recentRemains: int;
      totalSent: int;
      totalSince: int;
      lastGiftSlug?: string;
      termsUrl: string;
    }> {
      // flags: Api.Type;
      allowInternational?: true;
      recentSent: int;
      recentSince: int;
      recentRemains: int;
      totalSent: int;
      totalSince: int;
      lastGiftSlug?: string;
      termsUrl: string;
      CONSTRUCTOR_ID: 720277905;
      SUBCLASS_OF_ID: 3448711973;
      className: 'Status';

      static fromReader(reader: Reader): Status;
    }
  }

  export namespace fragment {
    export class CollectibleInfo extends VirtualClass<{
      purchaseDate: int;
      currency: string;
      amount: long;
      cryptoCurrency: string;
      cryptoAmount: long;
      url: string;
    }> {
      purchaseDate: int;
      currency: string;
      amount: long;
      cryptoCurrency: string;
      cryptoAmount: long;
      url: string;
      CONSTRUCTOR_ID: 1857945489;
      SUBCLASS_OF_ID: 3572127632;
      className: 'CollectibleInfo';

      static fromReader(reader: Reader): CollectibleInfo;
    }
  }

  export namespace aicompose {
    export class TonesNotModified extends VirtualClass<void> {
      CONSTRUCTOR_ID: 3254018307;
      SUBCLASS_OF_ID: 4066377433;
      className: 'TonesNotModified';

      static fromReader(reader: Reader): TonesNotModified;
    }
    export class Tones extends VirtualClass<{
      hash: long;
      tones: Api.TypeAiComposeTone[];
      users: Api.TypeUser[];
    }> {
      hash: long;
      tones: Api.TypeAiComposeTone[];
      users: Api.TypeUser[];
      CONSTRUCTOR_ID: 1822232318;
      SUBCLASS_OF_ID: 4066377433;
      className: 'Tones';

      static fromReader(reader: Reader): Tones;
    }
  }

  export class InvokeAfterMsg extends Request<{
    msgId: long;
    query: X;
  }, X> {
    msgId: long;
    query: X;
  }
  export class InvokeAfterMsgs extends Request<{
    msgIds: long[];
    query: X;
  }, X> {
    msgIds: long[];
    query: X;
  }
  export class InitConnection extends Request<{
    // flags: Api.Type;
    apiId: int;
    deviceModel: string;
    systemVersion: string;
    appVersion: string;
    systemLangCode: string;
    langPack: string;
    langCode: string;
    proxy?: Api.TypeInputClientProxy;
    params?: Api.TypeJSONValue;
    query: X;
  }, X> {
    // flags: Api.Type;
    apiId: int;
    deviceModel: string;
    systemVersion: string;
    appVersion: string;
    systemLangCode: string;
    langPack: string;
    langCode: string;
    proxy?: Api.TypeInputClientProxy;
    params?: Api.TypeJSONValue;
    query: X;
  }
  export class InvokeWithLayer extends Request<{
    layer: int;
    query: X;
  }, X> {
    layer: int;
    query: X;
  }
  export class InvokeWithoutUpdates extends Request<{
    query: X;
  }, X> {
    query: X;
  }
  export class InvokeWithMessagesRange extends Request<{
    range: Api.TypeMessageRange;
    query: X;
  }, X> {
    range: Api.TypeMessageRange;
    query: X;
  }
  export class InvokeWithTakeout extends Request<{
    takeoutId: long;
    query: X;
  }, X> {
    takeoutId: long;
    query: X;
  }
  export class InvokeWithBusinessConnection extends Request<{
    connectionId: string;
    query: X;
  }, X> {
    connectionId: string;
    query: X;
  }
  export class InvokeWithGooglePlayIntegrity extends Request<{
    nonce: string;
    token: string;
    query: X;
  }, X> {
    nonce: string;
    token: string;
    query: X;
  }
  export class InvokeWithApnsSecret extends Request<{
    nonce: string;
    secret: string;
    query: X;
  }, X> {
    nonce: string;
    secret: string;
    query: X;
  }
  export class InvokeWithReCaptcha extends Request<{
    token: string;
    query: X;
  }, X> {
    token: string;
    query: X;
  }
  export class ReqPq extends Request<{
    nonce: int128;
  }, Api.TypeResPQ> {
    nonce: int128;
  }
  export class ReqPqMulti extends Request<{
    nonce: int128;
  }, Api.TypeResPQ> {
    nonce: int128;
  }
  export class ReqPqMultiNew extends Request<{
    nonce: int128;
  }, Api.TypeResPQ> {
    nonce: int128;
  }
  export class ReqDHParams extends Request<{
    nonce: int128;
    serverNonce: int128;
    p: bytes;
    q: bytes;
    publicKeyFingerprint: long;
    encryptedData: bytes;
  }, Api.TypeServer_DH_Params> {
    nonce: int128;
    serverNonce: int128;
    p: bytes;
    q: bytes;
    publicKeyFingerprint: long;
    encryptedData: bytes;
  }
  export class SetClientDHParams extends Request<{
    nonce: int128;
    serverNonce: int128;
    encryptedData: bytes;
  }, Api.TypeSet_client_DH_params_answer> {
    nonce: int128;
    serverNonce: int128;
    encryptedData: bytes;
  }
  export class DestroyAuthKey extends Request<void, Api.TypeDestroyAuthKeyRes> {}
  export class RpcDropAnswer extends Request<{
    reqMsgId: long;
  }, Api.TypeRpcDropAnswer> {
    reqMsgId: long;
  }
  export class GetFutureSalts extends Request<{
    num: int;
  }, Api.TypeFutureSalts> {
    num: int;
  }
  export class Ping extends Request<{
    pingId: long;
  }, Api.TypePong> {
    pingId: long;
  }
  export class PingDelayDisconnect extends Request<{
    pingId: long;
    disconnectDelay: int;
  }, Api.TypePong> {
    pingId: long;
    disconnectDelay: int;
  }
  export class DestroySession extends Request<{
    sessionId: long;
  }, Api.TypeDestroySessionRes> {
    sessionId: long;
  }
  

  export namespace auth {
    export class SendCode extends Request<{
      phoneNumber: string;
      apiId: int;
      apiHash: string;
      settings: Api.TypeCodeSettings;
    }, auth.TypeSentCode> {
      phoneNumber: string;
      apiId: int;
      apiHash: string;
      settings: Api.TypeCodeSettings;
    }
    export class SignUp extends Request<{
      // flags: Api.Type;
      noJoinedNotifications?: true;
      phoneNumber: string;
      phoneCodeHash: string;
      firstName: string;
      lastName: string;
    }, auth.TypeAuthorization> {
      // flags: Api.Type;
      noJoinedNotifications?: true;
      phoneNumber: string;
      phoneCodeHash: string;
      firstName: string;
      lastName: string;
    }
    export class SignIn extends Request<{
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode?: string;
      emailVerification?: Api.TypeEmailVerification;
    }, auth.TypeAuthorization> {
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode?: string;
      emailVerification?: Api.TypeEmailVerification;
    }
    export class LogOut extends Request<void, auth.TypeLoggedOut> {}
    export class ResetAuthorizations extends Request<void, Bool> {}
    export class ExportAuthorization extends Request<{
      dcId: int;
    }, auth.TypeExportedAuthorization> {
      dcId: int;
    }
    export class ImportAuthorization extends Request<{
      id: long;
      bytes: bytes;
    }, auth.TypeAuthorization> {
      id: long;
      bytes: bytes;
    }
    export class BindTempAuthKey extends Request<{
      permAuthKeyId: long;
      nonce: long;
      expiresAt: int;
      encryptedMessage: bytes;
    }, Bool> {
      permAuthKeyId: long;
      nonce: long;
      expiresAt: int;
      encryptedMessage: bytes;
    }
    export class ImportBotAuthorization extends Request<{
      // flags: int;
      apiId: int;
      apiHash: string;
      botAuthToken: string;
    }, auth.TypeAuthorization> {
      // flags: int;
      apiId: int;
      apiHash: string;
      botAuthToken: string;
    }
    export class CheckPassword extends Request<{
      password: Api.TypeInputCheckPasswordSRP;
    }, auth.TypeAuthorization> {
      password: Api.TypeInputCheckPasswordSRP;
    }
    export class RequestPasswordRecovery extends Request<void, auth.TypePasswordRecovery> {}
    export class RecoverPassword extends Request<{
      // flags: Api.Type;
      code: string;
      newSettings?: account.TypePasswordInputSettings;
    }, auth.TypeAuthorization> {
      // flags: Api.Type;
      code: string;
      newSettings?: account.TypePasswordInputSettings;
    }
    export class ResendCode extends Request<{
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      reason?: string;
    }, auth.TypeSentCode> {
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      reason?: string;
    }
    export class CancelCode extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
    }, Bool> {
      phoneNumber: string;
      phoneCodeHash: string;
    }
    export class DropTempAuthKeys extends Request<{
      exceptAuthKeys: long[];
    }, Bool> {
      exceptAuthKeys: long[];
    }
    export class ExportLoginToken extends Request<{
      apiId: int;
      apiHash: string;
      exceptIds: long[];
    }, auth.TypeLoginToken> {
      apiId: int;
      apiHash: string;
      exceptIds: long[];
    }
    export class ImportLoginToken extends Request<{
      token: bytes;
    }, auth.TypeLoginToken> {
      token: bytes;
    }
    export class AcceptLoginToken extends Request<{
      token: bytes;
    }, Api.TypeAuthorization> {
      token: bytes;
    }
    export class CheckRecoveryPassword extends Request<{
      code: string;
    }, Bool> {
      code: string;
    }
    export class ImportWebTokenAuthorization extends Request<{
      apiId: int;
      apiHash: string;
      webAuthToken: string;
    }, auth.TypeAuthorization> {
      apiId: int;
      apiHash: string;
      webAuthToken: string;
    }
    export class RequestFirebaseSms extends Request<{
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      safetyNetToken?: string;
      playIntegrityToken?: string;
      iosPushSecret?: string;
    }, Bool> {
      // flags: Api.Type;
      phoneNumber: string;
      phoneCodeHash: string;
      safetyNetToken?: string;
      playIntegrityToken?: string;
      iosPushSecret?: string;
    }
    export class ResetLoginEmail extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
    }, auth.TypeSentCode> {
      phoneNumber: string;
      phoneCodeHash: string;
    }
    export class ReportMissingCode extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
      mnc: string;
    }, Bool> {
      phoneNumber: string;
      phoneCodeHash: string;
      mnc: string;
    }
    export class CheckPaidAuth extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
      formId: long;
    }, auth.TypeSentCode> {
      phoneNumber: string;
      phoneCodeHash: string;
      formId: long;
    }
    export class InitPasskeyLogin extends Request<{
      apiId: int;
      apiHash: string;
    }, auth.TypePasskeyLoginOptions> {
      apiId: int;
      apiHash: string;
    }
    export class FinishPasskeyLogin extends Request<{
      // flags: Api.Type;
      credential: Api.TypeInputPasskeyCredential;
      fromDcId?: int;
      fromAuthKeyId?: long;
    }, auth.TypeAuthorization> {
      // flags: Api.Type;
      credential: Api.TypeInputPasskeyCredential;
      fromDcId?: int;
      fromAuthKeyId?: long;
    }
  }

  export namespace account {
    export class RegisterDevice extends Request<{
      // flags: Api.Type;
      noMuted?: true;
      tokenType: int;
      token: string;
      appSandbox: Bool;
      secret: bytes;
      otherUids: long[];
    }, Bool> {
      // flags: Api.Type;
      noMuted?: true;
      tokenType: int;
      token: string;
      appSandbox: Bool;
      secret: bytes;
      otherUids: long[];
    }
    export class UnregisterDevice extends Request<{
      tokenType: int;
      token: string;
      otherUids: long[];
    }, Bool> {
      tokenType: int;
      token: string;
      otherUids: long[];
    }
    export class UpdateNotifySettings extends Request<{
      peer: Api.TypeInputNotifyPeer;
      settings: Api.TypeInputPeerNotifySettings;
    }, Bool> {
      peer: Api.TypeInputNotifyPeer;
      settings: Api.TypeInputPeerNotifySettings;
    }
    export class GetNotifySettings extends Request<{
      peer: Api.TypeInputNotifyPeer;
    }, Api.TypePeerNotifySettings> {
      peer: Api.TypeInputNotifyPeer;
    }
    export class ResetNotifySettings extends Request<void, Bool> {}
    export class UpdateProfile extends Request<{
      // flags: Api.Type;
      firstName?: string;
      lastName?: string;
      about?: string;
    } | void, Api.TypeUser> {
      // flags: Api.Type;
      firstName?: string;
      lastName?: string;
      about?: string;
    }
    export class UpdateStatus extends Request<{
      offline: Bool;
    }, Bool> {
      offline: Bool;
    }
    export class GetWallPapers extends Request<{
      hash: long;
    }, account.TypeWallPapers> {
      hash: long;
    }
    export class ReportPeer extends Request<{
      peer: Api.TypeInputPeer;
      reason: Api.TypeReportReason;
      message: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      reason: Api.TypeReportReason;
      message: string;
    }
    export class CheckUsername extends Request<{
      username: string;
    }, Bool> {
      username: string;
    }
    export class UpdateUsername extends Request<{
      username: string;
    }, Api.TypeUser> {
      username: string;
    }
    export class GetPrivacy extends Request<{
      key: Api.TypeInputPrivacyKey;
    }, account.TypePrivacyRules> {
      key: Api.TypeInputPrivacyKey;
    }
    export class SetPrivacy extends Request<{
      key: Api.TypeInputPrivacyKey;
      rules: Api.TypeInputPrivacyRule[];
    }, account.TypePrivacyRules> {
      key: Api.TypeInputPrivacyKey;
      rules: Api.TypeInputPrivacyRule[];
    }
    export class DeleteAccount extends Request<{
      // flags: Api.Type;
      reason: string;
      password?: Api.TypeInputCheckPasswordSRP;
    }, Bool> {
      // flags: Api.Type;
      reason: string;
      password?: Api.TypeInputCheckPasswordSRP;
    }
    export class GetAccountTTL extends Request<void, Api.TypeAccountDaysTTL> {}
    export class SetAccountTTL extends Request<{
      ttl: Api.TypeAccountDaysTTL;
    }, Bool> {
      ttl: Api.TypeAccountDaysTTL;
    }
    export class SendChangePhoneCode extends Request<{
      phoneNumber: string;
      settings: Api.TypeCodeSettings;
    }, auth.TypeSentCode> {
      phoneNumber: string;
      settings: Api.TypeCodeSettings;
    }
    export class ChangePhone extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode: string;
    }, Api.TypeUser> {
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode: string;
    }
    export class UpdateDeviceLocked extends Request<{
      period: int;
    }, Bool> {
      period: int;
    }
    export class GetAuthorizations extends Request<void, account.TypeAuthorizations> {}
    export class ResetAuthorization extends Request<{
      hash: long;
    }, Bool> {
      hash: long;
    }
    export class GetPassword extends Request<void, account.TypePassword> {}
    export class GetPasswordSettings extends Request<{
      password: Api.TypeInputCheckPasswordSRP;
    }, account.TypePasswordSettings> {
      password: Api.TypeInputCheckPasswordSRP;
    }
    export class UpdatePasswordSettings extends Request<{
      password: Api.TypeInputCheckPasswordSRP;
      newSettings: account.TypePasswordInputSettings;
    }, Bool> {
      password: Api.TypeInputCheckPasswordSRP;
      newSettings: account.TypePasswordInputSettings;
    }
    export class SendConfirmPhoneCode extends Request<{
      hash: string;
      settings: Api.TypeCodeSettings;
    }, auth.TypeSentCode> {
      hash: string;
      settings: Api.TypeCodeSettings;
    }
    export class ConfirmPhone extends Request<{
      phoneCodeHash: string;
      phoneCode: string;
    }, Bool> {
      phoneCodeHash: string;
      phoneCode: string;
    }
    export class GetTmpPassword extends Request<{
      password: Api.TypeInputCheckPasswordSRP;
      period: int;
    }, account.TypeTmpPassword> {
      password: Api.TypeInputCheckPasswordSRP;
      period: int;
    }
    export class GetWebAuthorizations extends Request<void, account.TypeWebAuthorizations> {}
    export class ResetWebAuthorization extends Request<{
      hash: long;
    }, Bool> {
      hash: long;
    }
    export class ResetWebAuthorizations extends Request<void, Bool> {}
    export class GetAllSecureValues extends Request<void, Api.TypeSecureValue[]> {}
    export class GetSecureValue extends Request<{
      types: Api.TypeSecureValueType[];
    }, Api.TypeSecureValue[]> {
      types: Api.TypeSecureValueType[];
    }
    export class SaveSecureValue extends Request<{
      value: Api.TypeInputSecureValue;
      secureSecretId: long;
    }, Api.TypeSecureValue> {
      value: Api.TypeInputSecureValue;
      secureSecretId: long;
    }
    export class DeleteSecureValue extends Request<{
      types: Api.TypeSecureValueType[];
    }, Bool> {
      types: Api.TypeSecureValueType[];
    }
    export class GetAuthorizationForm extends Request<{
      botId: long;
      scope: string;
      publicKey: string;
    }, account.TypeAuthorizationForm> {
      botId: long;
      scope: string;
      publicKey: string;
    }
    export class AcceptAuthorization extends Request<{
      botId: long;
      scope: string;
      publicKey: string;
      valueHashes: Api.TypeSecureValueHash[];
      credentials: Api.TypeSecureCredentialsEncrypted;
    }, Bool> {
      botId: long;
      scope: string;
      publicKey: string;
      valueHashes: Api.TypeSecureValueHash[];
      credentials: Api.TypeSecureCredentialsEncrypted;
    }
    export class SendVerifyPhoneCode extends Request<{
      phoneNumber: string;
      settings: Api.TypeCodeSettings;
    }, auth.TypeSentCode> {
      phoneNumber: string;
      settings: Api.TypeCodeSettings;
    }
    export class VerifyPhone extends Request<{
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode: string;
    }, Bool> {
      phoneNumber: string;
      phoneCodeHash: string;
      phoneCode: string;
    }
    export class SendVerifyEmailCode extends Request<{
      purpose: Api.TypeEmailVerifyPurpose;
      email: string;
    }, account.TypeSentEmailCode> {
      purpose: Api.TypeEmailVerifyPurpose;
      email: string;
    }
    export class VerifyEmail extends Request<{
      purpose: Api.TypeEmailVerifyPurpose;
      verification: Api.TypeEmailVerification;
    }, account.TypeEmailVerified> {
      purpose: Api.TypeEmailVerifyPurpose;
      verification: Api.TypeEmailVerification;
    }
    export class InitTakeoutSession extends Request<{
      // flags: Api.Type;
      contacts?: true;
      messageUsers?: true;
      messageChats?: true;
      messageMegagroups?: true;
      messageChannels?: true;
      files?: true;
      fileMaxSize?: long;
    } | void, account.TypeTakeout> {
      // flags: Api.Type;
      contacts?: true;
      messageUsers?: true;
      messageChats?: true;
      messageMegagroups?: true;
      messageChannels?: true;
      files?: true;
      fileMaxSize?: long;
    }
    export class FinishTakeoutSession extends Request<{
      // flags: Api.Type;
      success?: true;
    } | void, Bool> {
      // flags: Api.Type;
      success?: true;
    }
    export class ConfirmPasswordEmail extends Request<{
      code: string;
    }, Bool> {
      code: string;
    }
    export class ResendPasswordEmail extends Request<void, Bool> {}
    export class CancelPasswordEmail extends Request<void, Bool> {}
    export class GetContactSignUpNotification extends Request<void, Bool> {}
    export class SetContactSignUpNotification extends Request<{
      silent: Bool;
    }, Bool> {
      silent: Bool;
    }
    export class GetNotifyExceptions extends Request<{
      // flags: Api.Type;
      compareSound?: true;
      compareStories?: true;
      peer?: Api.TypeInputNotifyPeer;
    } | void, Api.TypeUpdates> {
      // flags: Api.Type;
      compareSound?: true;
      compareStories?: true;
      peer?: Api.TypeInputNotifyPeer;
    }
    export class GetWallPaper extends Request<{
      wallpaper: Api.TypeInputWallPaper;
    }, Api.TypeWallPaper> {
      wallpaper: Api.TypeInputWallPaper;
    }
    export class UploadWallPaper extends Request<{
      // flags: Api.Type;
      forChat?: true;
      file: Api.TypeInputFile;
      mimeType: string;
      settings: Api.TypeWallPaperSettings;
    }, Api.TypeWallPaper> {
      // flags: Api.Type;
      forChat?: true;
      file: Api.TypeInputFile;
      mimeType: string;
      settings: Api.TypeWallPaperSettings;
    }
    export class SaveWallPaper extends Request<{
      wallpaper: Api.TypeInputWallPaper;
      unsave: Bool;
      settings: Api.TypeWallPaperSettings;
    }, Bool> {
      wallpaper: Api.TypeInputWallPaper;
      unsave: Bool;
      settings: Api.TypeWallPaperSettings;
    }
    export class InstallWallPaper extends Request<{
      wallpaper: Api.TypeInputWallPaper;
      settings: Api.TypeWallPaperSettings;
    }, Bool> {
      wallpaper: Api.TypeInputWallPaper;
      settings: Api.TypeWallPaperSettings;
    }
    export class ResetWallPapers extends Request<void, Bool> {}
    export class GetAutoDownloadSettings extends Request<void, account.TypeAutoDownloadSettings> {}
    export class SaveAutoDownloadSettings extends Request<{
      // flags: Api.Type;
      low?: true;
      high?: true;
      settings: Api.TypeAutoDownloadSettings;
    }, Bool> {
      // flags: Api.Type;
      low?: true;
      high?: true;
      settings: Api.TypeAutoDownloadSettings;
    }
    export class UploadTheme extends Request<{
      // flags: Api.Type;
      file: Api.TypeInputFile;
      thumb?: Api.TypeInputFile;
      fileName: string;
      mimeType: string;
    }, Api.TypeDocument> {
      // flags: Api.Type;
      file: Api.TypeInputFile;
      thumb?: Api.TypeInputFile;
      fileName: string;
      mimeType: string;
    }
    export class CreateTheme extends Request<{
      // flags: Api.Type;
      slug: string;
      title: string;
      document?: Api.TypeInputDocument;
      settings?: Api.TypeInputThemeSettings[];
    }, Api.TypeTheme> {
      // flags: Api.Type;
      slug: string;
      title: string;
      document?: Api.TypeInputDocument;
      settings?: Api.TypeInputThemeSettings[];
    }
    export class UpdateTheme extends Request<{
      // flags: Api.Type;
      format: string;
      theme: Api.TypeInputTheme;
      slug?: string;
      title?: string;
      document?: Api.TypeInputDocument;
      settings?: Api.TypeInputThemeSettings[];
    }, Api.TypeTheme> {
      // flags: Api.Type;
      format: string;
      theme: Api.TypeInputTheme;
      slug?: string;
      title?: string;
      document?: Api.TypeInputDocument;
      settings?: Api.TypeInputThemeSettings[];
    }
    export class SaveTheme extends Request<{
      theme: Api.TypeInputTheme;
      unsave: Bool;
    }, Bool> {
      theme: Api.TypeInputTheme;
      unsave: Bool;
    }
    export class InstallTheme extends Request<{
      // flags: Api.Type;
      dark?: true;
      theme?: Api.TypeInputTheme;
      format?: string;
      baseTheme?: Api.TypeBaseTheme;
    } | void, Bool> {
      // flags: Api.Type;
      dark?: true;
      theme?: Api.TypeInputTheme;
      format?: string;
      baseTheme?: Api.TypeBaseTheme;
    }
    export class GetTheme extends Request<{
      format: string;
      theme: Api.TypeInputTheme;
    }, Api.TypeTheme> {
      format: string;
      theme: Api.TypeInputTheme;
    }
    export class GetThemes extends Request<{
      format: string;
      hash: long;
    }, account.TypeThemes> {
      format: string;
      hash: long;
    }
    export class SetContentSettings extends Request<{
      // flags: Api.Type;
      sensitiveEnabled?: true;
    } | void, Bool> {
      // flags: Api.Type;
      sensitiveEnabled?: true;
    }
    export class GetContentSettings extends Request<void, account.TypeContentSettings> {}
    export class GetMultiWallPapers extends Request<{
      wallpapers: Api.TypeInputWallPaper[];
    }, Api.TypeWallPaper[]> {
      wallpapers: Api.TypeInputWallPaper[];
    }
    export class GetGlobalPrivacySettings extends Request<void, Api.TypeGlobalPrivacySettings> {}
    export class SetGlobalPrivacySettings extends Request<{
      settings: Api.TypeGlobalPrivacySettings;
    }, Api.TypeGlobalPrivacySettings> {
      settings: Api.TypeGlobalPrivacySettings;
    }
    export class ReportProfilePhoto extends Request<{
      peer: Api.TypeInputPeer;
      photoId: Api.TypeInputPhoto;
      reason: Api.TypeReportReason;
      message: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      photoId: Api.TypeInputPhoto;
      reason: Api.TypeReportReason;
      message: string;
    }
    export class ResetPassword extends Request<void, account.TypeResetPasswordResult> {}
    export class DeclinePasswordReset extends Request<void, Bool> {}
    export class GetChatThemes extends Request<{
      hash: long;
    }, account.TypeThemes> {
      hash: long;
    }
    export class SetAuthorizationTTL extends Request<{
      authorizationTtlDays: int;
    }, Bool> {
      authorizationTtlDays: int;
    }
    export class ChangeAuthorizationSettings extends Request<{
      // flags: Api.Type;
      confirmed?: true;
      hash: long;
      encryptedRequestsDisabled?: Bool;
      callRequestsDisabled?: Bool;
    }, Bool> {
      // flags: Api.Type;
      confirmed?: true;
      hash: long;
      encryptedRequestsDisabled?: Bool;
      callRequestsDisabled?: Bool;
    }
    export class GetSavedRingtones extends Request<{
      hash: long;
    }, account.TypeSavedRingtones> {
      hash: long;
    }
    export class SaveRingtone extends Request<{
      id: Api.TypeInputDocument;
      unsave: Bool;
    }, account.TypeSavedRingtone> {
      id: Api.TypeInputDocument;
      unsave: Bool;
    }
    export class UploadRingtone extends Request<{
      file: Api.TypeInputFile;
      fileName: string;
      mimeType: string;
    }, Api.TypeDocument> {
      file: Api.TypeInputFile;
      fileName: string;
      mimeType: string;
    }
    export class UpdateEmojiStatus extends Request<{
      emojiStatus: Api.TypeEmojiStatus;
    }, Bool> {
      emojiStatus: Api.TypeEmojiStatus;
    }
    export class GetDefaultEmojiStatuses extends Request<{
      hash: long;
    }, account.TypeEmojiStatuses> {
      hash: long;
    }
    export class GetRecentEmojiStatuses extends Request<{
      hash: long;
    }, account.TypeEmojiStatuses> {
      hash: long;
    }
    export class ClearRecentEmojiStatuses extends Request<void, Bool> {}
    export class ReorderUsernames extends Request<{
      order: string[];
    }, Bool> {
      order: string[];
    }
    export class ToggleUsername extends Request<{
      username: string;
      active: Bool;
    }, Bool> {
      username: string;
      active: Bool;
    }
    export class GetDefaultProfilePhotoEmojis extends Request<{
      hash: long;
    }, Api.TypeEmojiList> {
      hash: long;
    }
    export class GetDefaultGroupPhotoEmojis extends Request<{
      hash: long;
    }, Api.TypeEmojiList> {
      hash: long;
    }
    export class GetAutoSaveSettings extends Request<void, account.TypeAutoSaveSettings> {}
    export class SaveAutoSaveSettings extends Request<{
      // flags: Api.Type;
      users?: true;
      chats?: true;
      broadcasts?: true;
      peer?: Api.TypeInputPeer;
      settings: Api.TypeAutoSaveSettings;
    }, Bool> {
      // flags: Api.Type;
      users?: true;
      chats?: true;
      broadcasts?: true;
      peer?: Api.TypeInputPeer;
      settings: Api.TypeAutoSaveSettings;
    }
    export class DeleteAutoSaveExceptions extends Request<void, Bool> {}
    export class InvalidateSignInCodes extends Request<{
      codes: string[];
    }, Bool> {
      codes: string[];
    }
    export class UpdateColor extends Request<{
      // flags: Api.Type;
      forProfile?: true;
      color?: Api.TypePeerColor;
    } | void, Bool> {
      // flags: Api.Type;
      forProfile?: true;
      color?: Api.TypePeerColor;
    }
    export class GetDefaultBackgroundEmojis extends Request<{
      hash: long;
    }, Api.TypeEmojiList> {
      hash: long;
    }
    export class GetChannelDefaultEmojiStatuses extends Request<{
      hash: long;
    }, account.TypeEmojiStatuses> {
      hash: long;
    }
    export class GetChannelRestrictedStatusEmojis extends Request<{
      hash: long;
    }, Api.TypeEmojiList> {
      hash: long;
    }
    export class UpdateBusinessWorkHours extends Request<{
      // flags: Api.Type;
      businessWorkHours?: Api.TypeBusinessWorkHours;
    } | void, Bool> {
      // flags: Api.Type;
      businessWorkHours?: Api.TypeBusinessWorkHours;
    }
    export class UpdateBusinessLocation extends Request<{
      // flags: Api.Type;
      geoPoint?: Api.TypeInputGeoPoint;
      address?: string;
    } | void, Bool> {
      // flags: Api.Type;
      geoPoint?: Api.TypeInputGeoPoint;
      address?: string;
    }
    export class UpdateBusinessGreetingMessage extends Request<{
      // flags: Api.Type;
      message?: Api.TypeInputBusinessGreetingMessage;
    } | void, Bool> {
      // flags: Api.Type;
      message?: Api.TypeInputBusinessGreetingMessage;
    }
    export class UpdateBusinessAwayMessage extends Request<{
      // flags: Api.Type;
      message?: Api.TypeInputBusinessAwayMessage;
    } | void, Bool> {
      // flags: Api.Type;
      message?: Api.TypeInputBusinessAwayMessage;
    }
    export class UpdateConnectedBot extends Request<{
      // flags: Api.Type;
      deleted?: true;
      rights?: Api.TypeBusinessBotRights;
      bot: Api.TypeInputUser;
      recipients: Api.TypeInputBusinessBotRecipients;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      deleted?: true;
      rights?: Api.TypeBusinessBotRights;
      bot: Api.TypeInputUser;
      recipients: Api.TypeInputBusinessBotRecipients;
    }
    export class GetConnectedBots extends Request<void, account.TypeConnectedBots> {}
    export class GetBotBusinessConnection extends Request<{
      connectionId: string;
    }, Api.TypeUpdates> {
      connectionId: string;
    }
    export class UpdateBusinessIntro extends Request<{
      // flags: Api.Type;
      intro?: Api.TypeInputBusinessIntro;
    } | void, Bool> {
      // flags: Api.Type;
      intro?: Api.TypeInputBusinessIntro;
    }
    export class ToggleConnectedBotPaused extends Request<{
      peer: Api.TypeInputPeer;
      paused: Bool;
    }, Bool> {
      peer: Api.TypeInputPeer;
      paused: Bool;
    }
    export class DisablePeerConnectedBot extends Request<{
      peer: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
    }
    export class UpdateBirthday extends Request<{
      // flags: Api.Type;
      birthday?: Api.TypeBirthday;
    } | void, Bool> {
      // flags: Api.Type;
      birthday?: Api.TypeBirthday;
    }
    export class CreateBusinessChatLink extends Request<{
      link: Api.TypeInputBusinessChatLink;
    }, Api.TypeBusinessChatLink> {
      link: Api.TypeInputBusinessChatLink;
    }
    export class EditBusinessChatLink extends Request<{
      slug: string;
      link: Api.TypeInputBusinessChatLink;
    }, Api.TypeBusinessChatLink> {
      slug: string;
      link: Api.TypeInputBusinessChatLink;
    }
    export class DeleteBusinessChatLink extends Request<{
      slug: string;
    }, Bool> {
      slug: string;
    }
    export class GetBusinessChatLinks extends Request<void, account.TypeBusinessChatLinks> {}
    export class ResolveBusinessChatLink extends Request<{
      slug: string;
    }, account.TypeResolvedBusinessChatLinks> {
      slug: string;
    }
    export class UpdatePersonalChannel extends Request<{
      channel: Api.TypeInputChannel;
    }, Bool> {
      channel: Api.TypeInputChannel;
    }
    export class ToggleSponsoredMessages extends Request<{
      enabled: Bool;
    }, Bool> {
      enabled: Bool;
    }
    export class GetReactionsNotifySettings extends Request<void, Api.TypeReactionsNotifySettings> {}
    export class SetReactionsNotifySettings extends Request<{
      settings: Api.TypeReactionsNotifySettings;
    }, Api.TypeReactionsNotifySettings> {
      settings: Api.TypeReactionsNotifySettings;
    }
    export class GetCollectibleEmojiStatuses extends Request<{
      hash: long;
    }, account.TypeEmojiStatuses> {
      hash: long;
    }
    export class GetPaidMessagesRevenue extends Request<{
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }, account.TypePaidMessagesRevenue> {
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }
    export class ToggleNoPaidMessagesException extends Request<{
      // flags: Api.Type;
      refundCharged?: true;
      requirePayment?: true;
      parentPeer?: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }, Bool> {
      // flags: Api.Type;
      refundCharged?: true;
      requirePayment?: true;
      parentPeer?: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }
    export class SetMainProfileTab extends Request<{
      tab: Api.TypeProfileTab;
    }, Bool> {
      tab: Api.TypeProfileTab;
    }
    export class SaveMusic extends Request<{
      // flags: Api.Type;
      unsave?: true;
      id: Api.TypeInputDocument;
      afterId?: Api.TypeInputDocument;
    }, Bool> {
      // flags: Api.Type;
      unsave?: true;
      id: Api.TypeInputDocument;
      afterId?: Api.TypeInputDocument;
    }
    export class GetSavedMusicIds extends Request<{
      hash: long;
    }, account.TypeSavedMusicIds> {
      hash: long;
    }
    export class GetUniqueGiftChatThemes extends Request<{
      offset: string;
      limit: int;
      hash: long;
    }, account.TypeChatThemes> {
      offset: string;
      limit: int;
      hash: long;
    }
    export class InitPasskeyRegistration extends Request<void, account.TypePasskeyRegistrationOptions> {}
    export class RegisterPasskey extends Request<{
      credential: Api.TypeInputPasskeyCredential;
    }, Api.TypePasskey> {
      credential: Api.TypeInputPasskeyCredential;
    }
    export class GetPasskeys extends Request<void, account.TypePasskeys> {}
    export class DeletePasskey extends Request<{
      id: string;
    }, Bool> {
      id: string;
    }
  }

  export namespace users {
    export class GetUsers extends Request<{
      id: Api.TypeInputUser[];
    }, Api.TypeUser[]> {
      id: Api.TypeInputUser[];
    }
    export class GetFullUser extends Request<{
      id: Api.TypeInputUser;
    }, users.TypeUserFull> {
      id: Api.TypeInputUser;
    }
    export class SetSecureValueErrors extends Request<{
      id: Api.TypeInputUser;
      errors: Api.TypeSecureValueError[];
    }, Bool> {
      id: Api.TypeInputUser;
      errors: Api.TypeSecureValueError[];
    }
    export class GetRequirementsToContact extends Request<{
      id: Api.TypeInputUser[];
    }, Api.TypeRequirementToContact[]> {
      id: Api.TypeInputUser[];
    }
    export class GetSavedMusic extends Request<{
      id: Api.TypeInputUser;
      offset: int;
      limit: int;
      hash: long;
    }, users.TypeSavedMusic> {
      id: Api.TypeInputUser;
      offset: int;
      limit: int;
      hash: long;
    }
    export class GetSavedMusicByID extends Request<{
      id: Api.TypeInputUser;
      documents: Api.TypeInputDocument[];
    }, users.TypeSavedMusic> {
      id: Api.TypeInputUser;
      documents: Api.TypeInputDocument[];
    }
    export class SuggestBirthday extends Request<{
      id: Api.TypeInputUser;
      birthday: Api.TypeBirthday;
    }, Api.TypeUpdates> {
      id: Api.TypeInputUser;
      birthday: Api.TypeBirthday;
    }
  }

  export namespace contacts {
    export class GetContactIDs extends Request<{
      hash: long;
    }, int[]> {
      hash: long;
    }
    export class GetStatuses extends Request<void, Api.TypeContactStatus[]> {}
    export class GetContacts extends Request<{
      hash: long;
    }, contacts.TypeContacts> {
      hash: long;
    }
    export class ImportContacts extends Request<{
      contacts: Api.TypeInputContact[];
    }, contacts.TypeImportedContacts> {
      contacts: Api.TypeInputContact[];
    }
    export class DeleteContacts extends Request<{
      id: Api.TypeInputUser[];
    }, Api.TypeUpdates> {
      id: Api.TypeInputUser[];
    }
    export class DeleteByPhones extends Request<{
      phones: string[];
    }, Bool> {
      phones: string[];
    }
    export class Block extends Request<{
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer;
    }, Bool> {
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer;
    }
    export class Unblock extends Request<{
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer;
    }, Bool> {
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer;
    }
    export class GetBlocked extends Request<{
      // flags: Api.Type;
      myStoriesFrom?: true;
      offset: int;
      limit: int;
    }, contacts.TypeBlocked> {
      // flags: Api.Type;
      myStoriesFrom?: true;
      offset: int;
      limit: int;
    }
    export class Search extends Request<{
      q: string;
      limit: int;
    }, contacts.TypeFound> {
      q: string;
      limit: int;
    }
    export class ResolveUsername extends Request<{
      // flags: Api.Type;
      username: string;
      referer?: string;
    }, contacts.TypeResolvedPeer> {
      // flags: Api.Type;
      username: string;
      referer?: string;
    }
    export class GetTopPeers extends Request<{
      // flags: Api.Type;
      correspondents?: true;
      botsPm?: true;
      botsInline?: true;
      phoneCalls?: true;
      forwardUsers?: true;
      forwardChats?: true;
      groups?: true;
      channels?: true;
      botsApp?: true;
      botsGuestchat?: true;
      offset: int;
      limit: int;
      hash: long;
    }, contacts.TypeTopPeers> {
      // flags: Api.Type;
      correspondents?: true;
      botsPm?: true;
      botsInline?: true;
      phoneCalls?: true;
      forwardUsers?: true;
      forwardChats?: true;
      groups?: true;
      channels?: true;
      botsApp?: true;
      botsGuestchat?: true;
      offset: int;
      limit: int;
      hash: long;
    }
    export class ResetTopPeerRating extends Request<{
      category: Api.TypeTopPeerCategory;
      peer: Api.TypeInputPeer;
    }, Bool> {
      category: Api.TypeTopPeerCategory;
      peer: Api.TypeInputPeer;
    }
    export class ResetSaved extends Request<void, Bool> {}
    export class GetSaved extends Request<void, Api.TypeSavedContact[]> {}
    export class ToggleTopPeers extends Request<{
      enabled: Bool;
    }, Bool> {
      enabled: Bool;
    }
    export class AddContact extends Request<{
      // flags: Api.Type;
      addPhonePrivacyException?: true;
      id: Api.TypeInputUser;
      firstName: string;
      lastName: string;
      phone: string;
      note?: Api.TypeTextWithEntities;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      addPhonePrivacyException?: true;
      id: Api.TypeInputUser;
      firstName: string;
      lastName: string;
      phone: string;
      note?: Api.TypeTextWithEntities;
    }
    export class AcceptContact extends Request<{
      id: Api.TypeInputUser;
    }, Api.TypeUpdates> {
      id: Api.TypeInputUser;
    }
    export class GetLocated extends Request<{
      // flags: Api.Type;
      background?: true;
      geoPoint: Api.TypeInputGeoPoint;
      selfExpires?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      background?: true;
      geoPoint: Api.TypeInputGeoPoint;
      selfExpires?: int;
    }
    export class BlockFromReplies extends Request<{
      // flags: Api.Type;
      deleteMessage?: true;
      deleteHistory?: true;
      reportSpam?: true;
      msgId: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      deleteMessage?: true;
      deleteHistory?: true;
      reportSpam?: true;
      msgId: int;
    }
    export class ResolvePhone extends Request<{
      phone: string;
    }, contacts.TypeResolvedPeer> {
      phone: string;
    }
    export class ExportContactToken extends Request<void, Api.TypeExportedContactToken> {}
    export class ImportContactToken extends Request<{
      token: string;
    }, Api.TypeUser> {
      token: string;
    }
    export class EditCloseFriends extends Request<{
      id: long[];
    }, Bool> {
      id: long[];
    }
    export class SetBlocked extends Request<{
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer[];
      limit: int;
    }, Bool> {
      // flags: Api.Type;
      myStoriesFrom?: true;
      id: Api.TypeInputPeer[];
      limit: int;
    }
    export class GetBirthdays extends Request<void, contacts.TypeContactBirthdays> {}
    export class GetSponsoredPeers extends Request<{
      q: string;
    }, contacts.TypeSponsoredPeers> {
      q: string;
    }
    export class UpdateContactNote extends Request<{
      id: Api.TypeInputUser;
      note: Api.TypeTextWithEntities;
    }, Bool> {
      id: Api.TypeInputUser;
      note: Api.TypeTextWithEntities;
    }
  }

  export namespace messages {
    export class GetMessages extends Request<{
      id: Api.TypeInputMessage[];
    }, messages.TypeMessages> {
      id: Api.TypeInputMessage[];
    }
    export class GetDialogs extends Request<{
      // flags: Api.Type;
      excludePinned?: true;
      folderId?: int;
      offsetDate: int;
      offsetId: int;
      offsetPeer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }, messages.TypeDialogs> {
      // flags: Api.Type;
      excludePinned?: true;
      folderId?: int;
      offsetDate: int;
      offsetId: int;
      offsetPeer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }
    export class GetHistory extends Request<{
      peer: Api.TypeInputPeer;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }, messages.TypeMessages> {
      peer: Api.TypeInputPeer;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }
    export class Search extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      q: string;
      fromId?: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      savedReaction?: Api.TypeReaction[];
      topMsgId?: int;
      filter: Api.TypeMessagesFilter;
      minDate: int;
      maxDate: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      q: string;
      fromId?: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      savedReaction?: Api.TypeReaction[];
      topMsgId?: int;
      filter: Api.TypeMessagesFilter;
      minDate: int;
      maxDate: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }
    export class ReadHistory extends Request<{
      peer: Api.TypeInputPeer;
      maxId: int;
    }, messages.TypeAffectedMessages> {
      peer: Api.TypeInputPeer;
      maxId: int;
    }
    export class DeleteHistory extends Request<{
      // flags: Api.Type;
      justClear?: true;
      revoke?: true;
      peer: Api.TypeInputPeer;
      maxId: int;
      minDate?: int;
      maxDate?: int;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      justClear?: true;
      revoke?: true;
      peer: Api.TypeInputPeer;
      maxId: int;
      minDate?: int;
      maxDate?: int;
    }
    export class DeleteMessages extends Request<{
      // flags: Api.Type;
      revoke?: true;
      id: int[];
    }, messages.TypeAffectedMessages> {
      // flags: Api.Type;
      revoke?: true;
      id: int[];
    }
    export class ReceivedMessages extends Request<{
      maxId: int;
    }, Api.TypeReceivedNotifyMessage[]> {
      maxId: int;
    }
    export class SetTyping extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      action: Api.TypeSendMessageAction;
    }, Bool> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      action: Api.TypeSendMessageAction;
    }
    export class SendMessage extends Request<{
      // flags: Api.Type;
      noWebpage?: true;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      message: string;
      randomId: long;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      noWebpage?: true;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      message: string;
      randomId: long;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }
    export class SendMedia extends Request<{
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      media: Api.TypeInputMedia;
      message: string;
      randomId: long;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      media: Api.TypeInputMedia;
      message: string;
      randomId: long;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }
    export class ForwardMessages extends Request<{
      // flags: Api.Type;
      silent?: true;
      background?: true;
      withMyScore?: true;
      dropAuthor?: true;
      dropMediaCaptions?: true;
      noforwards?: true;
      allowPaidFloodskip?: true;
      fromPeer: Api.TypeInputPeer;
      id: int[];
      randomId: long[];
      toPeer: Api.TypeInputPeer;
      topMsgId?: int;
      replyTo?: Api.TypeInputReplyTo;
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      videoTimestamp?: int;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      silent?: true;
      background?: true;
      withMyScore?: true;
      dropAuthor?: true;
      dropMediaCaptions?: true;
      noforwards?: true;
      allowPaidFloodskip?: true;
      fromPeer: Api.TypeInputPeer;
      id: int[];
      randomId: long[];
      toPeer: Api.TypeInputPeer;
      topMsgId?: int;
      replyTo?: Api.TypeInputReplyTo;
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      videoTimestamp?: int;
      allowPaidStars?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }
    export class ReportSpam extends Request<{
      peer: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
    }
    export class GetPeerSettings extends Request<{
      peer: Api.TypeInputPeer;
    }, messages.TypePeerSettings> {
      peer: Api.TypeInputPeer;
    }
    export class Report extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
      option: bytes;
      message: string;
    }, Api.TypeReportResult> {
      peer: Api.TypeInputPeer;
      id: int[];
      option: bytes;
      message: string;
    }
    export class GetChats extends Request<{
      id: long[];
    }, messages.TypeChats> {
      id: long[];
    }
    export class GetFullChat extends Request<{
      chatId: long;
    }, messages.TypeChatFull> {
      chatId: long;
    }
    export class EditChatTitle extends Request<{
      chatId: long;
      title: string;
    }, Api.TypeUpdates> {
      chatId: long;
      title: string;
    }
    export class EditChatPhoto extends Request<{
      chatId: long;
      photo: Api.TypeInputChatPhoto;
    }, Api.TypeUpdates> {
      chatId: long;
      photo: Api.TypeInputChatPhoto;
    }
    export class AddChatUser extends Request<{
      chatId: long;
      userId: Api.TypeInputUser;
      fwdLimit: int;
    }, messages.TypeInvitedUsers> {
      chatId: long;
      userId: Api.TypeInputUser;
      fwdLimit: int;
    }
    export class DeleteChatUser extends Request<{
      // flags: Api.Type;
      revokeHistory?: true;
      chatId: long;
      userId: Api.TypeInputUser;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      revokeHistory?: true;
      chatId: long;
      userId: Api.TypeInputUser;
    }
    export class CreateChat extends Request<{
      // flags: Api.Type;
      users: Api.TypeInputUser[];
      title: string;
      ttlPeriod?: int;
    }, messages.TypeInvitedUsers> {
      // flags: Api.Type;
      users: Api.TypeInputUser[];
      title: string;
      ttlPeriod?: int;
    }
    export class GetDhConfig extends Request<{
      version: int;
      randomLength: int;
    }, messages.TypeDhConfig> {
      version: int;
      randomLength: int;
    }
    export class RequestEncryption extends Request<{
      userId: Api.TypeInputUser;
      randomId: int;
      gA: bytes;
    }, Api.TypeEncryptedChat> {
      userId: Api.TypeInputUser;
      randomId: int;
      gA: bytes;
    }
    export class AcceptEncryption extends Request<{
      peer: Api.TypeInputEncryptedChat;
      gB: bytes;
      keyFingerprint: long;
    }, Api.TypeEncryptedChat> {
      peer: Api.TypeInputEncryptedChat;
      gB: bytes;
      keyFingerprint: long;
    }
    export class DiscardEncryption extends Request<{
      // flags: Api.Type;
      deleteHistory?: true;
      chatId: int;
    }, Bool> {
      // flags: Api.Type;
      deleteHistory?: true;
      chatId: int;
    }
    export class SetEncryptedTyping extends Request<{
      peer: Api.TypeInputEncryptedChat;
      typing: Bool;
    }, Bool> {
      peer: Api.TypeInputEncryptedChat;
      typing: Bool;
    }
    export class ReadEncryptedHistory extends Request<{
      peer: Api.TypeInputEncryptedChat;
      maxDate: int;
    }, Bool> {
      peer: Api.TypeInputEncryptedChat;
      maxDate: int;
    }
    export class SendEncrypted extends Request<{
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
    }, messages.TypeSentEncryptedMessage> {
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
    }
    export class SendEncryptedFile extends Request<{
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
      file: Api.TypeInputEncryptedFile;
    }, messages.TypeSentEncryptedMessage> {
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
      file: Api.TypeInputEncryptedFile;
    }
    export class SendEncryptedService extends Request<{
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
    }, messages.TypeSentEncryptedMessage> {
      peer: Api.TypeInputEncryptedChat;
      randomId: long;
      data: bytes;
    }
    export class ReceivedQueue extends Request<{
      maxQts: int;
    }, long[]> {
      maxQts: int;
    }
    export class ReportEncryptedSpam extends Request<{
      peer: Api.TypeInputEncryptedChat;
    }, Bool> {
      peer: Api.TypeInputEncryptedChat;
    }
    export class ReadMessageContents extends Request<{
      id: int[];
    }, messages.TypeAffectedMessages> {
      id: int[];
    }
    export class GetStickers extends Request<{
      emoticon: string;
      hash: long;
    }, messages.TypeStickers> {
      emoticon: string;
      hash: long;
    }
    export class GetAllStickers extends Request<{
      hash: long;
    }, messages.TypeAllStickers> {
      hash: long;
    }
    export class GetWebPagePreview extends Request<{
      // flags: Api.Type;
      message: string;
      entities?: Api.TypeMessageEntity[];
    }, messages.TypeWebPagePreview> {
      // flags: Api.Type;
      message: string;
      entities?: Api.TypeMessageEntity[];
    }
    export class ExportChatInvite extends Request<{
      // flags: Api.Type;
      legacyRevokePermanent?: true;
      requestNeeded?: true;
      peer: Api.TypeInputPeer;
      expireDate?: int;
      usageLimit?: int;
      title?: string;
      subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
    }, Api.TypeExportedChatInvite> {
      // flags: Api.Type;
      legacyRevokePermanent?: true;
      requestNeeded?: true;
      peer: Api.TypeInputPeer;
      expireDate?: int;
      usageLimit?: int;
      title?: string;
      subscriptionPricing?: Api.TypeStarsSubscriptionPricing;
    }
    export class CheckChatInvite extends Request<{
      hash: string;
    }, Api.TypeChatInvite> {
      hash: string;
    }
    export class ImportChatInvite extends Request<{
      hash: string;
    }, Api.TypeUpdates> {
      hash: string;
    }
    export class GetStickerSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
      hash: int;
    }, messages.TypeStickerSet> {
      stickerset: Api.TypeInputStickerSet;
      hash: int;
    }
    export class InstallStickerSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
      archived: Bool;
    }, messages.TypeStickerSetInstallResult> {
      stickerset: Api.TypeInputStickerSet;
      archived: Bool;
    }
    export class UninstallStickerSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
    }, Bool> {
      stickerset: Api.TypeInputStickerSet;
    }
    export class StartBot extends Request<{
      bot: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      randomId: long;
      startParam: string;
    }, Api.TypeUpdates> {
      bot: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      randomId: long;
      startParam: string;
    }
    export class GetMessagesViews extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
      increment: Bool;
    }, messages.TypeMessageViews> {
      peer: Api.TypeInputPeer;
      id: int[];
      increment: Bool;
    }
    export class EditChatAdmin extends Request<{
      chatId: long;
      userId: Api.TypeInputUser;
      isAdmin: Bool;
    }, Bool> {
      chatId: long;
      userId: Api.TypeInputUser;
      isAdmin: Bool;
    }
    export class MigrateChat extends Request<{
      chatId: long;
    }, Api.TypeUpdates> {
      chatId: long;
    }
    export class SearchGlobal extends Request<{
      // flags: Api.Type;
      broadcastsOnly?: true;
      groupsOnly?: true;
      usersOnly?: true;
      folderId?: int;
      q: string;
      filter: Api.TypeMessagesFilter;
      minDate: int;
      maxDate: int;
      offsetRate: int;
      offsetPeer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      broadcastsOnly?: true;
      groupsOnly?: true;
      usersOnly?: true;
      folderId?: int;
      q: string;
      filter: Api.TypeMessagesFilter;
      minDate: int;
      maxDate: int;
      offsetRate: int;
      offsetPeer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }
    export class ReorderStickerSets extends Request<{
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      order: long[];
    }, Bool> {
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      order: long[];
    }
    export class GetDocumentByHash extends Request<{
      sha256: bytes;
      size: long;
      mimeType: string;
    }, Api.TypeDocument> {
      sha256: bytes;
      size: long;
      mimeType: string;
    }
    export class GetSavedGifs extends Request<{
      hash: long;
    }, messages.TypeSavedGifs> {
      hash: long;
    }
    export class SaveGif extends Request<{
      id: Api.TypeInputDocument;
      unsave: Bool;
    }, Bool> {
      id: Api.TypeInputDocument;
      unsave: Bool;
    }
    export class GetInlineBotResults extends Request<{
      // flags: Api.Type;
      bot: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      geoPoint?: Api.TypeInputGeoPoint;
      query: string;
      offset: string;
    }, messages.TypeBotResults> {
      // flags: Api.Type;
      bot: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      geoPoint?: Api.TypeInputGeoPoint;
      query: string;
      offset: string;
    }
    export class SetInlineBotResults extends Request<{
      // flags: Api.Type;
      gallery?: true;
      private?: true;
      queryId: long;
      results: Api.TypeInputBotInlineResult[];
      cacheTime: int;
      nextOffset?: string;
      switchPm?: Api.TypeInlineBotSwitchPM;
      switchWebview?: Api.TypeInlineBotWebView;
    }, Bool> {
      // flags: Api.Type;
      gallery?: true;
      private?: true;
      queryId: long;
      results: Api.TypeInputBotInlineResult[];
      cacheTime: int;
      nextOffset?: string;
      switchPm?: Api.TypeInlineBotSwitchPM;
      switchWebview?: Api.TypeInlineBotWebView;
    }
    export class SendInlineBotResult extends Request<{
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      hideVia?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      randomId: long;
      queryId: long;
      id: string;
      scheduleDate?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      allowPaidStars?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      hideVia?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      randomId: long;
      queryId: long;
      id: string;
      scheduleDate?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      allowPaidStars?: long;
    }
    export class GetMessageEditData extends Request<{
      peer: Api.TypeInputPeer;
      id: int;
    }, messages.TypeMessageEditData> {
      peer: Api.TypeInputPeer;
      id: int;
    }
    export class EditMessage extends Request<{
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      peer: Api.TypeInputPeer;
      id: int;
      message?: string;
      media?: Api.TypeInputMedia;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      quickReplyShortcutId?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      peer: Api.TypeInputPeer;
      id: int;
      message?: string;
      media?: Api.TypeInputMedia;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
      scheduleDate?: int;
      scheduleRepeatPeriod?: int;
      quickReplyShortcutId?: int;
    }
    export class EditInlineBotMessage extends Request<{
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      id: Api.TypeInputBotInlineMessageID;
      message?: string;
      media?: Api.TypeInputMedia;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
    }, Bool> {
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      id: Api.TypeInputBotInlineMessageID;
      message?: string;
      media?: Api.TypeInputMedia;
      replyMarkup?: Api.TypeReplyMarkup;
      entities?: Api.TypeMessageEntity[];
    }
    export class GetBotCallbackAnswer extends Request<{
      // flags: Api.Type;
      game?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      data?: bytes;
      password?: Api.TypeInputCheckPasswordSRP;
    }, messages.TypeBotCallbackAnswer> {
      // flags: Api.Type;
      game?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      data?: bytes;
      password?: Api.TypeInputCheckPasswordSRP;
    }
    export class SetBotCallbackAnswer extends Request<{
      // flags: Api.Type;
      alert?: true;
      queryId: long;
      message?: string;
      url?: string;
      cacheTime: int;
    }, Bool> {
      // flags: Api.Type;
      alert?: true;
      queryId: long;
      message?: string;
      url?: string;
      cacheTime: int;
    }
    export class GetPeerDialogs extends Request<{
      peers: Api.TypeInputDialogPeer[];
    }, messages.TypePeerDialogs> {
      peers: Api.TypeInputDialogPeer[];
    }
    export class SaveDraft extends Request<{
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      replyTo?: Api.TypeInputReplyTo;
      peer: Api.TypeInputPeer;
      message: string;
      entities?: Api.TypeMessageEntity[];
      media?: Api.TypeInputMedia;
      effect?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }, Bool> {
      // flags: Api.Type;
      noWebpage?: true;
      invertMedia?: true;
      replyTo?: Api.TypeInputReplyTo;
      peer: Api.TypeInputPeer;
      message: string;
      entities?: Api.TypeMessageEntity[];
      media?: Api.TypeInputMedia;
      effect?: long;
      suggestedPost?: Api.TypeSuggestedPost;
    }
    export class GetAllDrafts extends Request<void, Api.TypeUpdates> {}
    export class GetFeaturedStickers extends Request<{
      hash: long;
    }, messages.TypeFeaturedStickers> {
      hash: long;
    }
    export class ReadFeaturedStickers extends Request<{
      id: long[];
    }, Bool> {
      id: long[];
    }
    export class GetRecentStickers extends Request<{
      // flags: Api.Type;
      attached?: true;
      hash: long;
    }, messages.TypeRecentStickers> {
      // flags: Api.Type;
      attached?: true;
      hash: long;
    }
    export class SaveRecentSticker extends Request<{
      // flags: Api.Type;
      attached?: true;
      id: Api.TypeInputDocument;
      unsave: Bool;
    }, Bool> {
      // flags: Api.Type;
      attached?: true;
      id: Api.TypeInputDocument;
      unsave: Bool;
    }
    export class ClearRecentStickers extends Request<{
      // flags: Api.Type;
      attached?: true;
    } | void, Bool> {
      // flags: Api.Type;
      attached?: true;
    }
    export class GetArchivedStickers extends Request<{
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      offsetId: long;
      limit: int;
    }, messages.TypeArchivedStickers> {
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      offsetId: long;
      limit: int;
    }
    export class GetMaskStickers extends Request<{
      hash: long;
    }, messages.TypeAllStickers> {
      hash: long;
    }
    export class GetAttachedStickers extends Request<{
      media: Api.TypeInputStickeredMedia;
    }, Api.TypeStickerSetCovered[]> {
      media: Api.TypeInputStickeredMedia;
    }
    export class SetGameScore extends Request<{
      // flags: Api.Type;
      editMessage?: true;
      force?: true;
      peer: Api.TypeInputPeer;
      id: int;
      userId: Api.TypeInputUser;
      score: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      editMessage?: true;
      force?: true;
      peer: Api.TypeInputPeer;
      id: int;
      userId: Api.TypeInputUser;
      score: int;
    }
    export class SetInlineGameScore extends Request<{
      // flags: Api.Type;
      editMessage?: true;
      force?: true;
      id: Api.TypeInputBotInlineMessageID;
      userId: Api.TypeInputUser;
      score: int;
    }, Bool> {
      // flags: Api.Type;
      editMessage?: true;
      force?: true;
      id: Api.TypeInputBotInlineMessageID;
      userId: Api.TypeInputUser;
      score: int;
    }
    export class GetGameHighScores extends Request<{
      peer: Api.TypeInputPeer;
      id: int;
      userId: Api.TypeInputUser;
    }, messages.TypeHighScores> {
      peer: Api.TypeInputPeer;
      id: int;
      userId: Api.TypeInputUser;
    }
    export class GetInlineGameHighScores extends Request<{
      id: Api.TypeInputBotInlineMessageID;
      userId: Api.TypeInputUser;
    }, messages.TypeHighScores> {
      id: Api.TypeInputBotInlineMessageID;
      userId: Api.TypeInputUser;
    }
    export class GetCommonChats extends Request<{
      userId: Api.TypeInputUser;
      maxId: long;
      limit: int;
    }, messages.TypeChats> {
      userId: Api.TypeInputUser;
      maxId: long;
      limit: int;
    }
    export class GetWebPage extends Request<{
      url: string;
      hash: int;
    }, messages.TypeWebPage> {
      url: string;
      hash: int;
    }
    export class ToggleDialogPin extends Request<{
      // flags: Api.Type;
      pinned?: true;
      peer: Api.TypeInputDialogPeer;
    }, Bool> {
      // flags: Api.Type;
      pinned?: true;
      peer: Api.TypeInputDialogPeer;
    }
    export class ReorderPinnedDialogs extends Request<{
      // flags: Api.Type;
      force?: true;
      folderId: int;
      order: Api.TypeInputDialogPeer[];
    }, Bool> {
      // flags: Api.Type;
      force?: true;
      folderId: int;
      order: Api.TypeInputDialogPeer[];
    }
    export class GetPinnedDialogs extends Request<{
      folderId: int;
    }, messages.TypePeerDialogs> {
      folderId: int;
    }
    export class SetBotShippingResults extends Request<{
      // flags: Api.Type;
      queryId: long;
      error?: string;
      shippingOptions?: Api.TypeShippingOption[];
    }, Bool> {
      // flags: Api.Type;
      queryId: long;
      error?: string;
      shippingOptions?: Api.TypeShippingOption[];
    }
    export class SetBotPrecheckoutResults extends Request<{
      // flags: Api.Type;
      success?: true;
      queryId: long;
      error?: string;
    }, Bool> {
      // flags: Api.Type;
      success?: true;
      queryId: long;
      error?: string;
    }
    export class UploadMedia extends Request<{
      // flags: Api.Type;
      businessConnectionId?: string;
      peer: Api.TypeInputPeer;
      media: Api.TypeInputMedia;
    }, Api.TypeMessageMedia> {
      // flags: Api.Type;
      businessConnectionId?: string;
      peer: Api.TypeInputPeer;
      media: Api.TypeInputMedia;
    }
    export class SendScreenshotNotification extends Request<{
      peer: Api.TypeInputPeer;
      replyTo: Api.TypeInputReplyTo;
      randomId: long;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      replyTo: Api.TypeInputReplyTo;
      randomId: long;
    }
    export class GetFavedStickers extends Request<{
      hash: long;
    }, messages.TypeFavedStickers> {
      hash: long;
    }
    export class FaveSticker extends Request<{
      id: Api.TypeInputDocument;
      unfave: Bool;
    }, Bool> {
      id: Api.TypeInputDocument;
      unfave: Bool;
    }
    export class GetUnreadMentions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }
    export class ReadMentions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
    }
    export class GetRecentLocations extends Request<{
      peer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }, messages.TypeMessages> {
      peer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }
    export class SendMultiMedia extends Request<{
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      multiMedia: Api.TypeInputSingleMedia[];
      scheduleDate?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      silent?: true;
      background?: true;
      clearDraft?: true;
      noforwards?: true;
      updateStickersetsOrder?: true;
      invertMedia?: true;
      allowPaidFloodskip?: true;
      peer: Api.TypeInputPeer;
      replyTo?: Api.TypeInputReplyTo;
      multiMedia: Api.TypeInputSingleMedia[];
      scheduleDate?: int;
      sendAs?: Api.TypeInputPeer;
      quickReplyShortcut?: Api.TypeInputQuickReplyShortcut;
      effect?: long;
      allowPaidStars?: long;
    }
    export class UploadEncryptedFile extends Request<{
      peer: Api.TypeInputEncryptedChat;
      file: Api.TypeInputEncryptedFile;
    }, Api.TypeEncryptedFile> {
      peer: Api.TypeInputEncryptedChat;
      file: Api.TypeInputEncryptedFile;
    }
    export class SearchStickerSets extends Request<{
      // flags: Api.Type;
      excludeFeatured?: true;
      q: string;
      hash: long;
    }, messages.TypeFoundStickerSets> {
      // flags: Api.Type;
      excludeFeatured?: true;
      q: string;
      hash: long;
    }
    export class GetSplitRanges extends Request<void, Api.TypeMessageRange[]> {}
    export class MarkDialogUnread extends Request<{
      // flags: Api.Type;
      unread?: true;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputDialogPeer;
    }, Bool> {
      // flags: Api.Type;
      unread?: true;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputDialogPeer;
    }
    export class GetDialogUnreadMarks extends Request<{
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
    } | void, Api.TypeDialogPeer[]> {
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
    }
    export class ClearAllDrafts extends Request<void, Bool> {}
    export class UpdatePinnedMessage extends Request<{
      // flags: Api.Type;
      silent?: true;
      unpin?: true;
      pmOneside?: true;
      peer: Api.TypeInputPeer;
      id: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      silent?: true;
      unpin?: true;
      pmOneside?: true;
      peer: Api.TypeInputPeer;
      id: int;
    }
    export class SendVote extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      options: bytes[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      options: bytes[];
    }
    export class GetPollResults extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      pollHash: long;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      pollHash: long;
    }
    export class GetOnlines extends Request<{
      peer: Api.TypeInputPeer;
    }, Api.TypeChatOnlines> {
      peer: Api.TypeInputPeer;
    }
    export class EditChatAbout extends Request<{
      peer: Api.TypeInputPeer;
      about: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      about: string;
    }
    export class EditChatDefaultBannedRights extends Request<{
      peer: Api.TypeInputPeer;
      bannedRights: Api.TypeChatBannedRights;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      bannedRights: Api.TypeChatBannedRights;
    }
    export class GetEmojiKeywords extends Request<{
      langCode: string;
    }, Api.TypeEmojiKeywordsDifference> {
      langCode: string;
    }
    export class GetEmojiKeywordsDifference extends Request<{
      langCode: string;
      fromVersion: int;
    }, Api.TypeEmojiKeywordsDifference> {
      langCode: string;
      fromVersion: int;
    }
    export class GetEmojiKeywordsLanguages extends Request<{
      langCodes: string[];
    }, Api.TypeEmojiLanguage[]> {
      langCodes: string[];
    }
    export class GetEmojiURL extends Request<{
      langCode: string;
    }, Api.TypeEmojiURL> {
      langCode: string;
    }
    export class GetSearchCounters extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      topMsgId?: int;
      filters: Api.TypeMessagesFilter[];
    }, messages.TypeSearchCounter[]> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      topMsgId?: int;
      filters: Api.TypeMessagesFilter[];
    }
    export class RequestUrlAuth extends Request<{
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      msgId?: int;
      buttonId?: int;
      url?: string;
      inAppOrigin?: string;
    } | void, Api.TypeUrlAuthResult> {
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      msgId?: int;
      buttonId?: int;
      url?: string;
      inAppOrigin?: string;
    }
    export class AcceptUrlAuth extends Request<{
      // flags: Api.Type;
      writeAllowed?: true;
      sharePhoneNumber?: true;
      peer?: Api.TypeInputPeer;
      msgId?: int;
      buttonId?: int;
      url?: string;
      matchCode?: string;
    } | void, Api.TypeUrlAuthResult> {
      // flags: Api.Type;
      writeAllowed?: true;
      sharePhoneNumber?: true;
      peer?: Api.TypeInputPeer;
      msgId?: int;
      buttonId?: int;
      url?: string;
      matchCode?: string;
    }
    export class HidePeerSettingsBar extends Request<{
      peer: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
    }
    export class GetScheduledHistory extends Request<{
      peer: Api.TypeInputPeer;
      hash: long;
    }, messages.TypeMessages> {
      peer: Api.TypeInputPeer;
      hash: long;
    }
    export class GetScheduledMessages extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, messages.TypeMessages> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class SendScheduledMessages extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class DeleteScheduledMessages extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class GetPollVotes extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      option?: bytes;
      offset?: string;
      limit: int;
    }, messages.TypeVotesList> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      option?: bytes;
      offset?: string;
      limit: int;
    }
    export class ToggleStickerSets extends Request<{
      // flags: Api.Type;
      uninstall?: true;
      archive?: true;
      unarchive?: true;
      stickersets: Api.TypeInputStickerSet[];
    }, Bool> {
      // flags: Api.Type;
      uninstall?: true;
      archive?: true;
      unarchive?: true;
      stickersets: Api.TypeInputStickerSet[];
    }
    export class GetDialogFilters extends Request<void, messages.TypeDialogFilters> {}
    export class GetSuggestedDialogFilters extends Request<void, Api.TypeDialogFilterSuggested[]> {}
    export class UpdateDialogFilter extends Request<{
      // flags: Api.Type;
      id: int;
      filter?: Api.TypeDialogFilter;
    }, Bool> {
      // flags: Api.Type;
      id: int;
      filter?: Api.TypeDialogFilter;
    }
    export class UpdateDialogFiltersOrder extends Request<{
      order: int[];
    }, Bool> {
      order: int[];
    }
    export class GetOldFeaturedStickers extends Request<{
      offset: int;
      limit: int;
      hash: long;
    }, messages.TypeFeaturedStickers> {
      offset: int;
      limit: int;
      hash: long;
    }
    export class GetReplies extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }, messages.TypeMessages> {
      peer: Api.TypeInputPeer;
      msgId: int;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }
    export class GetDiscussionMessage extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, messages.TypeDiscussionMessage> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class ReadDiscussion extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      readMaxId: int;
    }, Bool> {
      peer: Api.TypeInputPeer;
      msgId: int;
      readMaxId: int;
    }
    export class UnpinAllMessages extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
    }
    export class DeleteChat extends Request<{
      chatId: long;
    }, Bool> {
      chatId: long;
    }
    export class DeletePhoneCallHistory extends Request<{
      // flags: Api.Type;
      revoke?: true;
    } | void, messages.TypeAffectedFoundMessages> {
      // flags: Api.Type;
      revoke?: true;
    }
    export class CheckHistoryImport extends Request<{
      importHead: string;
    }, messages.TypeHistoryImportParsed> {
      importHead: string;
    }
    export class InitHistoryImport extends Request<{
      peer: Api.TypeInputPeer;
      file: Api.TypeInputFile;
      mediaCount: int;
    }, messages.TypeHistoryImport> {
      peer: Api.TypeInputPeer;
      file: Api.TypeInputFile;
      mediaCount: int;
    }
    export class UploadImportedMedia extends Request<{
      peer: Api.TypeInputPeer;
      importId: long;
      fileName: string;
      media: Api.TypeInputMedia;
    }, Api.TypeMessageMedia> {
      peer: Api.TypeInputPeer;
      importId: long;
      fileName: string;
      media: Api.TypeInputMedia;
    }
    export class StartHistoryImport extends Request<{
      peer: Api.TypeInputPeer;
      importId: long;
    }, Bool> {
      peer: Api.TypeInputPeer;
      importId: long;
    }
    export class GetExportedChatInvites extends Request<{
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      adminId: Api.TypeInputUser;
      offsetDate?: int;
      offsetLink?: string;
      limit: int;
    }, messages.TypeExportedChatInvites> {
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      adminId: Api.TypeInputUser;
      offsetDate?: int;
      offsetLink?: string;
      limit: int;
    }
    export class GetExportedChatInvite extends Request<{
      peer: Api.TypeInputPeer;
      link: string;
    }, messages.TypeExportedChatInvite> {
      peer: Api.TypeInputPeer;
      link: string;
    }
    export class EditExportedChatInvite extends Request<{
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      link: string;
      expireDate?: int;
      usageLimit?: int;
      requestNeeded?: Bool;
      title?: string;
    }, messages.TypeExportedChatInvite> {
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      link: string;
      expireDate?: int;
      usageLimit?: int;
      requestNeeded?: Bool;
      title?: string;
    }
    export class DeleteRevokedExportedChatInvites extends Request<{
      peer: Api.TypeInputPeer;
      adminId: Api.TypeInputUser;
    }, Bool> {
      peer: Api.TypeInputPeer;
      adminId: Api.TypeInputUser;
    }
    export class DeleteExportedChatInvite extends Request<{
      peer: Api.TypeInputPeer;
      link: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      link: string;
    }
    export class GetAdminsWithInvites extends Request<{
      peer: Api.TypeInputPeer;
    }, messages.TypeChatAdminsWithInvites> {
      peer: Api.TypeInputPeer;
    }
    export class GetChatInviteImporters extends Request<{
      // flags: Api.Type;
      requested?: true;
      subscriptionExpired?: true;
      peer: Api.TypeInputPeer;
      link?: string;
      q?: string;
      offsetDate: int;
      offsetUser: Api.TypeInputUser;
      limit: int;
    }, messages.TypeChatInviteImporters> {
      // flags: Api.Type;
      requested?: true;
      subscriptionExpired?: true;
      peer: Api.TypeInputPeer;
      link?: string;
      q?: string;
      offsetDate: int;
      offsetUser: Api.TypeInputUser;
      limit: int;
    }
    export class SetHistoryTTL extends Request<{
      peer: Api.TypeInputPeer;
      period: int;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      period: int;
    }
    export class CheckHistoryImportPeer extends Request<{
      peer: Api.TypeInputPeer;
    }, messages.TypeCheckedHistoryImportPeer> {
      peer: Api.TypeInputPeer;
    }
    export class SetChatTheme extends Request<{
      peer: Api.TypeInputPeer;
      theme: Api.TypeInputChatTheme;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      theme: Api.TypeInputChatTheme;
    }
    export class GetMessageReadParticipants extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, Api.TypeReadParticipantDate[]> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class GetSearchResultsCalendar extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      filter: Api.TypeMessagesFilter;
      offsetId: int;
      offsetDate: int;
    }, messages.TypeSearchResultsCalendar> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      filter: Api.TypeMessagesFilter;
      offsetId: int;
      offsetDate: int;
    }
    export class GetSearchResultsPositions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      filter: Api.TypeMessagesFilter;
      offsetId: int;
      limit: int;
    }, messages.TypeSearchResultsPositions> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      savedPeerId?: Api.TypeInputPeer;
      filter: Api.TypeMessagesFilter;
      offsetId: int;
      limit: int;
    }
    export class HideChatJoinRequest extends Request<{
      // flags: Api.Type;
      approved?: true;
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      approved?: true;
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }
    export class HideAllChatJoinRequests extends Request<{
      // flags: Api.Type;
      approved?: true;
      peer: Api.TypeInputPeer;
      link?: string;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      approved?: true;
      peer: Api.TypeInputPeer;
      link?: string;
    }
    export class ToggleNoForwards extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      enabled: Bool;
      requestMsgId?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      enabled: Bool;
      requestMsgId?: int;
    }
    export class SaveDefaultSendAs extends Request<{
      peer: Api.TypeInputPeer;
      sendAs: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
      sendAs: Api.TypeInputPeer;
    }
    export class SendReaction extends Request<{
      // flags: Api.Type;
      big?: true;
      addToRecent?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      reaction?: Api.TypeReaction[];
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      big?: true;
      addToRecent?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      reaction?: Api.TypeReaction[];
    }
    export class GetMessagesReactions extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class GetMessageReactionsList extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      reaction?: Api.TypeReaction;
      offset?: string;
      limit: int;
    }, messages.TypeMessageReactionsList> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      reaction?: Api.TypeReaction;
      offset?: string;
      limit: int;
    }
    export class SetChatAvailableReactions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      availableReactions: Api.TypeChatReactions;
      reactionsLimit?: int;
      paidEnabled?: Bool;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      availableReactions: Api.TypeChatReactions;
      reactionsLimit?: int;
      paidEnabled?: Bool;
    }
    export class GetAvailableReactions extends Request<{
      hash: int;
    }, messages.TypeAvailableReactions> {
      hash: int;
    }
    export class SetDefaultReaction extends Request<{
      reaction: Api.TypeReaction;
    }, Bool> {
      reaction: Api.TypeReaction;
    }
    export class TranslateText extends Request<{
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      id?: int[];
      text?: Api.TypeTextWithEntities[];
      toLang: string;
      tone?: string;
    }, messages.TypeTranslatedText> {
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      id?: int[];
      text?: Api.TypeTextWithEntities[];
      toLang: string;
      tone?: string;
    }
    export class GetUnreadReactions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }
    export class ReadReactions extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      savedPeerId?: Api.TypeInputPeer;
    }
    export class SearchSentMedia extends Request<{
      q: string;
      filter: Api.TypeMessagesFilter;
      limit: int;
    }, messages.TypeMessages> {
      q: string;
      filter: Api.TypeMessagesFilter;
      limit: int;
    }
    export class GetAttachMenuBots extends Request<{
      hash: long;
    }, Api.TypeAttachMenuBots> {
      hash: long;
    }
    export class GetAttachMenuBot extends Request<{
      bot: Api.TypeInputUser;
    }, Api.TypeAttachMenuBotsBot> {
      bot: Api.TypeInputUser;
    }
    export class ToggleBotInAttachMenu extends Request<{
      // flags: Api.Type;
      writeAllowed?: true;
      bot: Api.TypeInputUser;
      enabled: Bool;
    }, Bool> {
      // flags: Api.Type;
      writeAllowed?: true;
      bot: Api.TypeInputUser;
      enabled: Bool;
    }
    export class RequestWebView extends Request<{
      // flags: Api.Type;
      fromBotMenu?: true;
      silent?: true;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      url?: string;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
      replyTo?: Api.TypeInputReplyTo;
      sendAs?: Api.TypeInputPeer;
    }, Api.TypeWebViewResult> {
      // flags: Api.Type;
      fromBotMenu?: true;
      silent?: true;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      url?: string;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
      replyTo?: Api.TypeInputReplyTo;
      sendAs?: Api.TypeInputPeer;
    }
    export class ProlongWebView extends Request<{
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      queryId: long;
      replyTo?: Api.TypeInputReplyTo;
      sendAs?: Api.TypeInputPeer;
    }, Bool> {
      // flags: Api.Type;
      silent?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      queryId: long;
      replyTo?: Api.TypeInputReplyTo;
      sendAs?: Api.TypeInputPeer;
    }
    export class RequestSimpleWebView extends Request<{
      // flags: Api.Type;
      fromSwitchWebview?: true;
      fromSideMenu?: true;
      compact?: true;
      fullscreen?: true;
      bot: Api.TypeInputUser;
      url?: string;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }, Api.TypeWebViewResult> {
      // flags: Api.Type;
      fromSwitchWebview?: true;
      fromSideMenu?: true;
      compact?: true;
      fullscreen?: true;
      bot: Api.TypeInputUser;
      url?: string;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }
    export class SendWebViewResultMessage extends Request<{
      botQueryId: string;
      result: Api.TypeInputBotInlineResult;
    }, Api.TypeWebViewMessageSent> {
      botQueryId: string;
      result: Api.TypeInputBotInlineResult;
    }
    export class SendWebViewData extends Request<{
      bot: Api.TypeInputUser;
      randomId: long;
      buttonText: string;
      data: string;
    }, Api.TypeUpdates> {
      bot: Api.TypeInputUser;
      randomId: long;
      buttonText: string;
      data: string;
    }
    export class TranscribeAudio extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, messages.TypeTranscribedAudio> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class RateTranscribedAudio extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      transcriptionId: long;
      good: Bool;
    }, Bool> {
      peer: Api.TypeInputPeer;
      msgId: int;
      transcriptionId: long;
      good: Bool;
    }
    export class GetCustomEmojiDocuments extends Request<{
      documentId: long[];
    }, Api.TypeDocument[]> {
      documentId: long[];
    }
    export class GetEmojiStickers extends Request<{
      hash: long;
    }, messages.TypeAllStickers> {
      hash: long;
    }
    export class GetFeaturedEmojiStickers extends Request<{
      hash: long;
    }, messages.TypeFeaturedStickers> {
      hash: long;
    }
    export class ReportReaction extends Request<{
      peer: Api.TypeInputPeer;
      id: int;
      reactionPeer: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
      id: int;
      reactionPeer: Api.TypeInputPeer;
    }
    export class GetTopReactions extends Request<{
      limit: int;
      hash: long;
    }, messages.TypeReactions> {
      limit: int;
      hash: long;
    }
    export class GetRecentReactions extends Request<{
      limit: int;
      hash: long;
    }, messages.TypeReactions> {
      limit: int;
      hash: long;
    }
    export class ClearRecentReactions extends Request<void, Bool> {}
    export class GetExtendedMedia extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class SetDefaultHistoryTTL extends Request<{
      period: int;
    }, Bool> {
      period: int;
    }
    export class GetDefaultHistoryTTL extends Request<void, Api.TypeDefaultHistoryTTL> {}
    export class SendBotRequestedPeer extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId?: int;
      webappReqId?: string;
      buttonId: int;
      requestedPeers: Api.TypeInputPeer[];
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId?: int;
      webappReqId?: string;
      buttonId: int;
      requestedPeers: Api.TypeInputPeer[];
    }
    export class GetEmojiGroups extends Request<{
      hash: int;
    }, messages.TypeEmojiGroups> {
      hash: int;
    }
    export class GetEmojiStatusGroups extends Request<{
      hash: int;
    }, messages.TypeEmojiGroups> {
      hash: int;
    }
    export class GetEmojiProfilePhotoGroups extends Request<{
      hash: int;
    }, messages.TypeEmojiGroups> {
      hash: int;
    }
    export class SearchCustomEmoji extends Request<{
      emoticon: string;
      hash: long;
    }, Api.TypeEmojiList> {
      emoticon: string;
      hash: long;
    }
    export class TogglePeerTranslations extends Request<{
      // flags: Api.Type;
      disabled?: true;
      peer: Api.TypeInputPeer;
    }, Bool> {
      // flags: Api.Type;
      disabled?: true;
      peer: Api.TypeInputPeer;
    }
    export class GetBotApp extends Request<{
      app: Api.TypeInputBotApp;
      hash: long;
    }, messages.TypeBotApp> {
      app: Api.TypeInputBotApp;
      hash: long;
    }
    export class RequestAppWebView extends Request<{
      // flags: Api.Type;
      writeAllowed?: true;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      app: Api.TypeInputBotApp;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }, Api.TypeWebViewResult> {
      // flags: Api.Type;
      writeAllowed?: true;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      app: Api.TypeInputBotApp;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }
    export class SetChatWallPaper extends Request<{
      // flags: Api.Type;
      forBoth?: true;
      revert?: true;
      peer: Api.TypeInputPeer;
      wallpaper?: Api.TypeInputWallPaper;
      settings?: Api.TypeWallPaperSettings;
      id?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      forBoth?: true;
      revert?: true;
      peer: Api.TypeInputPeer;
      wallpaper?: Api.TypeInputWallPaper;
      settings?: Api.TypeWallPaperSettings;
      id?: int;
    }
    export class SearchEmojiStickerSets extends Request<{
      // flags: Api.Type;
      excludeFeatured?: true;
      q: string;
      hash: long;
    }, messages.TypeFoundStickerSets> {
      // flags: Api.Type;
      excludeFeatured?: true;
      q: string;
      hash: long;
    }
    export class GetSavedDialogs extends Request<{
      // flags: Api.Type;
      excludePinned?: true;
      parentPeer?: Api.TypeInputPeer;
      offsetDate: int;
      offsetId: int;
      offsetPeer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }, messages.TypeSavedDialogs> {
      // flags: Api.Type;
      excludePinned?: true;
      parentPeer?: Api.TypeInputPeer;
      offsetDate: int;
      offsetId: int;
      offsetPeer: Api.TypeInputPeer;
      limit: int;
      hash: long;
    }
    export class GetSavedHistory extends Request<{
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      offsetId: int;
      offsetDate: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }
    export class DeleteSavedHistory extends Request<{
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      maxId: int;
      minDate?: int;
      maxDate?: int;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      maxId: int;
      minDate?: int;
      maxDate?: int;
    }
    export class GetPinnedSavedDialogs extends Request<void, messages.TypeSavedDialogs> {}
    export class ToggleSavedDialogPin extends Request<{
      // flags: Api.Type;
      pinned?: true;
      peer: Api.TypeInputDialogPeer;
    }, Bool> {
      // flags: Api.Type;
      pinned?: true;
      peer: Api.TypeInputDialogPeer;
    }
    export class ReorderPinnedSavedDialogs extends Request<{
      // flags: Api.Type;
      force?: true;
      order: Api.TypeInputDialogPeer[];
    }, Bool> {
      // flags: Api.Type;
      force?: true;
      order: Api.TypeInputDialogPeer[];
    }
    export class GetSavedReactionTags extends Request<{
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      hash: long;
    }, messages.TypeSavedReactionTags> {
      // flags: Api.Type;
      peer?: Api.TypeInputPeer;
      hash: long;
    }
    export class UpdateSavedReactionTag extends Request<{
      // flags: Api.Type;
      reaction: Api.TypeReaction;
      title?: string;
    }, Bool> {
      // flags: Api.Type;
      reaction: Api.TypeReaction;
      title?: string;
    }
    export class GetDefaultTagReactions extends Request<{
      hash: long;
    }, messages.TypeReactions> {
      hash: long;
    }
    export class GetOutboxReadDate extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, Api.TypeOutboxReadDate> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class GetQuickReplies extends Request<{
      hash: long;
    }, messages.TypeQuickReplies> {
      hash: long;
    }
    export class ReorderQuickReplies extends Request<{
      order: int[];
    }, Bool> {
      order: int[];
    }
    export class CheckQuickReplyShortcut extends Request<{
      shortcut: string;
    }, Bool> {
      shortcut: string;
    }
    export class EditQuickReplyShortcut extends Request<{
      shortcutId: int;
      shortcut: string;
    }, Bool> {
      shortcutId: int;
      shortcut: string;
    }
    export class DeleteQuickReplyShortcut extends Request<{
      shortcutId: int;
    }, Bool> {
      shortcutId: int;
    }
    export class GetQuickReplyMessages extends Request<{
      // flags: Api.Type;
      shortcutId: int;
      id?: int[];
      hash: long;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      shortcutId: int;
      id?: int[];
      hash: long;
    }
    export class SendQuickReplyMessages extends Request<{
      peer: Api.TypeInputPeer;
      shortcutId: int;
      id: int[];
      randomId: long[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      shortcutId: int;
      id: int[];
      randomId: long[];
    }
    export class DeleteQuickReplyMessages extends Request<{
      shortcutId: int;
      id: int[];
    }, Api.TypeUpdates> {
      shortcutId: int;
      id: int[];
    }
    export class ToggleDialogFilterTags extends Request<{
      enabled: Bool;
    }, Bool> {
      enabled: Bool;
    }
    export class GetMyStickers extends Request<{
      offsetId: long;
      limit: int;
    }, messages.TypeMyStickers> {
      offsetId: long;
      limit: int;
    }
    export class GetEmojiStickerGroups extends Request<{
      hash: int;
    }, messages.TypeEmojiGroups> {
      hash: int;
    }
    export class GetAvailableEffects extends Request<{
      hash: int;
    }, messages.TypeAvailableEffects> {
      hash: int;
    }
    export class EditFactCheck extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      text: Api.TypeTextWithEntities;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      text: Api.TypeTextWithEntities;
    }
    export class DeleteFactCheck extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class GetFactCheck extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int[];
    }, Api.TypeFactCheck[]> {
      peer: Api.TypeInputPeer;
      msgId: int[];
    }
    export class RequestMainWebView extends Request<{
      // flags: Api.Type;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }, Api.TypeWebViewResult> {
      // flags: Api.Type;
      compact?: true;
      fullscreen?: true;
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
      startParam?: string;
      themeParams?: Api.TypeDataJSON;
      platform: string;
    }
    export class SendPaidReaction extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId: int;
      count: int;
      randomId: long;
      private?: Api.TypePaidReactionPrivacy;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId: int;
      count: int;
      randomId: long;
      private?: Api.TypePaidReactionPrivacy;
    }
    export class TogglePaidReactionPrivacy extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      private: Api.TypePaidReactionPrivacy;
    }, Bool> {
      peer: Api.TypeInputPeer;
      msgId: int;
      private: Api.TypePaidReactionPrivacy;
    }
    export class GetPaidReactionPrivacy extends Request<void, Api.TypeUpdates> {}
    export class ViewSponsoredMessage extends Request<{
      randomId: bytes;
    }, Bool> {
      randomId: bytes;
    }
    export class ClickSponsoredMessage extends Request<{
      // flags: Api.Type;
      media?: true;
      fullscreen?: true;
      randomId: bytes;
    }, Bool> {
      // flags: Api.Type;
      media?: true;
      fullscreen?: true;
      randomId: bytes;
    }
    export class ReportSponsoredMessage extends Request<{
      randomId: bytes;
      option: bytes;
    }, channels.TypeSponsoredMessageReportResult> {
      randomId: bytes;
      option: bytes;
    }
    export class GetSponsoredMessages extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId?: int;
    }, messages.TypeSponsoredMessages> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      msgId?: int;
    }
    export class SavePreparedInlineMessage extends Request<{
      // flags: Api.Type;
      result: Api.TypeInputBotInlineResult;
      userId: Api.TypeInputUser;
      peerTypes?: Api.TypeInlineQueryPeerType[];
    }, messages.TypeBotPreparedInlineMessage> {
      // flags: Api.Type;
      result: Api.TypeInputBotInlineResult;
      userId: Api.TypeInputUser;
      peerTypes?: Api.TypeInlineQueryPeerType[];
    }
    export class GetPreparedInlineMessage extends Request<{
      bot: Api.TypeInputUser;
      id: string;
    }, messages.TypePreparedInlineMessage> {
      bot: Api.TypeInputUser;
      id: string;
    }
    export class SearchStickers extends Request<{
      // flags: Api.Type;
      emojis?: true;
      q: string;
      emoticon: string;
      langCode: string[];
      offset: int;
      limit: int;
      hash: long;
    }, messages.TypeFoundStickers> {
      // flags: Api.Type;
      emojis?: true;
      q: string;
      emoticon: string;
      langCode: string[];
      offset: int;
      limit: int;
      hash: long;
    }
    export class ReportMessagesDelivery extends Request<{
      // flags: Api.Type;
      push?: true;
      peer: Api.TypeInputPeer;
      id: int[];
    }, Bool> {
      // flags: Api.Type;
      push?: true;
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class GetSavedDialogsByID extends Request<{
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      ids: Api.TypeInputPeer[];
    }, messages.TypeSavedDialogs> {
      // flags: Api.Type;
      parentPeer?: Api.TypeInputPeer;
      ids: Api.TypeInputPeer[];
    }
    export class ReadSavedHistory extends Request<{
      parentPeer: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      maxId: int;
    }, Bool> {
      parentPeer: Api.TypeInputPeer;
      peer: Api.TypeInputPeer;
      maxId: int;
    }
    export class ToggleTodoCompleted extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      completed: int[];
      incompleted: int[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      completed: int[];
      incompleted: int[];
    }
    export class AppendTodoList extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      list: Api.TypeTodoItem[];
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      list: Api.TypeTodoItem[];
    }
    export class ToggleSuggestedPostApproval extends Request<{
      // flags: Api.Type;
      reject?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      scheduleDate?: int;
      rejectComment?: string;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      reject?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
      scheduleDate?: int;
      rejectComment?: string;
    }
    export class GetForumTopics extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      q?: string;
      offsetDate: int;
      offsetId: int;
      offsetTopic: int;
      limit: int;
    }, messages.TypeForumTopics> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      q?: string;
      offsetDate: int;
      offsetId: int;
      offsetTopic: int;
      limit: int;
    }
    export class GetForumTopicsByID extends Request<{
      peer: Api.TypeInputPeer;
      topics: int[];
    }, messages.TypeForumTopics> {
      peer: Api.TypeInputPeer;
      topics: int[];
    }
    export class EditForumTopic extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topicId: int;
      title?: string;
      iconEmojiId?: long;
      closed?: Bool;
      hidden?: Bool;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topicId: int;
      title?: string;
      iconEmojiId?: long;
      closed?: Bool;
      hidden?: Bool;
    }
    export class UpdatePinnedForumTopic extends Request<{
      peer: Api.TypeInputPeer;
      topicId: int;
      pinned: Bool;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      topicId: int;
      pinned: Bool;
    }
    export class ReorderPinnedForumTopics extends Request<{
      // flags: Api.Type;
      force?: true;
      peer: Api.TypeInputPeer;
      order: int[];
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      force?: true;
      peer: Api.TypeInputPeer;
      order: int[];
    }
    export class CreateForumTopic extends Request<{
      // flags: Api.Type;
      titleMissing?: true;
      peer: Api.TypeInputPeer;
      title: string;
      iconColor?: int;
      iconEmojiId?: long;
      randomId: long;
      sendAs?: Api.TypeInputPeer;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      titleMissing?: true;
      peer: Api.TypeInputPeer;
      title: string;
      iconColor?: int;
      iconEmojiId?: long;
      randomId: long;
      sendAs?: Api.TypeInputPeer;
    }
    export class DeleteTopicHistory extends Request<{
      peer: Api.TypeInputPeer;
      topMsgId: int;
    }, messages.TypeAffectedHistory> {
      peer: Api.TypeInputPeer;
      topMsgId: int;
    }
    export class GetEmojiGameInfo extends Request<void, messages.TypeEmojiGameInfo> {}
    export class SummarizeText extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      toLang?: string;
      tone?: string;
    }, Api.TypeTextWithEntities> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      toLang?: string;
      tone?: string;
    }
    export class EditChatCreator extends Request<{
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
      password: Api.TypeInputCheckPasswordSRP;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
      password: Api.TypeInputCheckPasswordSRP;
    }
    export class GetFutureChatCreatorAfterLeave extends Request<{
      peer: Api.TypeInputPeer;
    }, Api.TypeUser> {
      peer: Api.TypeInputPeer;
    }
    export class EditChatParticipantRank extends Request<{
      peer: Api.TypeInputPeer;
      participant: Api.TypeInputPeer;
      rank: string;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      participant: Api.TypeInputPeer;
      rank: string;
    }
    export class DeclineUrlAuth extends Request<{
      url: string;
    }, Bool> {
      url: string;
    }
    export class CheckUrlAuthMatchCode extends Request<{
      url: string;
      matchCode: string;
    }, Bool> {
      url: string;
      matchCode: string;
    }
    export class ComposeMessageWithAI extends Request<{
      // flags: Api.Type;
      proofread?: true;
      emojify?: true;
      text: Api.TypeTextWithEntities;
      translateToLang?: string;
      tone?: Api.TypeInputAiComposeTone;
    }, messages.TypeComposedMessageWithAI> {
      // flags: Api.Type;
      proofread?: true;
      emojify?: true;
      text: Api.TypeTextWithEntities;
      translateToLang?: string;
      tone?: Api.TypeInputAiComposeTone;
    }
    export class ReportReadMetrics extends Request<{
      peer: Api.TypeInputPeer;
      metrics: Api.TypeInputMessageReadMetric[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      metrics: Api.TypeInputMessageReadMetric[];
    }
    export class ReportMusicListen extends Request<{
      id: Api.TypeInputDocument;
      listenedDuration: int;
    }, Bool> {
      id: Api.TypeInputDocument;
      listenedDuration: int;
    }
    export class AddPollAnswer extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      answer: Api.TypePollAnswer;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      answer: Api.TypePollAnswer;
    }
    export class DeletePollAnswer extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      option: bytes;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      option: bytes;
    }
    export class GetUnreadPollVotes extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
      offsetId: int;
      addOffset: int;
      limit: int;
      maxId: int;
      minId: int;
    }
    export class ReadPollVotes extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
    }, messages.TypeAffectedHistory> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      topMsgId?: int;
    }
    export class SetBotGuestChatResult extends Request<{
      queryId: long;
      result: Api.TypeInputBotInlineResult;
    }, Api.TypeInputBotInlineMessageID> {
      queryId: long;
      result: Api.TypeInputBotInlineResult;
    }
    export class DeleteParticipantReactions extends Request<{
      peer: Api.TypeInputPeer;
      participant: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
      participant: Api.TypeInputPeer;
    }
    export class DeleteParticipantReaction extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
      participant: Api.TypeInputPeer;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      msgId: int;
      participant: Api.TypeInputPeer;
    }
    export class GetPersonalChannelHistory extends Request<{
      userId: Api.TypeInputUser;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }, messages.TypeMessages> {
      userId: Api.TypeInputUser;
      limit: int;
      maxId: int;
      minId: int;
      hash: long;
    }
  }

  export namespace updates {
    export class GetState extends Request<void, updates.TypeState> {}
    export class GetDifference extends Request<{
      // flags: Api.Type;
      pts: int;
      ptsLimit?: int;
      ptsTotalLimit?: int;
      date: int;
      qts: int;
      qtsLimit?: int;
    }, updates.TypeDifference> {
      // flags: Api.Type;
      pts: int;
      ptsLimit?: int;
      ptsTotalLimit?: int;
      date: int;
      qts: int;
      qtsLimit?: int;
    }
    export class GetChannelDifference extends Request<{
      // flags: Api.Type;
      force?: true;
      channel: Api.TypeInputChannel;
      filter: Api.TypeChannelMessagesFilter;
      pts: int;
      limit: int;
    }, updates.TypeChannelDifference> {
      // flags: Api.Type;
      force?: true;
      channel: Api.TypeInputChannel;
      filter: Api.TypeChannelMessagesFilter;
      pts: int;
      limit: int;
    }
  }

  export namespace photos {
    export class UpdateProfilePhoto extends Request<{
      // flags: Api.Type;
      fallback?: true;
      bot?: Api.TypeInputUser;
      id: Api.TypeInputPhoto;
    }, photos.TypePhoto> {
      // flags: Api.Type;
      fallback?: true;
      bot?: Api.TypeInputUser;
      id: Api.TypeInputPhoto;
    }
    export class UploadProfilePhoto extends Request<{
      // flags: Api.Type;
      fallback?: true;
      bot?: Api.TypeInputUser;
      file?: Api.TypeInputFile;
      video?: Api.TypeInputFile;
      videoStartTs?: double;
      videoEmojiMarkup?: Api.TypeVideoSize;
    } | void, photos.TypePhoto> {
      // flags: Api.Type;
      fallback?: true;
      bot?: Api.TypeInputUser;
      file?: Api.TypeInputFile;
      video?: Api.TypeInputFile;
      videoStartTs?: double;
      videoEmojiMarkup?: Api.TypeVideoSize;
    }
    export class DeletePhotos extends Request<{
      id: Api.TypeInputPhoto[];
    }, long[]> {
      id: Api.TypeInputPhoto[];
    }
    export class GetUserPhotos extends Request<{
      userId: Api.TypeInputUser;
      offset: int;
      maxId: long;
      limit: int;
    }, photos.TypePhotos> {
      userId: Api.TypeInputUser;
      offset: int;
      maxId: long;
      limit: int;
    }
    export class UploadContactProfilePhoto extends Request<{
      // flags: Api.Type;
      suggest?: true;
      save?: true;
      userId: Api.TypeInputUser;
      file?: Api.TypeInputFile;
      video?: Api.TypeInputFile;
      videoStartTs?: double;
      videoEmojiMarkup?: Api.TypeVideoSize;
    }, photos.TypePhoto> {
      // flags: Api.Type;
      suggest?: true;
      save?: true;
      userId: Api.TypeInputUser;
      file?: Api.TypeInputFile;
      video?: Api.TypeInputFile;
      videoStartTs?: double;
      videoEmojiMarkup?: Api.TypeVideoSize;
    }
  }

  export namespace upload {
    export class SaveFilePart extends Request<{
      fileId: long;
      filePart: int;
      bytes: bytes;
    }, Bool> {
      fileId: long;
      filePart: int;
      bytes: bytes;
    }
    export class GetFile extends Request<{
      // flags: Api.Type;
      precise?: true;
      cdnSupported?: true;
      location: Api.TypeInputFileLocation;
      offset: long;
      limit: int;
    }, upload.TypeFile> {
      // flags: Api.Type;
      precise?: true;
      cdnSupported?: true;
      location: Api.TypeInputFileLocation;
      offset: long;
      limit: int;
    }
    export class SaveBigFilePart extends Request<{
      fileId: long;
      filePart: int;
      fileTotalParts: int;
      bytes: bytes;
    }, Bool> {
      fileId: long;
      filePart: int;
      fileTotalParts: int;
      bytes: bytes;
    }
    export class GetWebFile extends Request<{
      location: Api.TypeInputWebFileLocation;
      offset: int;
      limit: int;
    }, upload.TypeWebFile> {
      location: Api.TypeInputWebFileLocation;
      offset: int;
      limit: int;
    }
    export class GetCdnFile extends Request<{
      fileToken: bytes;
      offset: long;
      limit: int;
    }, upload.TypeCdnFile> {
      fileToken: bytes;
      offset: long;
      limit: int;
    }
    export class ReuploadCdnFile extends Request<{
      fileToken: bytes;
      requestToken: bytes;
    }, Api.TypeFileHash[]> {
      fileToken: bytes;
      requestToken: bytes;
    }
    export class GetCdnFileHashes extends Request<{
      fileToken: bytes;
      offset: long;
    }, Api.TypeFileHash[]> {
      fileToken: bytes;
      offset: long;
    }
    export class GetFileHashes extends Request<{
      location: Api.TypeInputFileLocation;
      offset: long;
    }, Api.TypeFileHash[]> {
      location: Api.TypeInputFileLocation;
      offset: long;
    }
  }

  export namespace help {
    export class GetConfig extends Request<void, Api.TypeConfig> {}
    export class GetNearestDc extends Request<void, Api.TypeNearestDc> {}
    export class GetAppUpdate extends Request<{
      source: string;
    }, help.TypeAppUpdate> {
      source: string;
    }
    export class GetInviteText extends Request<void, help.TypeInviteText> {}
    export class GetSupport extends Request<void, help.TypeSupport> {}
    export class SetBotUpdatesStatus extends Request<{
      pendingUpdatesCount: int;
      message: string;
    }, Bool> {
      pendingUpdatesCount: int;
      message: string;
    }
    export class GetCdnConfig extends Request<void, Api.TypeCdnConfig> {}
    export class GetRecentMeUrls extends Request<{
      referer: string;
    }, help.TypeRecentMeUrls> {
      referer: string;
    }
    export class GetTermsOfServiceUpdate extends Request<void, help.TypeTermsOfServiceUpdate> {}
    export class AcceptTermsOfService extends Request<{
      id: Api.TypeDataJSON;
    }, Bool> {
      id: Api.TypeDataJSON;
    }
    export class GetDeepLinkInfo extends Request<{
      path: string;
    }, help.TypeDeepLinkInfo> {
      path: string;
    }
    export class GetAppConfig extends Request<{
      hash: int;
    }, help.TypeAppConfig> {
      hash: int;
    }
    export class SaveAppLog extends Request<{
      events: Api.TypeInputAppEvent[];
    }, Bool> {
      events: Api.TypeInputAppEvent[];
    }
    export class GetPassportConfig extends Request<{
      hash: int;
    }, help.TypePassportConfig> {
      hash: int;
    }
    export class GetSupportName extends Request<void, help.TypeSupportName> {}
    export class GetUserInfo extends Request<{
      userId: Api.TypeInputUser;
    }, help.TypeUserInfo> {
      userId: Api.TypeInputUser;
    }
    export class EditUserInfo extends Request<{
      userId: Api.TypeInputUser;
      message: string;
      entities: Api.TypeMessageEntity[];
    }, help.TypeUserInfo> {
      userId: Api.TypeInputUser;
      message: string;
      entities: Api.TypeMessageEntity[];
    }
    export class GetPromoData extends Request<void, help.TypePromoData> {}
    export class HidePromoData extends Request<{
      peer: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
    }
    export class DismissSuggestion extends Request<{
      peer: Api.TypeInputPeer;
      suggestion: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      suggestion: string;
    }
    export class GetCountriesList extends Request<{
      langCode: string;
      hash: int;
    }, help.TypeCountriesList> {
      langCode: string;
      hash: int;
    }
    export class GetPremiumPromo extends Request<void, help.TypePremiumPromo> {}
    export class GetPeerColors extends Request<{
      hash: int;
    }, help.TypePeerColors> {
      hash: int;
    }
    export class GetPeerProfileColors extends Request<{
      hash: int;
    }, help.TypePeerColors> {
      hash: int;
    }
    export class GetTimezonesList extends Request<{
      hash: int;
    }, help.TypeTimezonesList> {
      hash: int;
    }
  }

  export namespace channels {
    export class ReadHistory extends Request<{
      channel: Api.TypeInputChannel;
      maxId: int;
    }, Bool> {
      channel: Api.TypeInputChannel;
      maxId: int;
    }
    export class DeleteMessages extends Request<{
      channel: Api.TypeInputChannel;
      id: int[];
    }, messages.TypeAffectedMessages> {
      channel: Api.TypeInputChannel;
      id: int[];
    }
    export class ReportSpam extends Request<{
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
      id: int[];
    }, Bool> {
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
      id: int[];
    }
    export class GetMessages extends Request<{
      channel: Api.TypeInputChannel;
      id: Api.TypeInputMessage[];
    }, messages.TypeMessages> {
      channel: Api.TypeInputChannel;
      id: Api.TypeInputMessage[];
    }
    export class GetParticipants extends Request<{
      channel: Api.TypeInputChannel;
      filter: Api.TypeChannelParticipantsFilter;
      offset: int;
      limit: int;
      hash: long;
    }, channels.TypeChannelParticipants> {
      channel: Api.TypeInputChannel;
      filter: Api.TypeChannelParticipantsFilter;
      offset: int;
      limit: int;
      hash: long;
    }
    export class GetParticipant extends Request<{
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
    }, channels.TypeChannelParticipant> {
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
    }
    export class GetChannels extends Request<{
      id: Api.TypeInputChannel[];
    }, messages.TypeChats> {
      id: Api.TypeInputChannel[];
    }
    export class GetFullChannel extends Request<{
      channel: Api.TypeInputChannel;
    }, messages.TypeChatFull> {
      channel: Api.TypeInputChannel;
    }
    export class CreateChannel extends Request<{
      // flags: Api.Type;
      broadcast?: true;
      megagroup?: true;
      forImport?: true;
      forum?: true;
      title: string;
      about: string;
      geoPoint?: Api.TypeInputGeoPoint;
      address?: string;
      ttlPeriod?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      broadcast?: true;
      megagroup?: true;
      forImport?: true;
      forum?: true;
      title: string;
      about: string;
      geoPoint?: Api.TypeInputGeoPoint;
      address?: string;
      ttlPeriod?: int;
    }
    export class EditAdmin extends Request<{
      // flags: Api.Type;
      channel: Api.TypeInputChannel;
      userId: Api.TypeInputUser;
      adminRights: Api.TypeChatAdminRights;
      rank?: string;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      channel: Api.TypeInputChannel;
      userId: Api.TypeInputUser;
      adminRights: Api.TypeChatAdminRights;
      rank?: string;
    }
    export class EditTitle extends Request<{
      channel: Api.TypeInputChannel;
      title: string;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      title: string;
    }
    export class EditPhoto extends Request<{
      channel: Api.TypeInputChannel;
      photo: Api.TypeInputChatPhoto;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      photo: Api.TypeInputChatPhoto;
    }
    export class CheckUsername extends Request<{
      channel: Api.TypeInputChannel;
      username: string;
    }, Bool> {
      channel: Api.TypeInputChannel;
      username: string;
    }
    export class UpdateUsername extends Request<{
      channel: Api.TypeInputChannel;
      username: string;
    }, Bool> {
      channel: Api.TypeInputChannel;
      username: string;
    }
    export class JoinChannel extends Request<{
      channel: Api.TypeInputChannel;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
    }
    export class LeaveChannel extends Request<{
      channel: Api.TypeInputChannel;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
    }
    export class InviteToChannel extends Request<{
      channel: Api.TypeInputChannel;
      users: Api.TypeInputUser[];
    }, messages.TypeInvitedUsers> {
      channel: Api.TypeInputChannel;
      users: Api.TypeInputUser[];
    }
    export class DeleteChannel extends Request<{
      channel: Api.TypeInputChannel;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
    }
    export class ExportMessageLink extends Request<{
      // flags: Api.Type;
      grouped?: true;
      thread?: true;
      channel: Api.TypeInputChannel;
      id: int;
    }, Api.TypeExportedMessageLink> {
      // flags: Api.Type;
      grouped?: true;
      thread?: true;
      channel: Api.TypeInputChannel;
      id: int;
    }
    export class ToggleSignatures extends Request<{
      // flags: Api.Type;
      signaturesEnabled?: true;
      profilesEnabled?: true;
      channel: Api.TypeInputChannel;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      signaturesEnabled?: true;
      profilesEnabled?: true;
      channel: Api.TypeInputChannel;
    }
    export class GetAdminedPublicChannels extends Request<{
      // flags: Api.Type;
      byLocation?: true;
      checkLimit?: true;
      forPersonal?: true;
    } | void, messages.TypeChats> {
      // flags: Api.Type;
      byLocation?: true;
      checkLimit?: true;
      forPersonal?: true;
    }
    export class EditBanned extends Request<{
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
      bannedRights: Api.TypeChatBannedRights;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
      bannedRights: Api.TypeChatBannedRights;
    }
    export class GetAdminLog extends Request<{
      // flags: Api.Type;
      channel: Api.TypeInputChannel;
      q: string;
      eventsFilter?: Api.TypeChannelAdminLogEventsFilter;
      admins?: Api.TypeInputUser[];
      maxId: long;
      minId: long;
      limit: int;
    }, channels.TypeAdminLogResults> {
      // flags: Api.Type;
      channel: Api.TypeInputChannel;
      q: string;
      eventsFilter?: Api.TypeChannelAdminLogEventsFilter;
      admins?: Api.TypeInputUser[];
      maxId: long;
      minId: long;
      limit: int;
    }
    export class SetStickers extends Request<{
      channel: Api.TypeInputChannel;
      stickerset: Api.TypeInputStickerSet;
    }, Bool> {
      channel: Api.TypeInputChannel;
      stickerset: Api.TypeInputStickerSet;
    }
    export class ReadMessageContents extends Request<{
      channel: Api.TypeInputChannel;
      id: int[];
    }, Bool> {
      channel: Api.TypeInputChannel;
      id: int[];
    }
    export class DeleteHistory extends Request<{
      // flags: Api.Type;
      forEveryone?: true;
      channel: Api.TypeInputChannel;
      maxId: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      forEveryone?: true;
      channel: Api.TypeInputChannel;
      maxId: int;
    }
    export class TogglePreHistoryHidden extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class GetLeftChannels extends Request<{
      offset: int;
    }, messages.TypeChats> {
      offset: int;
    }
    export class GetGroupsForDiscussion extends Request<void, messages.TypeChats> {}
    export class SetDiscussionGroup extends Request<{
      broadcast: Api.TypeInputChannel;
      group: Api.TypeInputChannel;
    }, Bool> {
      broadcast: Api.TypeInputChannel;
      group: Api.TypeInputChannel;
    }
    export class EditLocation extends Request<{
      channel: Api.TypeInputChannel;
      geoPoint: Api.TypeInputGeoPoint;
      address: string;
    }, Bool> {
      channel: Api.TypeInputChannel;
      geoPoint: Api.TypeInputGeoPoint;
      address: string;
    }
    export class ToggleSlowMode extends Request<{
      channel: Api.TypeInputChannel;
      seconds: int;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      seconds: int;
    }
    export class GetInactiveChannels extends Request<void, messages.TypeInactiveChats> {}
    export class ConvertToGigagroup extends Request<{
      channel: Api.TypeInputChannel;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
    }
    export class GetSendAs extends Request<{
      // flags: Api.Type;
      forPaidReactions?: true;
      forLiveStories?: true;
      peer: Api.TypeInputPeer;
    }, channels.TypeSendAsPeers> {
      // flags: Api.Type;
      forPaidReactions?: true;
      forLiveStories?: true;
      peer: Api.TypeInputPeer;
    }
    export class DeleteParticipantHistory extends Request<{
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
    }, messages.TypeAffectedHistory> {
      channel: Api.TypeInputChannel;
      participant: Api.TypeInputPeer;
    }
    export class ToggleJoinToSend extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class ToggleJoinRequest extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class ReorderUsernames extends Request<{
      channel: Api.TypeInputChannel;
      order: string[];
    }, Bool> {
      channel: Api.TypeInputChannel;
      order: string[];
    }
    export class ToggleUsername extends Request<{
      channel: Api.TypeInputChannel;
      username: string;
      active: Bool;
    }, Bool> {
      channel: Api.TypeInputChannel;
      username: string;
      active: Bool;
    }
    export class DeactivateAllUsernames extends Request<{
      channel: Api.TypeInputChannel;
    }, Bool> {
      channel: Api.TypeInputChannel;
    }
    export class ToggleForum extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
      tabs: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
      tabs: Bool;
    }
    export class ToggleAntiSpam extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class ReportAntiSpamFalsePositive extends Request<{
      channel: Api.TypeInputChannel;
      msgId: int;
    }, Bool> {
      channel: Api.TypeInputChannel;
      msgId: int;
    }
    export class ToggleParticipantsHidden extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class UpdateColor extends Request<{
      // flags: Api.Type;
      forProfile?: true;
      channel: Api.TypeInputChannel;
      color?: int;
      backgroundEmojiId?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      forProfile?: true;
      channel: Api.TypeInputChannel;
      color?: int;
      backgroundEmojiId?: long;
    }
    export class ToggleViewForumAsMessages extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class GetChannelRecommendations extends Request<{
      // flags: Api.Type;
      channel?: Api.TypeInputChannel;
    } | void, messages.TypeChats> {
      // flags: Api.Type;
      channel?: Api.TypeInputChannel;
    }
    export class UpdateEmojiStatus extends Request<{
      channel: Api.TypeInputChannel;
      emojiStatus: Api.TypeEmojiStatus;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      emojiStatus: Api.TypeEmojiStatus;
    }
    export class SetBoostsToUnblockRestrictions extends Request<{
      channel: Api.TypeInputChannel;
      boosts: int;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      boosts: int;
    }
    export class SetEmojiStickers extends Request<{
      channel: Api.TypeInputChannel;
      stickerset: Api.TypeInputStickerSet;
    }, Bool> {
      channel: Api.TypeInputChannel;
      stickerset: Api.TypeInputStickerSet;
    }
    export class RestrictSponsoredMessages extends Request<{
      channel: Api.TypeInputChannel;
      restricted: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      restricted: Bool;
    }
    export class SearchPosts extends Request<{
      // flags: Api.Type;
      hashtag?: string;
      query?: string;
      offsetRate: int;
      offsetPeer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
      allowPaidStars?: long;
    }, messages.TypeMessages> {
      // flags: Api.Type;
      hashtag?: string;
      query?: string;
      offsetRate: int;
      offsetPeer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
      allowPaidStars?: long;
    }
    export class UpdatePaidMessagesPrice extends Request<{
      // flags: Api.Type;
      broadcastMessagesAllowed?: true;
      channel: Api.TypeInputChannel;
      sendPaidMessagesStars: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      broadcastMessagesAllowed?: true;
      channel: Api.TypeInputChannel;
      sendPaidMessagesStars: long;
    }
    export class ToggleAutotranslation extends Request<{
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }, Api.TypeUpdates> {
      channel: Api.TypeInputChannel;
      enabled: Bool;
    }
    export class GetMessageAuthor extends Request<{
      channel: Api.TypeInputChannel;
      id: int;
    }, Api.TypeUser> {
      channel: Api.TypeInputChannel;
      id: int;
    }
    export class CheckSearchPostsFlood extends Request<{
      // flags: Api.Type;
      query?: string;
    } | void, Api.TypeSearchPostsFlood> {
      // flags: Api.Type;
      query?: string;
    }
    export class SetMainProfileTab extends Request<{
      channel: Api.TypeInputChannel;
      tab: Api.TypeProfileTab;
    }, Bool> {
      channel: Api.TypeInputChannel;
      tab: Api.TypeProfileTab;
    }
  }

  export namespace bots {
    export class SendCustomRequest extends Request<{
      customMethod: string;
      params: Api.TypeDataJSON;
    }, Api.TypeDataJSON> {
      customMethod: string;
      params: Api.TypeDataJSON;
    }
    export class AnswerWebhookJSONQuery extends Request<{
      queryId: long;
      data: Api.TypeDataJSON;
    }, Bool> {
      queryId: long;
      data: Api.TypeDataJSON;
    }
    export class SetBotCommands extends Request<{
      scope: Api.TypeBotCommandScope;
      langCode: string;
      commands: Api.TypeBotCommand[];
    }, Bool> {
      scope: Api.TypeBotCommandScope;
      langCode: string;
      commands: Api.TypeBotCommand[];
    }
    export class ResetBotCommands extends Request<{
      scope: Api.TypeBotCommandScope;
      langCode: string;
    }, Bool> {
      scope: Api.TypeBotCommandScope;
      langCode: string;
    }
    export class GetBotCommands extends Request<{
      scope: Api.TypeBotCommandScope;
      langCode: string;
    }, Api.TypeBotCommand[]> {
      scope: Api.TypeBotCommandScope;
      langCode: string;
    }
    export class SetBotMenuButton extends Request<{
      userId: Api.TypeInputUser;
      button: Api.TypeBotMenuButton;
    }, Bool> {
      userId: Api.TypeInputUser;
      button: Api.TypeBotMenuButton;
    }
    export class GetBotMenuButton extends Request<{
      userId: Api.TypeInputUser;
    }, Api.TypeBotMenuButton> {
      userId: Api.TypeInputUser;
    }
    export class SetBotBroadcastDefaultAdminRights extends Request<{
      adminRights: Api.TypeChatAdminRights;
    }, Bool> {
      adminRights: Api.TypeChatAdminRights;
    }
    export class SetBotGroupDefaultAdminRights extends Request<{
      adminRights: Api.TypeChatAdminRights;
    }, Bool> {
      adminRights: Api.TypeChatAdminRights;
    }
    export class SetBotInfo extends Request<{
      // flags: Api.Type;
      bot?: Api.TypeInputUser;
      langCode: string;
      name?: string;
      about?: string;
      description?: string;
    }, Bool> {
      // flags: Api.Type;
      bot?: Api.TypeInputUser;
      langCode: string;
      name?: string;
      about?: string;
      description?: string;
    }
    export class GetBotInfo extends Request<{
      // flags: Api.Type;
      bot?: Api.TypeInputUser;
      langCode: string;
    }, bots.TypeBotInfo> {
      // flags: Api.Type;
      bot?: Api.TypeInputUser;
      langCode: string;
    }
    export class ReorderUsernames extends Request<{
      bot: Api.TypeInputUser;
      order: string[];
    }, Bool> {
      bot: Api.TypeInputUser;
      order: string[];
    }
    export class ToggleUsername extends Request<{
      bot: Api.TypeInputUser;
      username: string;
      active: Bool;
    }, Bool> {
      bot: Api.TypeInputUser;
      username: string;
      active: Bool;
    }
    export class CanSendMessage extends Request<{
      bot: Api.TypeInputUser;
    }, Bool> {
      bot: Api.TypeInputUser;
    }
    export class AllowSendMessage extends Request<{
      bot: Api.TypeInputUser;
    }, Api.TypeUpdates> {
      bot: Api.TypeInputUser;
    }
    export class InvokeWebViewCustomMethod extends Request<{
      bot: Api.TypeInputUser;
      customMethod: string;
      params: Api.TypeDataJSON;
    }, Api.TypeDataJSON> {
      bot: Api.TypeInputUser;
      customMethod: string;
      params: Api.TypeDataJSON;
    }
    export class GetPopularAppBots extends Request<{
      offset: string;
      limit: int;
    }, bots.TypePopularAppBots> {
      offset: string;
      limit: int;
    }
    export class AddPreviewMedia extends Request<{
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia;
    }, Api.TypeBotPreviewMedia> {
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia;
    }
    export class EditPreviewMedia extends Request<{
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia;
      newMedia: Api.TypeInputMedia;
    }, Api.TypeBotPreviewMedia> {
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia;
      newMedia: Api.TypeInputMedia;
    }
    export class DeletePreviewMedia extends Request<{
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia[];
    }, Bool> {
      bot: Api.TypeInputUser;
      langCode: string;
      media: Api.TypeInputMedia[];
    }
    export class ReorderPreviewMedias extends Request<{
      bot: Api.TypeInputUser;
      langCode: string;
      order: Api.TypeInputMedia[];
    }, Bool> {
      bot: Api.TypeInputUser;
      langCode: string;
      order: Api.TypeInputMedia[];
    }
    export class GetPreviewInfo extends Request<{
      bot: Api.TypeInputUser;
      langCode: string;
    }, bots.TypePreviewInfo> {
      bot: Api.TypeInputUser;
      langCode: string;
    }
    export class GetPreviewMedias extends Request<{
      bot: Api.TypeInputUser;
    }, Api.TypeBotPreviewMedia[]> {
      bot: Api.TypeInputUser;
    }
    export class UpdateUserEmojiStatus extends Request<{
      userId: Api.TypeInputUser;
      emojiStatus: Api.TypeEmojiStatus;
    }, Bool> {
      userId: Api.TypeInputUser;
      emojiStatus: Api.TypeEmojiStatus;
    }
    export class ToggleUserEmojiStatusPermission extends Request<{
      bot: Api.TypeInputUser;
      enabled: Bool;
    }, Bool> {
      bot: Api.TypeInputUser;
      enabled: Bool;
    }
    export class CheckDownloadFileParams extends Request<{
      bot: Api.TypeInputUser;
      fileName: string;
      url: string;
    }, Bool> {
      bot: Api.TypeInputUser;
      fileName: string;
      url: string;
    }
    export class GetAdminedBots extends Request<void, Api.TypeUser[]> {}
    export class UpdateStarRefProgram extends Request<{
      // flags: Api.Type;
      bot: Api.TypeInputUser;
      commissionPermille: int;
      durationMonths?: int;
    }, Api.TypeStarRefProgram> {
      // flags: Api.Type;
      bot: Api.TypeInputUser;
      commissionPermille: int;
      durationMonths?: int;
    }
    export class SetCustomVerification extends Request<{
      // flags: Api.Type;
      enabled?: true;
      bot?: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      customDescription?: string;
    }, Bool> {
      // flags: Api.Type;
      enabled?: true;
      bot?: Api.TypeInputUser;
      peer: Api.TypeInputPeer;
      customDescription?: string;
    }
    export class GetBotRecommendations extends Request<{
      bot: Api.TypeInputUser;
    }, users.TypeUsers> {
      bot: Api.TypeInputUser;
    }
    export class CheckUsername extends Request<{
      username: string;
    }, Bool> {
      username: string;
    }
    export class CreateBot extends Request<{
      // flags: Api.Type;
      viaDeeplink?: true;
      name: string;
      username: string;
      managerId: Api.TypeInputUser;
    }, Api.TypeUser> {
      // flags: Api.Type;
      viaDeeplink?: true;
      name: string;
      username: string;
      managerId: Api.TypeInputUser;
    }
    export class ExportBotToken extends Request<{
      bot: Api.TypeInputUser;
      revoke: Bool;
    }, bots.TypeExportedBotToken> {
      bot: Api.TypeInputUser;
      revoke: Bool;
    }
    export class RequestWebViewButton extends Request<{
      userId: Api.TypeInputUser;
      button: Api.TypeKeyboardButton;
    }, bots.TypeRequestedButton> {
      userId: Api.TypeInputUser;
      button: Api.TypeKeyboardButton;
    }
    export class GetRequestedWebViewButton extends Request<{
      bot: Api.TypeInputUser;
      webappReqId: string;
    }, Api.TypeKeyboardButton> {
      bot: Api.TypeInputUser;
      webappReqId: string;
    }
    export class GetAccessSettings extends Request<{
      bot: Api.TypeInputUser;
    }, bots.TypeAccessSettings> {
      bot: Api.TypeInputUser;
    }
    export class EditAccessSettings extends Request<{
      // flags: Api.Type;
      restricted?: true;
      bot: Api.TypeInputUser;
      addUsers?: Api.TypeInputUser[];
    }, Bool> {
      // flags: Api.Type;
      restricted?: true;
      bot: Api.TypeInputUser;
      addUsers?: Api.TypeInputUser[];
    }
  }

  export namespace payments {
    export class GetPaymentForm extends Request<{
      // flags: Api.Type;
      invoice: Api.TypeInputInvoice;
      themeParams?: Api.TypeDataJSON;
    }, payments.TypePaymentForm> {
      // flags: Api.Type;
      invoice: Api.TypeInputInvoice;
      themeParams?: Api.TypeDataJSON;
    }
    export class GetPaymentReceipt extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, payments.TypePaymentReceipt> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class ValidateRequestedInfo extends Request<{
      // flags: Api.Type;
      save?: true;
      invoice: Api.TypeInputInvoice;
      info: Api.TypePaymentRequestedInfo;
    }, payments.TypeValidatedRequestedInfo> {
      // flags: Api.Type;
      save?: true;
      invoice: Api.TypeInputInvoice;
      info: Api.TypePaymentRequestedInfo;
    }
    export class SendPaymentForm extends Request<{
      // flags: Api.Type;
      formId: long;
      invoice: Api.TypeInputInvoice;
      requestedInfoId?: string;
      shippingOptionId?: string;
      credentials: Api.TypeInputPaymentCredentials;
      tipAmount?: long;
    }, payments.TypePaymentResult> {
      // flags: Api.Type;
      formId: long;
      invoice: Api.TypeInputInvoice;
      requestedInfoId?: string;
      shippingOptionId?: string;
      credentials: Api.TypeInputPaymentCredentials;
      tipAmount?: long;
    }
    export class GetSavedInfo extends Request<void, payments.TypeSavedInfo> {}
    export class ClearSavedInfo extends Request<{
      // flags: Api.Type;
      credentials?: true;
      info?: true;
    } | void, Bool> {
      // flags: Api.Type;
      credentials?: true;
      info?: true;
    }
    export class GetBankCardData extends Request<{
      number: string;
    }, payments.TypeBankCardData> {
      number: string;
    }
    export class ExportInvoice extends Request<{
      invoiceMedia: Api.TypeInputMedia;
    }, payments.TypeExportedInvoice> {
      invoiceMedia: Api.TypeInputMedia;
    }
    export class AssignAppStoreTransaction extends Request<{
      receipt: bytes;
      purpose: Api.TypeInputStorePaymentPurpose;
    }, Api.TypeUpdates> {
      receipt: bytes;
      purpose: Api.TypeInputStorePaymentPurpose;
    }
    export class AssignPlayMarketTransaction extends Request<{
      receipt: Api.TypeDataJSON;
      purpose: Api.TypeInputStorePaymentPurpose;
    }, Api.TypeUpdates> {
      receipt: Api.TypeDataJSON;
      purpose: Api.TypeInputStorePaymentPurpose;
    }
    export class GetPremiumGiftCodeOptions extends Request<{
      // flags: Api.Type;
      boostPeer?: Api.TypeInputPeer;
    } | void, Api.TypePremiumGiftCodeOption[]> {
      // flags: Api.Type;
      boostPeer?: Api.TypeInputPeer;
    }
    export class CheckGiftCode extends Request<{
      slug: string;
    }, payments.TypeCheckedGiftCode> {
      slug: string;
    }
    export class ApplyGiftCode extends Request<{
      slug: string;
    }, Api.TypeUpdates> {
      slug: string;
    }
    export class GetGiveawayInfo extends Request<{
      peer: Api.TypeInputPeer;
      msgId: int;
    }, payments.TypeGiveawayInfo> {
      peer: Api.TypeInputPeer;
      msgId: int;
    }
    export class LaunchPrepaidGiveaway extends Request<{
      peer: Api.TypeInputPeer;
      giveawayId: long;
      purpose: Api.TypeInputStorePaymentPurpose;
    }, Api.TypeUpdates> {
      peer: Api.TypeInputPeer;
      giveawayId: long;
      purpose: Api.TypeInputStorePaymentPurpose;
    }
    export class GetStarsTopupOptions extends Request<void, Api.TypeStarsTopupOption[]> {}
    export class GetStarsStatus extends Request<{
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
    }, payments.TypeStarsStatus> {
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
    }
    export class GetStarsTransactions extends Request<{
      // flags: Api.Type;
      inbound?: true;
      outbound?: true;
      ascending?: true;
      ton?: true;
      subscriptionId?: string;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }, payments.TypeStarsStatus> {
      // flags: Api.Type;
      inbound?: true;
      outbound?: true;
      ascending?: true;
      ton?: true;
      subscriptionId?: string;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }
    export class SendStarsForm extends Request<{
      formId: long;
      invoice: Api.TypeInputInvoice;
    }, payments.TypePaymentResult> {
      formId: long;
      invoice: Api.TypeInputInvoice;
    }
    export class RefundStarsCharge extends Request<{
      userId: Api.TypeInputUser;
      chargeId: string;
    }, Api.TypeUpdates> {
      userId: Api.TypeInputUser;
      chargeId: string;
    }
    export class GetStarsRevenueStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      ton?: true;
      peer: Api.TypeInputPeer;
    }, payments.TypeStarsRevenueStats> {
      // flags: Api.Type;
      dark?: true;
      ton?: true;
      peer: Api.TypeInputPeer;
    }
    export class GetStarsRevenueWithdrawalUrl extends Request<{
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
      amount?: long;
      password: Api.TypeInputCheckPasswordSRP;
    }, payments.TypeStarsRevenueWithdrawalUrl> {
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
      amount?: long;
      password: Api.TypeInputCheckPasswordSRP;
    }
    export class GetStarsRevenueAdsAccountUrl extends Request<{
      peer: Api.TypeInputPeer;
    }, payments.TypeStarsRevenueAdsAccountUrl> {
      peer: Api.TypeInputPeer;
    }
    export class GetStarsTransactionsByID extends Request<{
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
      id: Api.TypeInputStarsTransaction[];
    }, payments.TypeStarsStatus> {
      // flags: Api.Type;
      ton?: true;
      peer: Api.TypeInputPeer;
      id: Api.TypeInputStarsTransaction[];
    }
    export class GetStarsGiftOptions extends Request<{
      // flags: Api.Type;
      userId?: Api.TypeInputUser;
    } | void, Api.TypeStarsGiftOption[]> {
      // flags: Api.Type;
      userId?: Api.TypeInputUser;
    }
    export class GetStarsSubscriptions extends Request<{
      // flags: Api.Type;
      missingBalance?: true;
      peer: Api.TypeInputPeer;
      offset: string;
    }, payments.TypeStarsStatus> {
      // flags: Api.Type;
      missingBalance?: true;
      peer: Api.TypeInputPeer;
      offset: string;
    }
    export class ChangeStarsSubscription extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      subscriptionId: string;
      canceled?: Bool;
    }, Bool> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      subscriptionId: string;
      canceled?: Bool;
    }
    export class FulfillStarsSubscription extends Request<{
      peer: Api.TypeInputPeer;
      subscriptionId: string;
    }, Bool> {
      peer: Api.TypeInputPeer;
      subscriptionId: string;
    }
    export class GetStarsGiveawayOptions extends Request<void, Api.TypeStarsGiveawayOption[]> {}
    export class GetStarGifts extends Request<{
      hash: int;
    }, payments.TypeStarGifts> {
      hash: int;
    }
    export class SaveStarGift extends Request<{
      // flags: Api.Type;
      unsave?: true;
      stargift: Api.TypeInputSavedStarGift;
    }, Bool> {
      // flags: Api.Type;
      unsave?: true;
      stargift: Api.TypeInputSavedStarGift;
    }
    export class ConvertStarGift extends Request<{
      stargift: Api.TypeInputSavedStarGift;
    }, Bool> {
      stargift: Api.TypeInputSavedStarGift;
    }
    export class BotCancelStarsSubscription extends Request<{
      // flags: Api.Type;
      restore?: true;
      userId: Api.TypeInputUser;
      chargeId: string;
    }, Bool> {
      // flags: Api.Type;
      restore?: true;
      userId: Api.TypeInputUser;
      chargeId: string;
    }
    export class GetConnectedStarRefBots extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      offsetDate?: int;
      offsetLink?: string;
      limit: int;
    }, payments.TypeConnectedStarRefBots> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      offsetDate?: int;
      offsetLink?: string;
      limit: int;
    }
    export class GetConnectedStarRefBot extends Request<{
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
    }, payments.TypeConnectedStarRefBots> {
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
    }
    export class GetSuggestedStarRefBots extends Request<{
      // flags: Api.Type;
      orderByRevenue?: true;
      orderByDate?: true;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }, payments.TypeSuggestedStarRefBots> {
      // flags: Api.Type;
      orderByRevenue?: true;
      orderByDate?: true;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }
    export class ConnectStarRefBot extends Request<{
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
    }, payments.TypeConnectedStarRefBots> {
      peer: Api.TypeInputPeer;
      bot: Api.TypeInputUser;
    }
    export class EditConnectedStarRefBot extends Request<{
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      link: string;
    }, payments.TypeConnectedStarRefBots> {
      // flags: Api.Type;
      revoked?: true;
      peer: Api.TypeInputPeer;
      link: string;
    }
    export class GetStarGiftUpgradePreview extends Request<{
      giftId: long;
    }, payments.TypeStarGiftUpgradePreview> {
      giftId: long;
    }
    export class UpgradeStarGift extends Request<{
      // flags: Api.Type;
      keepOriginalDetails?: true;
      stargift: Api.TypeInputSavedStarGift;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      keepOriginalDetails?: true;
      stargift: Api.TypeInputSavedStarGift;
    }
    export class TransferStarGift extends Request<{
      stargift: Api.TypeInputSavedStarGift;
      toId: Api.TypeInputPeer;
    }, Api.TypeUpdates> {
      stargift: Api.TypeInputSavedStarGift;
      toId: Api.TypeInputPeer;
    }
    export class GetUniqueStarGift extends Request<{
      slug: string;
    }, payments.TypeUniqueStarGift> {
      slug: string;
    }
    export class GetSavedStarGifts extends Request<{
      // flags: Api.Type;
      excludeUnsaved?: true;
      excludeSaved?: true;
      excludeUnlimited?: true;
      excludeUnique?: true;
      sortByValue?: true;
      excludeUpgradable?: true;
      excludeUnupgradable?: true;
      peerColorAvailable?: true;
      excludeHosted?: true;
      peer: Api.TypeInputPeer;
      collectionId?: int;
      offset: string;
      limit: int;
    }, payments.TypeSavedStarGifts> {
      // flags: Api.Type;
      excludeUnsaved?: true;
      excludeSaved?: true;
      excludeUnlimited?: true;
      excludeUnique?: true;
      sortByValue?: true;
      excludeUpgradable?: true;
      excludeUnupgradable?: true;
      peerColorAvailable?: true;
      excludeHosted?: true;
      peer: Api.TypeInputPeer;
      collectionId?: int;
      offset: string;
      limit: int;
    }
    export class GetSavedStarGift extends Request<{
      stargift: Api.TypeInputSavedStarGift[];
    }, payments.TypeSavedStarGifts> {
      stargift: Api.TypeInputSavedStarGift[];
    }
    export class GetStarGiftWithdrawalUrl extends Request<{
      stargift: Api.TypeInputSavedStarGift;
      password: Api.TypeInputCheckPasswordSRP;
    }, payments.TypeStarGiftWithdrawalUrl> {
      stargift: Api.TypeInputSavedStarGift;
      password: Api.TypeInputCheckPasswordSRP;
    }
    export class ToggleChatStarGiftNotifications extends Request<{
      // flags: Api.Type;
      enabled?: true;
      peer: Api.TypeInputPeer;
    }, Bool> {
      // flags: Api.Type;
      enabled?: true;
      peer: Api.TypeInputPeer;
    }
    export class ToggleStarGiftsPinnedToTop extends Request<{
      peer: Api.TypeInputPeer;
      stargift: Api.TypeInputSavedStarGift[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      stargift: Api.TypeInputSavedStarGift[];
    }
    export class CanPurchaseStore extends Request<{
      purpose: Api.TypeInputStorePaymentPurpose;
    }, Bool> {
      purpose: Api.TypeInputStorePaymentPurpose;
    }
    export class GetResaleStarGifts extends Request<{
      // flags: Api.Type;
      sortByPrice?: true;
      sortByNum?: true;
      forCraft?: true;
      starsOnly?: true;
      attributesHash?: long;
      giftId: long;
      attributes?: Api.TypeStarGiftAttributeId[];
      offset: string;
      limit: int;
    }, payments.TypeResaleStarGifts> {
      // flags: Api.Type;
      sortByPrice?: true;
      sortByNum?: true;
      forCraft?: true;
      starsOnly?: true;
      attributesHash?: long;
      giftId: long;
      attributes?: Api.TypeStarGiftAttributeId[];
      offset: string;
      limit: int;
    }
    export class UpdateStarGiftPrice extends Request<{
      stargift: Api.TypeInputSavedStarGift;
      resellAmount: Api.TypeStarsAmount;
    }, Api.TypeUpdates> {
      stargift: Api.TypeInputSavedStarGift;
      resellAmount: Api.TypeStarsAmount;
    }
    export class CreateStarGiftCollection extends Request<{
      peer: Api.TypeInputPeer;
      title: string;
      stargift: Api.TypeInputSavedStarGift[];
    }, Api.TypeStarGiftCollection> {
      peer: Api.TypeInputPeer;
      title: string;
      stargift: Api.TypeInputSavedStarGift[];
    }
    export class UpdateStarGiftCollection extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      collectionId: int;
      title?: string;
      deleteStargift?: Api.TypeInputSavedStarGift[];
      addStargift?: Api.TypeInputSavedStarGift[];
      order?: Api.TypeInputSavedStarGift[];
    }, Api.TypeStarGiftCollection> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      collectionId: int;
      title?: string;
      deleteStargift?: Api.TypeInputSavedStarGift[];
      addStargift?: Api.TypeInputSavedStarGift[];
      order?: Api.TypeInputSavedStarGift[];
    }
    export class ReorderStarGiftCollections extends Request<{
      peer: Api.TypeInputPeer;
      order: int[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      order: int[];
    }
    export class DeleteStarGiftCollection extends Request<{
      peer: Api.TypeInputPeer;
      collectionId: int;
    }, Bool> {
      peer: Api.TypeInputPeer;
      collectionId: int;
    }
    export class GetStarGiftCollections extends Request<{
      peer: Api.TypeInputPeer;
      hash: long;
    }, payments.TypeStarGiftCollections> {
      peer: Api.TypeInputPeer;
      hash: long;
    }
    export class GetUniqueStarGiftValueInfo extends Request<{
      slug: string;
    }, payments.TypeUniqueStarGiftValueInfo> {
      slug: string;
    }
    export class CheckCanSendGift extends Request<{
      giftId: long;
    }, payments.TypeCheckCanSendGiftResult> {
      giftId: long;
    }
    export class GetStarGiftAuctionState extends Request<{
      auction: Api.TypeInputStarGiftAuction;
      version: int;
    }, payments.TypeStarGiftAuctionState> {
      auction: Api.TypeInputStarGiftAuction;
      version: int;
    }
    export class GetStarGiftAuctionAcquiredGifts extends Request<{
      giftId: long;
    }, payments.TypeStarGiftAuctionAcquiredGifts> {
      giftId: long;
    }
    export class GetStarGiftActiveAuctions extends Request<{
      hash: long;
    }, payments.TypeStarGiftActiveAuctions> {
      hash: long;
    }
    export class ResolveStarGiftOffer extends Request<{
      // flags: Api.Type;
      decline?: true;
      offerMsgId: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      decline?: true;
      offerMsgId: int;
    }
    export class SendStarGiftOffer extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      slug: string;
      price: Api.TypeStarsAmount;
      duration: int;
      randomId: long;
      allowPaidStars?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      slug: string;
      price: Api.TypeStarsAmount;
      duration: int;
      randomId: long;
      allowPaidStars?: long;
    }
    export class GetStarGiftUpgradeAttributes extends Request<{
      giftId: long;
    }, payments.TypeStarGiftUpgradeAttributes> {
      giftId: long;
    }
    export class GetCraftStarGifts extends Request<{
      giftId: long;
      offset: string;
      limit: int;
    }, payments.TypeSavedStarGifts> {
      giftId: long;
      offset: string;
      limit: int;
    }
    export class CraftStarGift extends Request<{
      stargift: Api.TypeInputSavedStarGift[];
    }, Api.TypeUpdates> {
      stargift: Api.TypeInputSavedStarGift[];
    }
  }

  export namespace stickers {
    export class CreateStickerSet extends Request<{
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      textColor?: true;
      userId: Api.TypeInputUser;
      title: string;
      shortName: string;
      thumb?: Api.TypeInputDocument;
      stickers: Api.TypeInputStickerSetItem[];
      software?: string;
    }, messages.TypeStickerSet> {
      // flags: Api.Type;
      masks?: true;
      emojis?: true;
      textColor?: true;
      userId: Api.TypeInputUser;
      title: string;
      shortName: string;
      thumb?: Api.TypeInputDocument;
      stickers: Api.TypeInputStickerSetItem[];
      software?: string;
    }
    export class RemoveStickerFromSet extends Request<{
      sticker: Api.TypeInputDocument;
    }, messages.TypeStickerSet> {
      sticker: Api.TypeInputDocument;
    }
    export class ChangeStickerPosition extends Request<{
      sticker: Api.TypeInputDocument;
      position: int;
    }, messages.TypeStickerSet> {
      sticker: Api.TypeInputDocument;
      position: int;
    }
    export class AddStickerToSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
      sticker: Api.TypeInputStickerSetItem;
    }, messages.TypeStickerSet> {
      stickerset: Api.TypeInputStickerSet;
      sticker: Api.TypeInputStickerSetItem;
    }
    export class SetStickerSetThumb extends Request<{
      // flags: Api.Type;
      stickerset: Api.TypeInputStickerSet;
      thumb?: Api.TypeInputDocument;
      thumbDocumentId?: long;
    }, messages.TypeStickerSet> {
      // flags: Api.Type;
      stickerset: Api.TypeInputStickerSet;
      thumb?: Api.TypeInputDocument;
      thumbDocumentId?: long;
    }
    export class CheckShortName extends Request<{
      shortName: string;
    }, Bool> {
      shortName: string;
    }
    export class SuggestShortName extends Request<{
      title: string;
    }, stickers.TypeSuggestedShortName> {
      title: string;
    }
    export class ChangeSticker extends Request<{
      // flags: Api.Type;
      sticker: Api.TypeInputDocument;
      emoji?: string;
      maskCoords?: Api.TypeMaskCoords;
      keywords?: string;
    }, messages.TypeStickerSet> {
      // flags: Api.Type;
      sticker: Api.TypeInputDocument;
      emoji?: string;
      maskCoords?: Api.TypeMaskCoords;
      keywords?: string;
    }
    export class RenameStickerSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
      title: string;
    }, messages.TypeStickerSet> {
      stickerset: Api.TypeInputStickerSet;
      title: string;
    }
    export class DeleteStickerSet extends Request<{
      stickerset: Api.TypeInputStickerSet;
    }, Bool> {
      stickerset: Api.TypeInputStickerSet;
    }
    export class ReplaceSticker extends Request<{
      sticker: Api.TypeInputDocument;
      newSticker: Api.TypeInputStickerSetItem;
    }, messages.TypeStickerSet> {
      sticker: Api.TypeInputDocument;
      newSticker: Api.TypeInputStickerSetItem;
    }
  }

  export namespace phone {
    export class GetCallConfig extends Request<void, Api.TypeDataJSON> {}
    export class RequestCall extends Request<{
      // flags: Api.Type;
      video?: true;
      userId: Api.TypeInputUser;
      randomId: int;
      gAHash: bytes;
      protocol: Api.TypePhoneCallProtocol;
    }, phone.TypePhoneCall> {
      // flags: Api.Type;
      video?: true;
      userId: Api.TypeInputUser;
      randomId: int;
      gAHash: bytes;
      protocol: Api.TypePhoneCallProtocol;
    }
    export class AcceptCall extends Request<{
      peer: Api.TypeInputPhoneCall;
      gB: bytes;
      protocol: Api.TypePhoneCallProtocol;
    }, phone.TypePhoneCall> {
      peer: Api.TypeInputPhoneCall;
      gB: bytes;
      protocol: Api.TypePhoneCallProtocol;
    }
    export class ConfirmCall extends Request<{
      peer: Api.TypeInputPhoneCall;
      gA: bytes;
      keyFingerprint: long;
      protocol: Api.TypePhoneCallProtocol;
    }, phone.TypePhoneCall> {
      peer: Api.TypeInputPhoneCall;
      gA: bytes;
      keyFingerprint: long;
      protocol: Api.TypePhoneCallProtocol;
    }
    export class ReceivedCall extends Request<{
      peer: Api.TypeInputPhoneCall;
    }, Bool> {
      peer: Api.TypeInputPhoneCall;
    }
    export class DiscardCall extends Request<{
      // flags: Api.Type;
      video?: true;
      peer: Api.TypeInputPhoneCall;
      duration: int;
      reason: Api.TypePhoneCallDiscardReason;
      connectionId: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      video?: true;
      peer: Api.TypeInputPhoneCall;
      duration: int;
      reason: Api.TypePhoneCallDiscardReason;
      connectionId: long;
    }
    export class SetCallRating extends Request<{
      // flags: Api.Type;
      userInitiative?: true;
      peer: Api.TypeInputPhoneCall;
      rating: int;
      comment: string;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      userInitiative?: true;
      peer: Api.TypeInputPhoneCall;
      rating: int;
      comment: string;
    }
    export class SaveCallDebug extends Request<{
      peer: Api.TypeInputPhoneCall;
      debug: Api.TypeDataJSON;
    }, Bool> {
      peer: Api.TypeInputPhoneCall;
      debug: Api.TypeDataJSON;
    }
    export class SendSignalingData extends Request<{
      peer: Api.TypeInputPhoneCall;
      data: bytes;
    }, Bool> {
      peer: Api.TypeInputPhoneCall;
      data: bytes;
    }
    export class CreateGroupCall extends Request<{
      // flags: Api.Type;
      rtmpStream?: true;
      peer: Api.TypeInputPeer;
      randomId: int;
      title?: string;
      scheduleDate?: int;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      rtmpStream?: true;
      peer: Api.TypeInputPeer;
      randomId: int;
      title?: string;
      scheduleDate?: int;
    }
    export class JoinGroupCall extends Request<{
      // flags: Api.Type;
      muted?: true;
      videoStopped?: true;
      call: Api.TypeInputGroupCall;
      joinAs: Api.TypeInputPeer;
      inviteHash?: string;
      publicKey?: int256;
      block?: bytes;
      params: Api.TypeDataJSON;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      muted?: true;
      videoStopped?: true;
      call: Api.TypeInputGroupCall;
      joinAs: Api.TypeInputPeer;
      inviteHash?: string;
      publicKey?: int256;
      block?: bytes;
      params: Api.TypeDataJSON;
    }
    export class LeaveGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
      source: int;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      source: int;
    }
    export class InviteToGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
      users: Api.TypeInputUser[];
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      users: Api.TypeInputUser[];
    }
    export class DiscardGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
    }
    export class ToggleGroupCallSettings extends Request<{
      // flags: Api.Type;
      resetInviteHash?: true;
      call: Api.TypeInputGroupCall;
      joinMuted?: Bool;
      messagesEnabled?: Bool;
      sendPaidMessagesStars?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      resetInviteHash?: true;
      call: Api.TypeInputGroupCall;
      joinMuted?: Bool;
      messagesEnabled?: Bool;
      sendPaidMessagesStars?: long;
    }
    export class GetGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
      limit: int;
    }, phone.TypeGroupCall> {
      call: Api.TypeInputGroupCall;
      limit: int;
    }
    export class GetGroupParticipants extends Request<{
      call: Api.TypeInputGroupCall;
      ids: Api.TypeInputPeer[];
      sources: int[];
      offset: string;
      limit: int;
    }, phone.TypeGroupParticipants> {
      call: Api.TypeInputGroupCall;
      ids: Api.TypeInputPeer[];
      sources: int[];
      offset: string;
      limit: int;
    }
    export class CheckGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
      sources: int[];
    }, int[]> {
      call: Api.TypeInputGroupCall;
      sources: int[];
    }
    export class ToggleGroupCallRecord extends Request<{
      // flags: Api.Type;
      start?: true;
      video?: true;
      call: Api.TypeInputGroupCall;
      title?: string;
      videoPortrait?: Bool;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      start?: true;
      video?: true;
      call: Api.TypeInputGroupCall;
      title?: string;
      videoPortrait?: Bool;
    }
    export class EditGroupCallParticipant extends Request<{
      // flags: Api.Type;
      call: Api.TypeInputGroupCall;
      participant: Api.TypeInputPeer;
      muted?: Bool;
      volume?: int;
      raiseHand?: Bool;
      videoStopped?: Bool;
      videoPaused?: Bool;
      presentationPaused?: Bool;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      call: Api.TypeInputGroupCall;
      participant: Api.TypeInputPeer;
      muted?: Bool;
      volume?: int;
      raiseHand?: Bool;
      videoStopped?: Bool;
      videoPaused?: Bool;
      presentationPaused?: Bool;
    }
    export class EditGroupCallTitle extends Request<{
      call: Api.TypeInputGroupCall;
      title: string;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      title: string;
    }
    export class GetGroupCallJoinAs extends Request<{
      peer: Api.TypeInputPeer;
    }, phone.TypeJoinAsPeers> {
      peer: Api.TypeInputPeer;
    }
    export class ExportGroupCallInvite extends Request<{
      // flags: Api.Type;
      canSelfUnmute?: true;
      call: Api.TypeInputGroupCall;
    }, phone.TypeExportedGroupCallInvite> {
      // flags: Api.Type;
      canSelfUnmute?: true;
      call: Api.TypeInputGroupCall;
    }
    export class ToggleGroupCallStartSubscription extends Request<{
      call: Api.TypeInputGroupCall;
      subscribed: Bool;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      subscribed: Bool;
    }
    export class StartScheduledGroupCall extends Request<{
      call: Api.TypeInputGroupCall;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
    }
    export class SaveDefaultGroupCallJoinAs extends Request<{
      peer: Api.TypeInputPeer;
      joinAs: Api.TypeInputPeer;
    }, Bool> {
      peer: Api.TypeInputPeer;
      joinAs: Api.TypeInputPeer;
    }
    export class JoinGroupCallPresentation extends Request<{
      call: Api.TypeInputGroupCall;
      params: Api.TypeDataJSON;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      params: Api.TypeDataJSON;
    }
    export class LeaveGroupCallPresentation extends Request<{
      call: Api.TypeInputGroupCall;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
    }
    export class GetGroupCallStreamChannels extends Request<{
      call: Api.TypeInputGroupCall;
    }, phone.TypeGroupCallStreamChannels> {
      call: Api.TypeInputGroupCall;
    }
    export class GetGroupCallStreamRtmpUrl extends Request<{
      // flags: Api.Type;
      liveStory?: true;
      peer: Api.TypeInputPeer;
      revoke: Bool;
    }, phone.TypeGroupCallStreamRtmpUrl> {
      // flags: Api.Type;
      liveStory?: true;
      peer: Api.TypeInputPeer;
      revoke: Bool;
    }
    export class SaveCallLog extends Request<{
      peer: Api.TypeInputPhoneCall;
      file: Api.TypeInputFile;
    }, Bool> {
      peer: Api.TypeInputPhoneCall;
      file: Api.TypeInputFile;
    }
    export class CreateConferenceCall extends Request<{
      // flags: Api.Type;
      muted?: true;
      videoStopped?: true;
      join?: true;
      randomId: int;
      publicKey?: int256;
      block?: bytes;
      params?: Api.TypeDataJSON;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      muted?: true;
      videoStopped?: true;
      join?: true;
      randomId: int;
      publicKey?: int256;
      block?: bytes;
      params?: Api.TypeDataJSON;
    }
    export class DeleteConferenceCallParticipants extends Request<{
      // flags: Api.Type;
      onlyLeft?: true;
      kick?: true;
      call: Api.TypeInputGroupCall;
      ids: long[];
      block: bytes;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      onlyLeft?: true;
      kick?: true;
      call: Api.TypeInputGroupCall;
      ids: long[];
      block: bytes;
    }
    export class SendConferenceCallBroadcast extends Request<{
      call: Api.TypeInputGroupCall;
      block: bytes;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      block: bytes;
    }
    export class InviteConferenceCallParticipant extends Request<{
      // flags: Api.Type;
      video?: true;
      call: Api.TypeInputGroupCall;
      userId: Api.TypeInputUser;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      video?: true;
      call: Api.TypeInputGroupCall;
      userId: Api.TypeInputUser;
    }
    export class DeclineConferenceCallInvite extends Request<{
      msgId: int;
    }, Api.TypeUpdates> {
      msgId: int;
    }
    export class GetGroupCallChainBlocks extends Request<{
      call: Api.TypeInputGroupCall;
      subChainId: int;
      offset: int;
      limit: int;
    }, Api.TypeUpdates> {
      call: Api.TypeInputGroupCall;
      subChainId: int;
      offset: int;
      limit: int;
    }
    export class SendGroupCallMessage extends Request<{
      // flags: Api.Type;
      call: Api.TypeInputGroupCall;
      randomId: long;
      message: Api.TypeTextWithEntities;
      allowPaidStars?: long;
      sendAs?: Api.TypeInputPeer;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      call: Api.TypeInputGroupCall;
      randomId: long;
      message: Api.TypeTextWithEntities;
      allowPaidStars?: long;
      sendAs?: Api.TypeInputPeer;
    }
    export class SendGroupCallEncryptedMessage extends Request<{
      call: Api.TypeInputGroupCall;
      encryptedMessage: bytes;
    }, Bool> {
      call: Api.TypeInputGroupCall;
      encryptedMessage: bytes;
    }
    export class DeleteGroupCallMessages extends Request<{
      // flags: Api.Type;
      reportSpam?: true;
      call: Api.TypeInputGroupCall;
      messages: int[];
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      reportSpam?: true;
      call: Api.TypeInputGroupCall;
      messages: int[];
    }
    export class DeleteGroupCallParticipantMessages extends Request<{
      // flags: Api.Type;
      reportSpam?: true;
      call: Api.TypeInputGroupCall;
      participant: Api.TypeInputPeer;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      reportSpam?: true;
      call: Api.TypeInputGroupCall;
      participant: Api.TypeInputPeer;
    }
    export class GetGroupCallStars extends Request<{
      call: Api.TypeInputGroupCall;
    }, phone.TypeGroupCallStars> {
      call: Api.TypeInputGroupCall;
    }
    export class SaveDefaultSendAs extends Request<{
      call: Api.TypeInputGroupCall;
      sendAs: Api.TypeInputPeer;
    }, Bool> {
      call: Api.TypeInputGroupCall;
      sendAs: Api.TypeInputPeer;
    }
  }

  export namespace langpack {
    export class GetLangPack extends Request<{
      langPack: string;
      langCode: string;
    }, Api.TypeLangPackDifference> {
      langPack: string;
      langCode: string;
    }
    export class GetStrings extends Request<{
      langPack: string;
      langCode: string;
      keys: string[];
    }, Api.TypeLangPackString[]> {
      langPack: string;
      langCode: string;
      keys: string[];
    }
    export class GetDifference extends Request<{
      langPack: string;
      langCode: string;
      fromVersion: int;
    }, Api.TypeLangPackDifference> {
      langPack: string;
      langCode: string;
      fromVersion: int;
    }
    export class GetLanguages extends Request<{
      langPack: string;
    }, Api.TypeLangPackLanguage[]> {
      langPack: string;
    }
    export class GetLanguage extends Request<{
      langPack: string;
      langCode: string;
    }, Api.TypeLangPackLanguage> {
      langPack: string;
      langCode: string;
    }
  }

  export namespace folders {
    export class EditPeerFolders extends Request<{
      folderPeers: Api.TypeInputFolderPeer[];
    }, Api.TypeUpdates> {
      folderPeers: Api.TypeInputFolderPeer[];
    }
  }

  export namespace stats {
    export class GetBroadcastStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
    }, stats.TypeBroadcastStats> {
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
    }
    export class LoadAsyncGraph extends Request<{
      // flags: Api.Type;
      token: string;
      x?: long;
    }, Api.TypeStatsGraph> {
      // flags: Api.Type;
      token: string;
      x?: long;
    }
    export class GetMegagroupStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
    }, stats.TypeMegagroupStats> {
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
    }
    export class GetMessagePublicForwards extends Request<{
      channel: Api.TypeInputChannel;
      msgId: int;
      offset: string;
      limit: int;
    }, stats.TypePublicForwards> {
      channel: Api.TypeInputChannel;
      msgId: int;
      offset: string;
      limit: int;
    }
    export class GetMessageStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
      msgId: int;
    }, stats.TypeMessageStats> {
      // flags: Api.Type;
      dark?: true;
      channel: Api.TypeInputChannel;
      msgId: int;
    }
    export class GetStoryStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      peer: Api.TypeInputPeer;
      id: int;
    }, stats.TypeStoryStats> {
      // flags: Api.Type;
      dark?: true;
      peer: Api.TypeInputPeer;
      id: int;
    }
    export class GetStoryPublicForwards extends Request<{
      peer: Api.TypeInputPeer;
      id: int;
      offset: string;
      limit: int;
    }, stats.TypePublicForwards> {
      peer: Api.TypeInputPeer;
      id: int;
      offset: string;
      limit: int;
    }
    export class GetPollStats extends Request<{
      // flags: Api.Type;
      dark?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
    }, stats.TypePollStats> {
      // flags: Api.Type;
      dark?: true;
      peer: Api.TypeInputPeer;
      msgId: int;
    }
  }

  export namespace chatlists {
    export class ExportChatlistInvite extends Request<{
      chatlist: Api.TypeInputChatlist;
      title: string;
      peers: Api.TypeInputPeer[];
    }, chatlists.TypeExportedChatlistInvite> {
      chatlist: Api.TypeInputChatlist;
      title: string;
      peers: Api.TypeInputPeer[];
    }
    export class DeleteExportedInvite extends Request<{
      chatlist: Api.TypeInputChatlist;
      slug: string;
    }, Bool> {
      chatlist: Api.TypeInputChatlist;
      slug: string;
    }
    export class EditExportedInvite extends Request<{
      // flags: Api.Type;
      chatlist: Api.TypeInputChatlist;
      slug: string;
      title?: string;
      peers?: Api.TypeInputPeer[];
    }, Api.TypeExportedChatlistInvite> {
      // flags: Api.Type;
      chatlist: Api.TypeInputChatlist;
      slug: string;
      title?: string;
      peers?: Api.TypeInputPeer[];
    }
    export class GetExportedInvites extends Request<{
      chatlist: Api.TypeInputChatlist;
    }, chatlists.TypeExportedInvites> {
      chatlist: Api.TypeInputChatlist;
    }
    export class CheckChatlistInvite extends Request<{
      slug: string;
    }, chatlists.TypeChatlistInvite> {
      slug: string;
    }
    export class JoinChatlistInvite extends Request<{
      slug: string;
      peers: Api.TypeInputPeer[];
    }, Api.TypeUpdates> {
      slug: string;
      peers: Api.TypeInputPeer[];
    }
    export class GetChatlistUpdates extends Request<{
      chatlist: Api.TypeInputChatlist;
    }, chatlists.TypeChatlistUpdates> {
      chatlist: Api.TypeInputChatlist;
    }
    export class JoinChatlistUpdates extends Request<{
      chatlist: Api.TypeInputChatlist;
      peers: Api.TypeInputPeer[];
    }, Api.TypeUpdates> {
      chatlist: Api.TypeInputChatlist;
      peers: Api.TypeInputPeer[];
    }
    export class HideChatlistUpdates extends Request<{
      chatlist: Api.TypeInputChatlist;
    }, Bool> {
      chatlist: Api.TypeInputChatlist;
    }
    export class GetLeaveChatlistSuggestions extends Request<{
      chatlist: Api.TypeInputChatlist;
    }, Api.TypePeer[]> {
      chatlist: Api.TypeInputChatlist;
    }
    export class LeaveChatlist extends Request<{
      chatlist: Api.TypeInputChatlist;
      peers: Api.TypeInputPeer[];
    }, Api.TypeUpdates> {
      chatlist: Api.TypeInputChatlist;
      peers: Api.TypeInputPeer[];
    }
  }

  export namespace stories {
    export class CanSendStory extends Request<{
      peer: Api.TypeInputPeer;
    }, stories.TypeCanSendStoryCount> {
      peer: Api.TypeInputPeer;
    }
    export class SendStory extends Request<{
      // flags: Api.Type;
      pinned?: true;
      noforwards?: true;
      fwdModified?: true;
      peer: Api.TypeInputPeer;
      media: Api.TypeInputMedia;
      mediaAreas?: Api.TypeMediaArea[];
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules: Api.TypeInputPrivacyRule[];
      randomId: long;
      period?: int;
      fwdFromId?: Api.TypeInputPeer;
      fwdFromStory?: int;
      albums?: int[];
      music?: Api.TypeInputDocument;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      pinned?: true;
      noforwards?: true;
      fwdModified?: true;
      peer: Api.TypeInputPeer;
      media: Api.TypeInputMedia;
      mediaAreas?: Api.TypeMediaArea[];
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules: Api.TypeInputPrivacyRule[];
      randomId: long;
      period?: int;
      fwdFromId?: Api.TypeInputPeer;
      fwdFromStory?: int;
      albums?: int[];
      music?: Api.TypeInputDocument;
    }
    export class EditStory extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      media?: Api.TypeInputMedia;
      mediaAreas?: Api.TypeMediaArea[];
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules?: Api.TypeInputPrivacyRule[];
      music?: Api.TypeInputDocument;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      id: int;
      media?: Api.TypeInputMedia;
      mediaAreas?: Api.TypeMediaArea[];
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules?: Api.TypeInputPrivacyRule[];
      music?: Api.TypeInputDocument;
    }
    export class DeleteStories extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, int[]> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class TogglePinned extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
      pinned: Bool;
    }, int[]> {
      peer: Api.TypeInputPeer;
      id: int[];
      pinned: Bool;
    }
    export class GetAllStories extends Request<{
      // flags: Api.Type;
      next?: true;
      hidden?: true;
      state?: string;
    } | void, stories.TypeAllStories> {
      // flags: Api.Type;
      next?: true;
      hidden?: true;
      state?: string;
    }
    export class GetPinnedStories extends Request<{
      peer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }, stories.TypeStories> {
      peer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }
    export class GetStoriesArchive extends Request<{
      peer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }, stories.TypeStories> {
      peer: Api.TypeInputPeer;
      offsetId: int;
      limit: int;
    }
    export class GetStoriesByID extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, stories.TypeStories> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class ToggleAllStoriesHidden extends Request<{
      hidden: Bool;
    }, Bool> {
      hidden: Bool;
    }
    export class ReadStories extends Request<{
      peer: Api.TypeInputPeer;
      maxId: int;
    }, int[]> {
      peer: Api.TypeInputPeer;
      maxId: int;
    }
    export class IncrementStoryViews extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class GetStoryViewsList extends Request<{
      // flags: Api.Type;
      justContacts?: true;
      reactionsFirst?: true;
      forwardsFirst?: true;
      peer: Api.TypeInputPeer;
      q?: string;
      id: int;
      offset: string;
      limit: int;
    }, stories.TypeStoryViewsList> {
      // flags: Api.Type;
      justContacts?: true;
      reactionsFirst?: true;
      forwardsFirst?: true;
      peer: Api.TypeInputPeer;
      q?: string;
      id: int;
      offset: string;
      limit: int;
    }
    export class GetStoriesViews extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, stories.TypeStoryViews> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class ExportStoryLink extends Request<{
      peer: Api.TypeInputPeer;
      id: int;
    }, Api.TypeExportedStoryLink> {
      peer: Api.TypeInputPeer;
      id: int;
    }
    export class Report extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
      option: bytes;
      message: string;
    }, Api.TypeReportResult> {
      peer: Api.TypeInputPeer;
      id: int[];
      option: bytes;
      message: string;
    }
    export class ActivateStealthMode extends Request<{
      // flags: Api.Type;
      past?: true;
      future?: true;
    } | void, Api.TypeUpdates> {
      // flags: Api.Type;
      past?: true;
      future?: true;
    }
    export class SendReaction extends Request<{
      // flags: Api.Type;
      addToRecent?: true;
      peer: Api.TypeInputPeer;
      storyId: int;
      reaction: Api.TypeReaction;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      addToRecent?: true;
      peer: Api.TypeInputPeer;
      storyId: int;
      reaction: Api.TypeReaction;
    }
    export class GetPeerStories extends Request<{
      peer: Api.TypeInputPeer;
    }, stories.TypePeerStories> {
      peer: Api.TypeInputPeer;
    }
    export class GetAllReadPeerStories extends Request<void, Api.TypeUpdates> {}
    export class GetPeerMaxIDs extends Request<{
      id: Api.TypeInputPeer[];
    }, Api.TypeRecentStory[]> {
      id: Api.TypeInputPeer[];
    }
    export class GetChatsToSend extends Request<void, messages.TypeChats> {}
    export class TogglePeerStoriesHidden extends Request<{
      peer: Api.TypeInputPeer;
      hidden: Bool;
    }, Bool> {
      peer: Api.TypeInputPeer;
      hidden: Bool;
    }
    export class GetStoryReactionsList extends Request<{
      // flags: Api.Type;
      forwardsFirst?: true;
      peer: Api.TypeInputPeer;
      id: int;
      reaction?: Api.TypeReaction;
      offset?: string;
      limit: int;
    }, stories.TypeStoryReactionsList> {
      // flags: Api.Type;
      forwardsFirst?: true;
      peer: Api.TypeInputPeer;
      id: int;
      reaction?: Api.TypeReaction;
      offset?: string;
      limit: int;
    }
    export class TogglePinnedToTop extends Request<{
      peer: Api.TypeInputPeer;
      id: int[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      id: int[];
    }
    export class SearchPosts extends Request<{
      // flags: Api.Type;
      hashtag?: string;
      area?: Api.TypeMediaArea;
      peer?: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }, stories.TypeFoundStories> {
      // flags: Api.Type;
      hashtag?: string;
      area?: Api.TypeMediaArea;
      peer?: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }
    export class CreateAlbum extends Request<{
      peer: Api.TypeInputPeer;
      title: string;
      stories: int[];
    }, Api.TypeStoryAlbum> {
      peer: Api.TypeInputPeer;
      title: string;
      stories: int[];
    }
    export class UpdateAlbum extends Request<{
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      albumId: int;
      title?: string;
      deleteStories?: int[];
      addStories?: int[];
      order?: int[];
    }, Api.TypeStoryAlbum> {
      // flags: Api.Type;
      peer: Api.TypeInputPeer;
      albumId: int;
      title?: string;
      deleteStories?: int[];
      addStories?: int[];
      order?: int[];
    }
    export class ReorderAlbums extends Request<{
      peer: Api.TypeInputPeer;
      order: int[];
    }, Bool> {
      peer: Api.TypeInputPeer;
      order: int[];
    }
    export class DeleteAlbum extends Request<{
      peer: Api.TypeInputPeer;
      albumId: int;
    }, Bool> {
      peer: Api.TypeInputPeer;
      albumId: int;
    }
    export class GetAlbums extends Request<{
      peer: Api.TypeInputPeer;
      hash: long;
    }, stories.TypeAlbums> {
      peer: Api.TypeInputPeer;
      hash: long;
    }
    export class GetAlbumStories extends Request<{
      peer: Api.TypeInputPeer;
      albumId: int;
      offset: int;
      limit: int;
    }, stories.TypeStories> {
      peer: Api.TypeInputPeer;
      albumId: int;
      offset: int;
      limit: int;
    }
    export class StartLive extends Request<{
      // flags: Api.Type;
      pinned?: true;
      noforwards?: true;
      rtmpStream?: true;
      peer: Api.TypeInputPeer;
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules: Api.TypeInputPrivacyRule[];
      randomId: long;
      messagesEnabled?: Bool;
      sendPaidMessagesStars?: long;
    }, Api.TypeUpdates> {
      // flags: Api.Type;
      pinned?: true;
      noforwards?: true;
      rtmpStream?: true;
      peer: Api.TypeInputPeer;
      caption?: string;
      entities?: Api.TypeMessageEntity[];
      privacyRules: Api.TypeInputPrivacyRule[];
      randomId: long;
      messagesEnabled?: Bool;
      sendPaidMessagesStars?: long;
    }
  }

  export namespace premium {
    export class GetBoostsList extends Request<{
      // flags: Api.Type;
      gifts?: true;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }, premium.TypeBoostsList> {
      // flags: Api.Type;
      gifts?: true;
      peer: Api.TypeInputPeer;
      offset: string;
      limit: int;
    }
    export class GetMyBoosts extends Request<void, premium.TypeMyBoosts> {}
    export class ApplyBoost extends Request<{
      // flags: Api.Type;
      slots?: int[];
      peer: Api.TypeInputPeer;
    }, premium.TypeMyBoosts> {
      // flags: Api.Type;
      slots?: int[];
      peer: Api.TypeInputPeer;
    }
    export class GetBoostsStatus extends Request<{
      peer: Api.TypeInputPeer;
    }, premium.TypeBoostsStatus> {
      peer: Api.TypeInputPeer;
    }
    export class GetUserBoosts extends Request<{
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }, premium.TypeBoostsList> {
      peer: Api.TypeInputPeer;
      userId: Api.TypeInputUser;
    }
  }

  export namespace smsjobs {
    export class IsEligibleToJoin extends Request<void, smsjobs.TypeEligibilityToJoin> {}
    export class Join extends Request<void, Bool> {}
    export class Leave extends Request<void, Bool> {}
    export class UpdateSettings extends Request<{
      // flags: Api.Type;
      allowInternational?: true;
    } | void, Bool> {
      // flags: Api.Type;
      allowInternational?: true;
    }
    export class GetStatus extends Request<void, smsjobs.TypeStatus> {}
    export class GetSmsJob extends Request<{
      jobId: string;
    }, Api.TypeSmsJob> {
      jobId: string;
    }
    export class FinishJob extends Request<{
      // flags: Api.Type;
      jobId: string;
      error?: string;
    }, Bool> {
      // flags: Api.Type;
      jobId: string;
      error?: string;
    }
  }

  export namespace fragment {
    export class GetCollectibleInfo extends Request<{
      collectible: Api.TypeInputCollectible;
    }, fragment.TypeCollectibleInfo> {
      collectible: Api.TypeInputCollectible;
    }
  }

  export namespace aicompose {
    export class CreateTone extends Request<{
      // flags: Api.Type;
      displayAuthor?: true;
      emojiId: long;
      title: string;
      prompt: string;
    }, Api.TypeAiComposeTone> {
      // flags: Api.Type;
      displayAuthor?: true;
      emojiId: long;
      title: string;
      prompt: string;
    }
    export class UpdateTone extends Request<{
      // flags: Api.Type;
      tone: Api.TypeInputAiComposeTone;
      displayAuthor?: Bool;
      emojiId?: long;
      title?: string;
      prompt?: string;
    }, Api.TypeAiComposeTone> {
      // flags: Api.Type;
      tone: Api.TypeInputAiComposeTone;
      displayAuthor?: Bool;
      emojiId?: long;
      title?: string;
      prompt?: string;
    }
    export class SaveTone extends Request<{
      tone: Api.TypeInputAiComposeTone;
      unsave: Bool;
    }, Bool> {
      tone: Api.TypeInputAiComposeTone;
      unsave: Bool;
    }
    export class DeleteTone extends Request<{
      tone: Api.TypeInputAiComposeTone;
    }, Bool> {
      tone: Api.TypeInputAiComposeTone;
    }
    export class GetTone extends Request<{
      tone: Api.TypeInputAiComposeTone;
    }, aicompose.TypeTones> {
      tone: Api.TypeInputAiComposeTone;
    }
    export class GetTones extends Request<{
      hash: long;
    }, aicompose.TypeTones> {
      hash: long;
    }
    export class GetToneExample extends Request<{
      tone: Api.TypeInputAiComposeTone;
      num: int;
    }, Api.TypeAiComposeToneExample> {
      tone: Api.TypeInputAiComposeTone;
      num: int;
    }
  }

  export type AnyRequest = InvokeAfterMsg | InvokeAfterMsgs | InitConnection | InvokeWithLayer | InvokeWithoutUpdates | InvokeWithMessagesRange | InvokeWithTakeout | InvokeWithBusinessConnection | InvokeWithGooglePlayIntegrity | InvokeWithApnsSecret | InvokeWithReCaptcha | ReqPq | ReqPqMulti | ReqPqMultiNew | ReqDHParams | SetClientDHParams | DestroyAuthKey | RpcDropAnswer | GetFutureSalts | Ping | PingDelayDisconnect | DestroySession
    | auth.SendCode | auth.SignUp | auth.SignIn | auth.LogOut | auth.ResetAuthorizations | auth.ExportAuthorization | auth.ImportAuthorization | auth.BindTempAuthKey | auth.ImportBotAuthorization | auth.CheckPassword | auth.RequestPasswordRecovery | auth.RecoverPassword | auth.ResendCode | auth.CancelCode | auth.DropTempAuthKeys | auth.ExportLoginToken | auth.ImportLoginToken | auth.AcceptLoginToken | auth.CheckRecoveryPassword | auth.ImportWebTokenAuthorization | auth.RequestFirebaseSms | auth.ResetLoginEmail | auth.ReportMissingCode | auth.CheckPaidAuth | auth.InitPasskeyLogin | auth.FinishPasskeyLogin
    | account.RegisterDevice | account.UnregisterDevice | account.UpdateNotifySettings | account.GetNotifySettings | account.ResetNotifySettings | account.UpdateProfile | account.UpdateStatus | account.GetWallPapers | account.ReportPeer | account.CheckUsername | account.UpdateUsername | account.GetPrivacy | account.SetPrivacy | account.DeleteAccount | account.GetAccountTTL | account.SetAccountTTL | account.SendChangePhoneCode | account.ChangePhone | account.UpdateDeviceLocked | account.GetAuthorizations | account.ResetAuthorization | account.GetPassword | account.GetPasswordSettings | account.UpdatePasswordSettings | account.SendConfirmPhoneCode | account.ConfirmPhone | account.GetTmpPassword | account.GetWebAuthorizations | account.ResetWebAuthorization | account.ResetWebAuthorizations | account.GetAllSecureValues | account.GetSecureValue | account.SaveSecureValue | account.DeleteSecureValue | account.GetAuthorizationForm | account.AcceptAuthorization | account.SendVerifyPhoneCode | account.VerifyPhone | account.SendVerifyEmailCode | account.VerifyEmail | account.InitTakeoutSession | account.FinishTakeoutSession | account.ConfirmPasswordEmail | account.ResendPasswordEmail | account.CancelPasswordEmail | account.GetContactSignUpNotification | account.SetContactSignUpNotification | account.GetNotifyExceptions | account.GetWallPaper | account.UploadWallPaper | account.SaveWallPaper | account.InstallWallPaper | account.ResetWallPapers | account.GetAutoDownloadSettings | account.SaveAutoDownloadSettings | account.UploadTheme | account.CreateTheme | account.UpdateTheme | account.SaveTheme | account.InstallTheme | account.GetTheme | account.GetThemes | account.SetContentSettings | account.GetContentSettings | account.GetMultiWallPapers | account.GetGlobalPrivacySettings | account.SetGlobalPrivacySettings | account.ReportProfilePhoto | account.ResetPassword | account.DeclinePasswordReset | account.GetChatThemes | account.SetAuthorizationTTL | account.ChangeAuthorizationSettings | account.GetSavedRingtones | account.SaveRingtone | account.UploadRingtone | account.UpdateEmojiStatus | account.GetDefaultEmojiStatuses | account.GetRecentEmojiStatuses | account.ClearRecentEmojiStatuses | account.ReorderUsernames | account.ToggleUsername | account.GetDefaultProfilePhotoEmojis | account.GetDefaultGroupPhotoEmojis | account.GetAutoSaveSettings | account.SaveAutoSaveSettings | account.DeleteAutoSaveExceptions | account.InvalidateSignInCodes | account.UpdateColor | account.GetDefaultBackgroundEmojis | account.GetChannelDefaultEmojiStatuses | account.GetChannelRestrictedStatusEmojis | account.UpdateBusinessWorkHours | account.UpdateBusinessLocation | account.UpdateBusinessGreetingMessage | account.UpdateBusinessAwayMessage | account.UpdateConnectedBot | account.GetConnectedBots | account.GetBotBusinessConnection | account.UpdateBusinessIntro | account.ToggleConnectedBotPaused | account.DisablePeerConnectedBot | account.UpdateBirthday | account.CreateBusinessChatLink | account.EditBusinessChatLink | account.DeleteBusinessChatLink | account.GetBusinessChatLinks | account.ResolveBusinessChatLink | account.UpdatePersonalChannel | account.ToggleSponsoredMessages | account.GetReactionsNotifySettings | account.SetReactionsNotifySettings | account.GetCollectibleEmojiStatuses | account.GetPaidMessagesRevenue | account.ToggleNoPaidMessagesException | account.SetMainProfileTab | account.SaveMusic | account.GetSavedMusicIds | account.GetUniqueGiftChatThemes | account.InitPasskeyRegistration | account.RegisterPasskey | account.GetPasskeys | account.DeletePasskey
    | users.GetUsers | users.GetFullUser | users.SetSecureValueErrors | users.GetRequirementsToContact | users.GetSavedMusic | users.GetSavedMusicByID | users.SuggestBirthday
    | contacts.GetContactIDs | contacts.GetStatuses | contacts.GetContacts | contacts.ImportContacts | contacts.DeleteContacts | contacts.DeleteByPhones | contacts.Block | contacts.Unblock | contacts.GetBlocked | contacts.Search | contacts.ResolveUsername | contacts.GetTopPeers | contacts.ResetTopPeerRating | contacts.ResetSaved | contacts.GetSaved | contacts.ToggleTopPeers | contacts.AddContact | contacts.AcceptContact | contacts.GetLocated | contacts.BlockFromReplies | contacts.ResolvePhone | contacts.ExportContactToken | contacts.ImportContactToken | contacts.EditCloseFriends | contacts.SetBlocked | contacts.GetBirthdays | contacts.GetSponsoredPeers | contacts.UpdateContactNote
    | messages.GetMessages | messages.GetDialogs | messages.GetHistory | messages.Search | messages.ReadHistory | messages.DeleteHistory | messages.DeleteMessages | messages.ReceivedMessages | messages.SetTyping | messages.SendMessage | messages.SendMedia | messages.ForwardMessages | messages.ReportSpam | messages.GetPeerSettings | messages.Report | messages.GetChats | messages.GetFullChat | messages.EditChatTitle | messages.EditChatPhoto | messages.AddChatUser | messages.DeleteChatUser | messages.CreateChat | messages.GetDhConfig | messages.RequestEncryption | messages.AcceptEncryption | messages.DiscardEncryption | messages.SetEncryptedTyping | messages.ReadEncryptedHistory | messages.SendEncrypted | messages.SendEncryptedFile | messages.SendEncryptedService | messages.ReceivedQueue | messages.ReportEncryptedSpam | messages.ReadMessageContents | messages.GetStickers | messages.GetAllStickers | messages.GetWebPagePreview | messages.ExportChatInvite | messages.CheckChatInvite | messages.ImportChatInvite | messages.GetStickerSet | messages.InstallStickerSet | messages.UninstallStickerSet | messages.StartBot | messages.GetMessagesViews | messages.EditChatAdmin | messages.MigrateChat | messages.SearchGlobal | messages.ReorderStickerSets | messages.GetDocumentByHash | messages.GetSavedGifs | messages.SaveGif | messages.GetInlineBotResults | messages.SetInlineBotResults | messages.SendInlineBotResult | messages.GetMessageEditData | messages.EditMessage | messages.EditInlineBotMessage | messages.GetBotCallbackAnswer | messages.SetBotCallbackAnswer | messages.GetPeerDialogs | messages.SaveDraft | messages.GetAllDrafts | messages.GetFeaturedStickers | messages.ReadFeaturedStickers | messages.GetRecentStickers | messages.SaveRecentSticker | messages.ClearRecentStickers | messages.GetArchivedStickers | messages.GetMaskStickers | messages.GetAttachedStickers | messages.SetGameScore | messages.SetInlineGameScore | messages.GetGameHighScores | messages.GetInlineGameHighScores | messages.GetCommonChats | messages.GetWebPage | messages.ToggleDialogPin | messages.ReorderPinnedDialogs | messages.GetPinnedDialogs | messages.SetBotShippingResults | messages.SetBotPrecheckoutResults | messages.UploadMedia | messages.SendScreenshotNotification | messages.GetFavedStickers | messages.FaveSticker | messages.GetUnreadMentions | messages.ReadMentions | messages.GetRecentLocations | messages.SendMultiMedia | messages.UploadEncryptedFile | messages.SearchStickerSets | messages.GetSplitRanges | messages.MarkDialogUnread | messages.GetDialogUnreadMarks | messages.ClearAllDrafts | messages.UpdatePinnedMessage | messages.SendVote | messages.GetPollResults | messages.GetOnlines | messages.EditChatAbout | messages.EditChatDefaultBannedRights | messages.GetEmojiKeywords | messages.GetEmojiKeywordsDifference | messages.GetEmojiKeywordsLanguages | messages.GetEmojiURL | messages.GetSearchCounters | messages.RequestUrlAuth | messages.AcceptUrlAuth | messages.HidePeerSettingsBar | messages.GetScheduledHistory | messages.GetScheduledMessages | messages.SendScheduledMessages | messages.DeleteScheduledMessages | messages.GetPollVotes | messages.ToggleStickerSets | messages.GetDialogFilters | messages.GetSuggestedDialogFilters | messages.UpdateDialogFilter | messages.UpdateDialogFiltersOrder | messages.GetOldFeaturedStickers | messages.GetReplies | messages.GetDiscussionMessage | messages.ReadDiscussion | messages.UnpinAllMessages | messages.DeleteChat | messages.DeletePhoneCallHistory | messages.CheckHistoryImport | messages.InitHistoryImport | messages.UploadImportedMedia | messages.StartHistoryImport | messages.GetExportedChatInvites | messages.GetExportedChatInvite | messages.EditExportedChatInvite | messages.DeleteRevokedExportedChatInvites | messages.DeleteExportedChatInvite | messages.GetAdminsWithInvites | messages.GetChatInviteImporters | messages.SetHistoryTTL | messages.CheckHistoryImportPeer | messages.SetChatTheme | messages.GetMessageReadParticipants | messages.GetSearchResultsCalendar | messages.GetSearchResultsPositions | messages.HideChatJoinRequest | messages.HideAllChatJoinRequests | messages.ToggleNoForwards | messages.SaveDefaultSendAs | messages.SendReaction | messages.GetMessagesReactions | messages.GetMessageReactionsList | messages.SetChatAvailableReactions | messages.GetAvailableReactions | messages.SetDefaultReaction | messages.TranslateText | messages.GetUnreadReactions | messages.ReadReactions | messages.SearchSentMedia | messages.GetAttachMenuBots | messages.GetAttachMenuBot | messages.ToggleBotInAttachMenu | messages.RequestWebView | messages.ProlongWebView | messages.RequestSimpleWebView | messages.SendWebViewResultMessage | messages.SendWebViewData | messages.TranscribeAudio | messages.RateTranscribedAudio | messages.GetCustomEmojiDocuments | messages.GetEmojiStickers | messages.GetFeaturedEmojiStickers | messages.ReportReaction | messages.GetTopReactions | messages.GetRecentReactions | messages.ClearRecentReactions | messages.GetExtendedMedia | messages.SetDefaultHistoryTTL | messages.GetDefaultHistoryTTL | messages.SendBotRequestedPeer | messages.GetEmojiGroups | messages.GetEmojiStatusGroups | messages.GetEmojiProfilePhotoGroups | messages.SearchCustomEmoji | messages.TogglePeerTranslations | messages.GetBotApp | messages.RequestAppWebView | messages.SetChatWallPaper | messages.SearchEmojiStickerSets | messages.GetSavedDialogs | messages.GetSavedHistory | messages.DeleteSavedHistory | messages.GetPinnedSavedDialogs | messages.ToggleSavedDialogPin | messages.ReorderPinnedSavedDialogs | messages.GetSavedReactionTags | messages.UpdateSavedReactionTag | messages.GetDefaultTagReactions | messages.GetOutboxReadDate | messages.GetQuickReplies | messages.ReorderQuickReplies | messages.CheckQuickReplyShortcut | messages.EditQuickReplyShortcut | messages.DeleteQuickReplyShortcut | messages.GetQuickReplyMessages | messages.SendQuickReplyMessages | messages.DeleteQuickReplyMessages | messages.ToggleDialogFilterTags | messages.GetMyStickers | messages.GetEmojiStickerGroups | messages.GetAvailableEffects | messages.EditFactCheck | messages.DeleteFactCheck | messages.GetFactCheck | messages.RequestMainWebView | messages.SendPaidReaction | messages.TogglePaidReactionPrivacy | messages.GetPaidReactionPrivacy | messages.ViewSponsoredMessage | messages.ClickSponsoredMessage | messages.ReportSponsoredMessage | messages.GetSponsoredMessages | messages.SavePreparedInlineMessage | messages.GetPreparedInlineMessage | messages.SearchStickers | messages.ReportMessagesDelivery | messages.GetSavedDialogsByID | messages.ReadSavedHistory | messages.ToggleTodoCompleted | messages.AppendTodoList | messages.ToggleSuggestedPostApproval | messages.GetForumTopics | messages.GetForumTopicsByID | messages.EditForumTopic | messages.UpdatePinnedForumTopic | messages.ReorderPinnedForumTopics | messages.CreateForumTopic | messages.DeleteTopicHistory | messages.GetEmojiGameInfo | messages.SummarizeText | messages.EditChatCreator | messages.GetFutureChatCreatorAfterLeave | messages.EditChatParticipantRank | messages.DeclineUrlAuth | messages.CheckUrlAuthMatchCode | messages.ComposeMessageWithAI | messages.ReportReadMetrics | messages.ReportMusicListen | messages.AddPollAnswer | messages.DeletePollAnswer | messages.GetUnreadPollVotes | messages.ReadPollVotes | messages.SetBotGuestChatResult | messages.DeleteParticipantReactions | messages.DeleteParticipantReaction | messages.GetPersonalChannelHistory
    | updates.GetState | updates.GetDifference | updates.GetChannelDifference
    | photos.UpdateProfilePhoto | photos.UploadProfilePhoto | photos.DeletePhotos | photos.GetUserPhotos | photos.UploadContactProfilePhoto
    | upload.SaveFilePart | upload.GetFile | upload.SaveBigFilePart | upload.GetWebFile | upload.GetCdnFile | upload.ReuploadCdnFile | upload.GetCdnFileHashes | upload.GetFileHashes
    | help.GetConfig | help.GetNearestDc | help.GetAppUpdate | help.GetInviteText | help.GetSupport | help.SetBotUpdatesStatus | help.GetCdnConfig | help.GetRecentMeUrls | help.GetTermsOfServiceUpdate | help.AcceptTermsOfService | help.GetDeepLinkInfo | help.GetAppConfig | help.SaveAppLog | help.GetPassportConfig | help.GetSupportName | help.GetUserInfo | help.EditUserInfo | help.GetPromoData | help.HidePromoData | help.DismissSuggestion | help.GetCountriesList | help.GetPremiumPromo | help.GetPeerColors | help.GetPeerProfileColors | help.GetTimezonesList
    | channels.ReadHistory | channels.DeleteMessages | channels.ReportSpam | channels.GetMessages | channels.GetParticipants | channels.GetParticipant | channels.GetChannels | channels.GetFullChannel | channels.CreateChannel | channels.EditAdmin | channels.EditTitle | channels.EditPhoto | channels.CheckUsername | channels.UpdateUsername | channels.JoinChannel | channels.LeaveChannel | channels.InviteToChannel | channels.DeleteChannel | channels.ExportMessageLink | channels.ToggleSignatures | channels.GetAdminedPublicChannels | channels.EditBanned | channels.GetAdminLog | channels.SetStickers | channels.ReadMessageContents | channels.DeleteHistory | channels.TogglePreHistoryHidden | channels.GetLeftChannels | channels.GetGroupsForDiscussion | channels.SetDiscussionGroup | channels.EditLocation | channels.ToggleSlowMode | channels.GetInactiveChannels | channels.ConvertToGigagroup | channels.GetSendAs | channels.DeleteParticipantHistory | channels.ToggleJoinToSend | channels.ToggleJoinRequest | channels.ReorderUsernames | channels.ToggleUsername | channels.DeactivateAllUsernames | channels.ToggleForum | channels.ToggleAntiSpam | channels.ReportAntiSpamFalsePositive | channels.ToggleParticipantsHidden | channels.UpdateColor | channels.ToggleViewForumAsMessages | channels.GetChannelRecommendations | channels.UpdateEmojiStatus | channels.SetBoostsToUnblockRestrictions | channels.SetEmojiStickers | channels.RestrictSponsoredMessages | channels.SearchPosts | channels.UpdatePaidMessagesPrice | channels.ToggleAutotranslation | channels.GetMessageAuthor | channels.CheckSearchPostsFlood | channels.SetMainProfileTab
    | bots.SendCustomRequest | bots.AnswerWebhookJSONQuery | bots.SetBotCommands | bots.ResetBotCommands | bots.GetBotCommands | bots.SetBotMenuButton | bots.GetBotMenuButton | bots.SetBotBroadcastDefaultAdminRights | bots.SetBotGroupDefaultAdminRights | bots.SetBotInfo | bots.GetBotInfo | bots.ReorderUsernames | bots.ToggleUsername | bots.CanSendMessage | bots.AllowSendMessage | bots.InvokeWebViewCustomMethod | bots.GetPopularAppBots | bots.AddPreviewMedia | bots.EditPreviewMedia | bots.DeletePreviewMedia | bots.ReorderPreviewMedias | bots.GetPreviewInfo | bots.GetPreviewMedias | bots.UpdateUserEmojiStatus | bots.ToggleUserEmojiStatusPermission | bots.CheckDownloadFileParams | bots.GetAdminedBots | bots.UpdateStarRefProgram | bots.SetCustomVerification | bots.GetBotRecommendations | bots.CheckUsername | bots.CreateBot | bots.ExportBotToken | bots.RequestWebViewButton | bots.GetRequestedWebViewButton | bots.GetAccessSettings | bots.EditAccessSettings
    | payments.GetPaymentForm | payments.GetPaymentReceipt | payments.ValidateRequestedInfo | payments.SendPaymentForm | payments.GetSavedInfo | payments.ClearSavedInfo | payments.GetBankCardData | payments.ExportInvoice | payments.AssignAppStoreTransaction | payments.AssignPlayMarketTransaction | payments.GetPremiumGiftCodeOptions | payments.CheckGiftCode | payments.ApplyGiftCode | payments.GetGiveawayInfo | payments.LaunchPrepaidGiveaway | payments.GetStarsTopupOptions | payments.GetStarsStatus | payments.GetStarsTransactions | payments.SendStarsForm | payments.RefundStarsCharge | payments.GetStarsRevenueStats | payments.GetStarsRevenueWithdrawalUrl | payments.GetStarsRevenueAdsAccountUrl | payments.GetStarsTransactionsByID | payments.GetStarsGiftOptions | payments.GetStarsSubscriptions | payments.ChangeStarsSubscription | payments.FulfillStarsSubscription | payments.GetStarsGiveawayOptions | payments.GetStarGifts | payments.SaveStarGift | payments.ConvertStarGift | payments.BotCancelStarsSubscription | payments.GetConnectedStarRefBots | payments.GetConnectedStarRefBot | payments.GetSuggestedStarRefBots | payments.ConnectStarRefBot | payments.EditConnectedStarRefBot | payments.GetStarGiftUpgradePreview | payments.UpgradeStarGift | payments.TransferStarGift | payments.GetUniqueStarGift | payments.GetSavedStarGifts | payments.GetSavedStarGift | payments.GetStarGiftWithdrawalUrl | payments.ToggleChatStarGiftNotifications | payments.ToggleStarGiftsPinnedToTop | payments.CanPurchaseStore | payments.GetResaleStarGifts | payments.UpdateStarGiftPrice | payments.CreateStarGiftCollection | payments.UpdateStarGiftCollection | payments.ReorderStarGiftCollections | payments.DeleteStarGiftCollection | payments.GetStarGiftCollections | payments.GetUniqueStarGiftValueInfo | payments.CheckCanSendGift | payments.GetStarGiftAuctionState | payments.GetStarGiftAuctionAcquiredGifts | payments.GetStarGiftActiveAuctions | payments.ResolveStarGiftOffer | payments.SendStarGiftOffer | payments.GetStarGiftUpgradeAttributes | payments.GetCraftStarGifts | payments.CraftStarGift
    | stickers.CreateStickerSet | stickers.RemoveStickerFromSet | stickers.ChangeStickerPosition | stickers.AddStickerToSet | stickers.SetStickerSetThumb | stickers.CheckShortName | stickers.SuggestShortName | stickers.ChangeSticker | stickers.RenameStickerSet | stickers.DeleteStickerSet | stickers.ReplaceSticker
    | phone.GetCallConfig | phone.RequestCall | phone.AcceptCall | phone.ConfirmCall | phone.ReceivedCall | phone.DiscardCall | phone.SetCallRating | phone.SaveCallDebug | phone.SendSignalingData | phone.CreateGroupCall | phone.JoinGroupCall | phone.LeaveGroupCall | phone.InviteToGroupCall | phone.DiscardGroupCall | phone.ToggleGroupCallSettings | phone.GetGroupCall | phone.GetGroupParticipants | phone.CheckGroupCall | phone.ToggleGroupCallRecord | phone.EditGroupCallParticipant | phone.EditGroupCallTitle | phone.GetGroupCallJoinAs | phone.ExportGroupCallInvite | phone.ToggleGroupCallStartSubscription | phone.StartScheduledGroupCall | phone.SaveDefaultGroupCallJoinAs | phone.JoinGroupCallPresentation | phone.LeaveGroupCallPresentation | phone.GetGroupCallStreamChannels | phone.GetGroupCallStreamRtmpUrl | phone.SaveCallLog | phone.CreateConferenceCall | phone.DeleteConferenceCallParticipants | phone.SendConferenceCallBroadcast | phone.InviteConferenceCallParticipant | phone.DeclineConferenceCallInvite | phone.GetGroupCallChainBlocks | phone.SendGroupCallMessage | phone.SendGroupCallEncryptedMessage | phone.DeleteGroupCallMessages | phone.DeleteGroupCallParticipantMessages | phone.GetGroupCallStars | phone.SaveDefaultSendAs
    | langpack.GetLangPack | langpack.GetStrings | langpack.GetDifference | langpack.GetLanguages | langpack.GetLanguage
    | folders.EditPeerFolders
    | stats.GetBroadcastStats | stats.LoadAsyncGraph | stats.GetMegagroupStats | stats.GetMessagePublicForwards | stats.GetMessageStats | stats.GetStoryStats | stats.GetStoryPublicForwards | stats.GetPollStats
    | chatlists.ExportChatlistInvite | chatlists.DeleteExportedInvite | chatlists.EditExportedInvite | chatlists.GetExportedInvites | chatlists.CheckChatlistInvite | chatlists.JoinChatlistInvite | chatlists.GetChatlistUpdates | chatlists.JoinChatlistUpdates | chatlists.HideChatlistUpdates | chatlists.GetLeaveChatlistSuggestions | chatlists.LeaveChatlist
    | stories.CanSendStory | stories.SendStory | stories.EditStory | stories.DeleteStories | stories.TogglePinned | stories.GetAllStories | stories.GetPinnedStories | stories.GetStoriesArchive | stories.GetStoriesByID | stories.ToggleAllStoriesHidden | stories.ReadStories | stories.IncrementStoryViews | stories.GetStoryViewsList | stories.GetStoriesViews | stories.ExportStoryLink | stories.Report | stories.ActivateStealthMode | stories.SendReaction | stories.GetPeerStories | stories.GetAllReadPeerStories | stories.GetPeerMaxIDs | stories.GetChatsToSend | stories.TogglePeerStoriesHidden | stories.GetStoryReactionsList | stories.TogglePinnedToTop | stories.SearchPosts | stories.CreateAlbum | stories.UpdateAlbum | stories.ReorderAlbums | stories.DeleteAlbum | stories.GetAlbums | stories.GetAlbumStories | stories.StartLive
    | premium.GetBoostsList | premium.GetMyBoosts | premium.ApplyBoost | premium.GetBoostsStatus | premium.GetUserBoosts
    | smsjobs.IsEligibleToJoin | smsjobs.Join | smsjobs.Leave | smsjobs.UpdateSettings | smsjobs.GetStatus | smsjobs.GetSmsJob | smsjobs.FinishJob
    | fragment.GetCollectibleInfo
    | aicompose.CreateTone | aicompose.UpdateTone | aicompose.SaveTone | aicompose.DeleteTone | aicompose.GetTone | aicompose.GetTones | aicompose.GetToneExample;

}
