// Code generated by TLParser; DO NOT EDIT. (c) @amarnathcjd

package telegram

// Telegram Passport authorization form
type AccountAuthorizationForm struct {
	RequiredTypes    []SecureRequiredType
	Values           []*SecureValue
	Errors           []SecureValueError
	Users            []User
	PrivacyPolicyURL string `tl:"flag:0"`
}

func (*AccountAuthorizationForm) CRC() uint32 {
	return 0xad2e1cd8
}

func (*AccountAuthorizationForm) FlagIndex() int {
	return 0
}

// Logged-in sessions
type AccountAuthorizations struct {
	AuthorizationTtlDays int32
	Authorizations       []*Authorization
}

func (*AccountAuthorizations) CRC() uint32 {
	return 0x4bff8ea0
}

// Media autodownload settings
type AccountAutoDownloadSettings struct {
	Low    *AutoDownloadSettings
	Medium *AutoDownloadSettings
	High   *AutoDownloadSettings
}

func (*AccountAutoDownloadSettings) CRC() uint32 {
	return 0x63cacf26
}

// Contains media autosave settings
type AccountAutoSaveSettings struct {
	UsersSettings      *AutoSaveSettings
	ChatsSettings      *AutoSaveSettings
	BroadcastsSettings *AutoSaveSettings
	Exceptions         []*AutoSaveException
	Chats              []Chat
	Users              []User
}

func (*AccountAutoSaveSettings) CRC() uint32 {
	return 0x4c3e069d
}

// Contains info about business chat deep links » created by the current account.
type AccountBusinessChatLinks struct {
	Links []*BusinessChatLink
	Chats []Chat
	Users []User
}

func (*AccountBusinessChatLinks) CRC() uint32 {
	return 0xec43a2d1
}

// Available chat themes
type AccountChatThemes struct {
	Hash       int64
	Themes     []ChatTheme
	Chats      []Chat
	Users      []User
	NextOffset int32 `tl:"flag:0"`
}

func (*AccountChatThemes) CRC() uint32 {
	return 0x16484857
}

func (*AccountChatThemes) FlagIndex() int {
	return 0
}

// Info about currently connected business bots.
type AccountConnectedBots struct {
	ConnectedBots []*ConnectedBot
	Users         []User
}

func (*AccountConnectedBots) CRC() uint32 {
	return 0x17d7f87b
}

// Sensitive content settings
type AccountContentSettings struct {
	SensitiveEnabled   bool `tl:"flag:0,encoded_in_bitflags"`
	SensitiveCanChange bool `tl:"flag:1,encoded_in_bitflags"`
}

func (*AccountContentSettings) CRC() uint32 {
	return 0x57e28221
}

func (*AccountContentSettings) FlagIndex() int {
	return 0
}

// Total number of non-refunded Telegram Stars a user has spent on sending us messages either directly or through a channel, see here » for more info on paid messages.
type AccountPaidMessagesRevenue struct {
	StarsAmount int64
}

func (*AccountPaidMessagesRevenue) CRC() uint32 {
	return 0x1e109708
}

// Configuration for two-factor authorization
type AccountPassword struct {
	HasRecovery             bool            `tl:"flag:0,encoded_in_bitflags"`
	HasSecureValues         bool            `tl:"flag:1,encoded_in_bitflags"`
	HasPassword             bool            `tl:"flag:2,encoded_in_bitflags"`
	CurrentAlgo             PasswordKdfAlgo `tl:"flag:2"`
	SRPB                    []byte          `tl:"flag:2"`
	SRPID                   int64           `tl:"flag:2"`
	Hint                    string          `tl:"flag:3"`
	EmailUnconfirmedPattern string          `tl:"flag:4"`
	NewAlgo                 PasswordKdfAlgo
	NewSecureAlgo           SecurePasswordKdfAlgo
	SecureRandom            []byte
	PendingResetDate        int32  `tl:"flag:5"`
	LoginEmailPattern       string `tl:"flag:6"`
}

func (*AccountPassword) CRC() uint32 {
	return 0x957b50fb
}

func (*AccountPassword) FlagIndex() int {
	return 0
}

// Settings for setting up a new password
type AccountPasswordInputSettings struct {
	NewAlgo           PasswordKdfAlgo       `tl:"flag:0"`
	NewPasswordHash   []byte                `tl:"flag:0"`
	Hint              string                `tl:"flag:0"`
	Email             string                `tl:"flag:1"`
	NewSecureSettings *SecureSecretSettings `tl:"flag:2"`
}

func (*AccountPasswordInputSettings) CRC() uint32 {
	return 0xc23727c9
}

func (*AccountPasswordInputSettings) FlagIndex() int {
	return 0
}

// Private info associated to the password info (recovery email, telegram passport info &amp; so on)
type AccountPasswordSettings struct {
	Email          string                `tl:"flag:0"`
	SecureSettings *SecureSecretSettings `tl:"flag:1"`
}

func (*AccountPasswordSettings) CRC() uint32 {
	return 0x9a5c33e5
}

func (*AccountPasswordSettings) FlagIndex() int {
	return 0
}

// Privacy rules
type AccountPrivacyRules struct {
	Rules []PrivacyRule
	Chats []Chat
	Users []User
}

func (*AccountPrivacyRules) CRC() uint32 {
	return 0x50a04e45
}

// Contains info about a single resolved business chat deep link ».
type AccountResolvedBusinessChatLinks struct {
	Peer     Peer
	Message  string
	Entities []MessageEntity `tl:"flag:0"`
	Chats    []Chat
	Users    []User
}

func (*AccountResolvedBusinessChatLinks) CRC() uint32 {
	return 0x9a23af21
}

func (*AccountResolvedBusinessChatLinks) FlagIndex() int {
	return 0
}

// The sent email code
type AccountSentEmailCode struct {
	EmailPattern string
	Length       int32
}

func (*AccountSentEmailCode) CRC() uint32 {
	return 0x811f854f
}

// Takeout info
type AccountTakeout struct {
	ID int64
}

func (*AccountTakeout) CRC() uint32 {
	return 0x4dba4501
}

// Temporary payment password
type AccountTmpPassword struct {
	TmpPassword []byte
	ValidUntil  int32
}

func (*AccountTmpPassword) CRC() uint32 {
	return 0xdb64fd34
}

// Web authorizations
type AccountWebAuthorizations struct {
	Authorizations []*WebAuthorization
	Users          []User
}

func (*AccountWebAuthorizations) CRC() uint32 {
	return 0xed56c9fc
}

// Time to live in days of the current account
type AccountDaysTtl struct {
	Days int32
}

func (*AccountDaysTtl) CRC() uint32 {
	return 0xb8d0afdf
}

// Represents a bot mini app that can be launched from the attachment/side menu »
type AttachMenuBot struct {
	Inactive                 bool `tl:"flag:0,encoded_in_bitflags"`
	HasSettings              bool `tl:"flag:1,encoded_in_bitflags"`
	RequestWriteAccess       bool `tl:"flag:2,encoded_in_bitflags"`
	ShowInAttachMenu         bool `tl:"flag:3,encoded_in_bitflags"`
	ShowInSideMenu           bool `tl:"flag:4,encoded_in_bitflags"`
	SideMenuDisclaimerNeeded bool `tl:"flag:5,encoded_in_bitflags"`
	BotID                    int64
	ShortName                string
	PeerTypes                []AttachMenuPeerType `tl:"flag:3"`
	Icons                    []*AttachMenuBotIcon
}

func (*AttachMenuBot) CRC() uint32 {
	return 0xd90d8dfe
}

func (*AttachMenuBot) FlagIndex() int {
	return 0
}

// Represents an attachment menu icon for bot mini apps »
type AttachMenuBotIcon struct {
	Name   string
	Icon   Document
	Colors []*AttachMenuBotIconColor `tl:"flag:0"`
}

func (*AttachMenuBotIcon) CRC() uint32 {
	return 0xb2a7386b
}

func (*AttachMenuBotIcon) FlagIndex() int {
	return 0
}

// Represents an attachment menu icon color for bot mini apps »
type AttachMenuBotIconColor struct {
	Name  string
	Color int32
}

func (*AttachMenuBotIconColor) CRC() uint32 {
	return 0x4576f3f0
}

// Represents a bot mini app that can be launched from the attachment menu »
type AttachMenuBotsBot struct {
	Bot   *AttachMenuBot
	Users []User
}

func (*AttachMenuBotsBot) CRC() uint32 {
	return 0x93bf667f
}

// Data for copying of authorization between data centers.
type AuthExportedAuthorization struct {
	ID    int64
	Bytes []byte
}

func (*AuthExportedAuthorization) CRC() uint32 {
	return 0xb434e2b8
}

// Future auth token » to be used on subsequent authorizations
type AuthLoggedOut struct {
	FutureAuthToken []byte `tl:"flag:0"`
}

func (*AuthLoggedOut) CRC() uint32 {
	return 0xc3a2835f
}

func (*AuthLoggedOut) FlagIndex() int {
	return 0
}

// Recovery info of a 2FA password, only for accounts with a recovery email configured.
type AuthPasswordRecovery struct {
	EmailPattern string
}

func (*AuthPasswordRecovery) CRC() uint32 {
	return 0x137948a5
}

// Logged-in session
type Authorization struct {
	Current                   bool `tl:"flag:0,encoded_in_bitflags"`
	OfficialApp               bool `tl:"flag:1,encoded_in_bitflags"`
	PasswordPending           bool `tl:"flag:2,encoded_in_bitflags"`
	EncryptedRequestsDisabled bool `tl:"flag:3,encoded_in_bitflags"`
	CallRequestsDisabled      bool `tl:"flag:4,encoded_in_bitflags"`
	Unconfirmed               bool `tl:"flag:5,encoded_in_bitflags"`
	Hash                      int64
	DeviceModel               string
	Platform                  string
	SystemVersion             string
	APIID                     int32
	AppName                   string
	AppVersion                string
	DateCreated               int32
	DateActive                int32
	Ip                        string
	Country                   string
	Region                    string
}

func (*Authorization) CRC() uint32 {
	return 0xad01d61d
}

func (*Authorization) FlagIndex() int {
	return 0
}

// Autodownload settings
type AutoDownloadSettings struct {
	Disabled                      bool `tl:"flag:0,encoded_in_bitflags"`
	VideoPreloadLarge             bool `tl:"flag:1,encoded_in_bitflags"`
	AudioPreloadNext              bool `tl:"flag:2,encoded_in_bitflags"`
	PhonecallsLessData            bool `tl:"flag:3,encoded_in_bitflags"`
	StoriesPreload                bool `tl:"flag:4,encoded_in_bitflags"`
	PhotoSizeMax                  int32
	VideoSizeMax                  int64
	FileSizeMax                   int64
	VideoUploadMaxbitrate         int32
	SmallQueueActiveOperationsMax int32
	LargeQueueActiveOperationsMax int32
}

func (*AutoDownloadSettings) CRC() uint32 {
	return 0xbaa57628
}

func (*AutoDownloadSettings) FlagIndex() int {
	return 0
}

// Peer-specific media autosave settings
type AutoSaveException struct {
	Peer     Peer
	Settings *AutoSaveSettings
}

func (*AutoSaveException) CRC() uint32 {
	return 0x81602d47
}

// Media autosave settings
type AutoSaveSettings struct {
	Photos       bool  `tl:"flag:0,encoded_in_bitflags"`
	Videos       bool  `tl:"flag:1,encoded_in_bitflags"`
	VideoMaxSize int64 `tl:"flag:2"`
}

func (*AutoSaveSettings) CRC() uint32 {
	return 0xc84834ce
}

func (*AutoSaveSettings) FlagIndex() int {
	return 0
}

// Represents a message effect ».
type AvailableEffect struct {
	PremiumRequired   bool `tl:"flag:2,encoded_in_bitflags"`
	ID                int64
	Emoticon          string
	StaticIconID      int64 `tl:"flag:0"`
	EffectStickerID   int64
	EffectAnimationID int64 `tl:"flag:1"`
}

func (*AvailableEffect) CRC() uint32 {
	return 0x93c3e27e
}

func (*AvailableEffect) FlagIndex() int {
	return 0
}

// Animations associated with a message reaction
type AvailableReaction struct {
	Inactive          bool `tl:"flag:0,encoded_in_bitflags"`
	Premium           bool `tl:"flag:2,encoded_in_bitflags"`
	Reaction          string
	Title             string
	StaticIcon        Document
	AppearAnimation   Document
	SelectAnimation   Document
	ActivateAnimation Document
	EffectAnimation   Document
	AroundAnimation   Document `tl:"flag:1"`
	CenterIcon        Document `tl:"flag:1"`
}

func (*AvailableReaction) CRC() uint32 {
	return 0xc077ec01
}

func (*AvailableReaction) FlagIndex() int {
	return 0
}

// Credit card info URL provided by the bank
type BankCardOpenURL struct {
	URL  string
	Name string
}

func (*BankCardOpenURL) CRC() uint32 {
	return 0xf568028a
}

// Birthday information for a user.
type Birthday struct {
	Day   int32
	Month int32
	Year  int32 `tl:"flag:0"`
}

func (*Birthday) CRC() uint32 {
	return 0x6c8e1e06
}

func (*Birthday) FlagIndex() int {
	return 0
}

// Info about one or more boosts applied by a specific user.
type Boost struct {
	Gift          bool `tl:"flag:1,encoded_in_bitflags"`
	Giveaway      bool `tl:"flag:2,encoded_in_bitflags"`
	Unclaimed     bool `tl:"flag:3,encoded_in_bitflags"`
	ID            string
	UserID        int64 `tl:"flag:0"`
	GiveawayMsgID int32 `tl:"flag:2"`
	Date          int32
	Expires       int32
	UsedGiftSlug  string `tl:"flag:4"`
	Multiplier    int32  `tl:"flag:5"`
	Stars         int64  `tl:"flag:6"`
}

func (*Boost) CRC() uint32 {
	return 0x4b3e14d6
}

func (*Boost) FlagIndex() int {
	return 0
}

// Mini app » settings
type BotAppSettings struct {
	PlaceholderPath     []byte `tl:"flag:0"`
	BackgroundColor     int32  `tl:"flag:1"`
	BackgroundDarkColor int32  `tl:"flag:2"`
	HeaderColor         int32  `tl:"flag:3"`
	HeaderDarkColor     int32  `tl:"flag:4"`
}

func (*BotAppSettings) CRC() uint32 {
	return 0xc99b1950
}

func (*BotAppSettings) FlagIndex() int {
	return 0
}

// Contains info about a bot business connection.
type BotBusinessConnection struct {
	Disabled     bool `tl:"flag:1,encoded_in_bitflags"`
	ConnectionID string
	UserID       int64
	DcID         int32
	Date         int32
	Rights       *BusinessBotRights `tl:"flag:2"`
}

func (*BotBusinessConnection) CRC() uint32 {
	return 0x8f34b2f5
}

func (*BotBusinessConnection) FlagIndex() int {
	return 0
}

// Describes a bot command that can be used in a chat
type BotCommand struct {
	Command     string
	Description string
}

func (*BotCommand) CRC() uint32 {
	return 0xc27ac8c7
}

// Info about bots (available bot commands, etc)
type BotInfo struct {
	HasPreviewMedias    bool                 `tl:"flag:6,encoded_in_bitflags"`
	UserID              int64                `tl:"flag:0"`
	Description         string               `tl:"flag:1"`
	DescriptionPhoto    Photo                `tl:"flag:4"`
	DescriptionDocument Document             `tl:"flag:5"`
	Commands            []*BotCommand        `tl:"flag:2"`
	MenuButton          BotMenuButton        `tl:"flag:3"`
	PrivacyPolicyURL    string               `tl:"flag:7"`
	AppSettings         *BotAppSettings      `tl:"flag:8"`
	VerifierSettings    *BotVerifierSettings `tl:"flag:9"`
}

func (*BotInfo) CRC() uint32 {
	return 0x4d8a0299
}

func (*BotInfo) FlagIndex() int {
	return 0
}

// Represents a Main Mini App preview media, see here » for more info.
type BotPreviewMedia struct {
	Date  int32
	Media MessageMedia
}

func (*BotPreviewMedia) CRC() uint32 {
	return 0x23e91ba3
}

// Describes a bot verification icon ».
type BotVerification struct {
	BotID       int64
	Icon        int64
	Description string
}

func (*BotVerification) CRC() uint32 {
	return 0xf93cd45c
}

// Info about the current verifier bot ».
type BotVerifierSettings struct {
	CanModifyCustomDescription bool `tl:"flag:1,encoded_in_bitflags"`
	Icon                       int64
	Company                    string
	CustomDescription          string `tl:"flag:0"`
}

func (*BotVerifierSettings) CRC() uint32 {
	return 0xb0cd6617
}

func (*BotVerifierSettings) FlagIndex() int {
	return 0
}

// Localized information about a bot.
type BotsBotInfo struct {
	Name        string
	About       string
	Description string
}

func (*BotsBotInfo) CRC() uint32 {
	return 0xe8a775b0
}

// Popular Main Mini Apps, to be used in the apps tab of global search ».
type BotsPopularAppBots struct {
	NextOffset string `tl:"flag:0"`
	Users      []User
}

func (*BotsPopularAppBots) CRC() uint32 {
	return 0x1991b13b
}

func (*BotsPopularAppBots) FlagIndex() int {
	return 0
}

// Contains info about Main Mini App previews, see here » for more info.
type BotsPreviewInfo struct {
	Media     []*BotPreviewMedia
	LangCodes []string
}

func (*BotsPreviewInfo) CRC() uint32 {
	return 0xca71d64
}

// Describes a Telegram Business away message, automatically sent to users writing to us when we're offline, during closing hours, while we're on vacation, or in some other custom time period when we cannot immediately answer to the user.
type BusinessAwayMessage struct {
	OfflineOnly bool `tl:"flag:0,encoded_in_bitflags"`
	ShortcutID  int32
	Schedule    BusinessAwayMessageSchedule
	Recipients  *BusinessRecipients
}

func (*BusinessAwayMessage) CRC() uint32 {
	return 0xef156a5c
}

func (*BusinessAwayMessage) FlagIndex() int {
	return 0
}

// Specifies the private chats that a connected business bot » may receive messages and interact with.
type BusinessBotRecipients struct {
	ExistingChats   bool    `tl:"flag:0,encoded_in_bitflags"`
	NewChats        bool    `tl:"flag:1,encoded_in_bitflags"`
	Contacts        bool    `tl:"flag:2,encoded_in_bitflags"`
	NonContacts     bool    `tl:"flag:3,encoded_in_bitflags"`
	ExcludeSelected bool    `tl:"flag:5,encoded_in_bitflags"`
	Users           []int64 `tl:"flag:4"`
	ExcludeUsers    []int64 `tl:"flag:6"`
}

func (*BusinessBotRecipients) CRC() uint32 {
	return 0xb88cf373
}

func (*BusinessBotRecipients) FlagIndex() int {
	return 0
}

// Business bot rights.
type BusinessBotRights struct {
	Reply                   bool `tl:"flag:0,encoded_in_bitflags"`
	ReadMessages            bool `tl:"flag:1,encoded_in_bitflags"`
	DeleteSentMessages      bool `tl:"flag:2,encoded_in_bitflags"`
	DeleteReceivedMessages  bool `tl:"flag:3,encoded_in_bitflags"`
	EditName                bool `tl:"flag:4,encoded_in_bitflags"`
	EditBio                 bool `tl:"flag:5,encoded_in_bitflags"`
	EditProfilePhoto        bool `tl:"flag:6,encoded_in_bitflags"`
	EditUsername            bool `tl:"flag:7,encoded_in_bitflags"`
	ViewGifts               bool `tl:"flag:8,encoded_in_bitflags"`
	SellGifts               bool `tl:"flag:9,encoded_in_bitflags"`
	ChangeGiftSettings      bool `tl:"flag:10,encoded_in_bitflags"`
	TransferAndUpgradeGifts bool `tl:"flag:11,encoded_in_bitflags"`
	TransferStars           bool `tl:"flag:12,encoded_in_bitflags"`
	ManageStories           bool `tl:"flag:13,encoded_in_bitflags"`
}

func (*BusinessBotRights) CRC() uint32 {
	return 0xa0624cf7
}

func (*BusinessBotRights) FlagIndex() int {
	return 0
}

// Contains info about a business chat deep link » created by the current account.
type BusinessChatLink struct {
	Link     string
	Message  string
	Entities []MessageEntity `tl:"flag:0"`
	Title    string          `tl:"flag:1"`
	Views    int32
}

func (*BusinessChatLink) CRC() uint32 {
	return 0xb4ae666f
}

func (*BusinessChatLink) FlagIndex() int {
	return 0
}

// Describes a Telegram Business greeting, automatically sent to new users writing to us in private for the first time, or after a certain inactivity period.
type BusinessGreetingMessage struct {
	ShortcutID     int32
	Recipients     *BusinessRecipients
	NoActivityDays int32
}

func (*BusinessGreetingMessage) CRC() uint32 {
	return 0xe519abab
}

// Telegram Business introduction ».
type BusinessIntro struct {
	Title       string
	Description string
	Sticker     Document `tl:"flag:0"`
}

func (*BusinessIntro) CRC() uint32 {
	return 0x5a0a066d
}

func (*BusinessIntro) FlagIndex() int {
	return 0
}

// Represents the location of a Telegram Business ».
type BusinessLocation struct {
	GeoPoint GeoPoint `tl:"flag:0"`
	Address  string
}

func (*BusinessLocation) CRC() uint32 {
	return 0xac5c1af7
}

func (*BusinessLocation) FlagIndex() int {
	return 0
}

// Specifies the chats that <strong>can</strong> receive Telegram Business away » and greeting » messages.
type BusinessRecipients struct {
	ExistingChats   bool    `tl:"flag:0,encoded_in_bitflags"`
	NewChats        bool    `tl:"flag:1,encoded_in_bitflags"`
	Contacts        bool    `tl:"flag:2,encoded_in_bitflags"`
	NonContacts     bool    `tl:"flag:3,encoded_in_bitflags"`
	ExcludeSelected bool    `tl:"flag:5,encoded_in_bitflags"`
	Users           []int64 `tl:"flag:4"`
}

func (*BusinessRecipients) CRC() uint32 {
	return 0x21108ff7
}

func (*BusinessRecipients) FlagIndex() int {
	return 0
}

// A time interval, indicating the opening hours of a business.
type BusinessWeeklyOpen struct {
	StartMinute int32
	EndMinute   int32
}

func (*BusinessWeeklyOpen) CRC() uint32 {
	return 0x120b1ab9
}

// Specifies a set of Telegram Business opening hours.
type BusinessWorkHours struct {
	OpenNow    bool `tl:"flag:0,encoded_in_bitflags"`
	TimezoneID string
	WeeklyOpen []*BusinessWeeklyOpen
}

func (*BusinessWorkHours) CRC() uint32 {
	return 0x8c92b098
}

func (*BusinessWorkHours) FlagIndex() int {
	return 0
}

// Configuration for CDN file downloads.
type CdnConfig struct {
	PublicKeys []*CdnPublicKey
}

func (*CdnConfig) CRC() uint32 {
	return 0x5725e40a
}

// Public key to use <strong>only</strong> during handshakes to CDN DCs.
type CdnPublicKey struct {
	DcID      int32
	PublicKey string
}

func (*CdnPublicKey) CRC() uint32 {
	return 0xc982eaba
}

// Admin log event
type ChannelAdminLogEvent struct {
	ID     int64
	Date   int32
	UserID int64
	Action ChannelAdminLogEventAction
}

func (*ChannelAdminLogEvent) CRC() uint32 {
	return 0x1fad68cd
}

// Filter only certain admin log events
type ChannelAdminLogEventsFilter struct {
	Join      bool `tl:"flag:0,encoded_in_bitflags"`
	Leave     bool `tl:"flag:1,encoded_in_bitflags"`
	Invite    bool `tl:"flag:2,encoded_in_bitflags"`
	Ban       bool `tl:"flag:3,encoded_in_bitflags"`
	Unban     bool `tl:"flag:4,encoded_in_bitflags"`
	Kick      bool `tl:"flag:5,encoded_in_bitflags"`
	Unkick    bool `tl:"flag:6,encoded_in_bitflags"`
	Promote   bool `tl:"flag:7,encoded_in_bitflags"`
	Demote    bool `tl:"flag:8,encoded_in_bitflags"`
	Info      bool `tl:"flag:9,encoded_in_bitflags"`
	Settings  bool `tl:"flag:10,encoded_in_bitflags"`
	Pinned    bool `tl:"flag:11,encoded_in_bitflags"`
	Edit      bool `tl:"flag:12,encoded_in_bitflags"`
	Delete    bool `tl:"flag:13,encoded_in_bitflags"`
	GroupCall bool `tl:"flag:14,encoded_in_bitflags"`
	Invites   bool `tl:"flag:15,encoded_in_bitflags"`
	Send      bool `tl:"flag:16,encoded_in_bitflags"`
	Forums    bool `tl:"flag:17,encoded_in_bitflags"`
	SubExtend bool `tl:"flag:18,encoded_in_bitflags"`
}

func (*ChannelAdminLogEventsFilter) CRC() uint32 {
	return 0xea107ae4
}

func (*ChannelAdminLogEventsFilter) FlagIndex() int {
	return 0
}

// Admin log events
type ChannelsAdminLogResults struct {
	Events []*ChannelAdminLogEvent
	Chats  []Chat
	Users  []User
}

func (*ChannelsAdminLogResults) CRC() uint32 {
	return 0xed8af74d
}

// Represents a channel participant
type ChannelsChannelParticipant struct {
	Participant ChannelParticipant
	Chats       []Chat
	Users       []User
}

func (*ChannelsChannelParticipant) CRC() uint32 {
	return 0xdfb80317
}

// A list of peers that can be used to send messages in a specific group
type ChannelsSendAsPeers struct {
	Peers []*SendAsPeer
	Chats []Chat
	Users []User
}

func (*ChannelsSendAsPeers) CRC() uint32 {
	return 0xf496b0c6
}

// Represents the rights of an admin in a channel/supergroup.
type ChatAdminRights struct {
	ChangeInfo           bool `tl:"flag:0,encoded_in_bitflags"`
	PostMessages         bool `tl:"flag:1,encoded_in_bitflags"`
	EditMessages         bool `tl:"flag:2,encoded_in_bitflags"`
	DeleteMessages       bool `tl:"flag:3,encoded_in_bitflags"`
	BanUsers             bool `tl:"flag:4,encoded_in_bitflags"`
	InviteUsers          bool `tl:"flag:5,encoded_in_bitflags"`
	PinMessages          bool `tl:"flag:7,encoded_in_bitflags"`
	AddAdmins            bool `tl:"flag:9,encoded_in_bitflags"`
	Anonymous            bool `tl:"flag:10,encoded_in_bitflags"`
	ManageCall           bool `tl:"flag:11,encoded_in_bitflags"`
	Other                bool `tl:"flag:12,encoded_in_bitflags"`
	ManageTopics         bool `tl:"flag:13,encoded_in_bitflags"`
	PostStories          bool `tl:"flag:14,encoded_in_bitflags"`
	EditStories          bool `tl:"flag:15,encoded_in_bitflags"`
	DeleteStories        bool `tl:"flag:16,encoded_in_bitflags"`
	ManageDirectMessages bool `tl:"flag:17,encoded_in_bitflags"`
}

func (*ChatAdminRights) CRC() uint32 {
	return 0x5fb224d5
}

func (*ChatAdminRights) FlagIndex() int {
	return 0
}

// Info about chat invites generated by admins.
type ChatAdminWithInvites struct {
	AdminID             int64
	InvitesCount        int32
	RevokedInvitesCount int32
}

func (*ChatAdminWithInvites) CRC() uint32 {
	return 0xf2ecef23
}

// Represents the rights of a normal user in a supergroup/channel/chat. In this case, the flags are inverted: if set, a flag <strong>does not allow</strong> a user to do X.
type ChatBannedRights struct {
	ViewMessages    bool `tl:"flag:0,encoded_in_bitflags"`
	SendMessages    bool `tl:"flag:1,encoded_in_bitflags"`
	SendMedia       bool `tl:"flag:2,encoded_in_bitflags"`
	SendStickers    bool `tl:"flag:3,encoded_in_bitflags"`
	SendGifs        bool `tl:"flag:4,encoded_in_bitflags"`
	SendGames       bool `tl:"flag:5,encoded_in_bitflags"`
	SendInline      bool `tl:"flag:6,encoded_in_bitflags"`
	EmbedLinks      bool `tl:"flag:7,encoded_in_bitflags"`
	SendPolls       bool `tl:"flag:8,encoded_in_bitflags"`
	ChangeInfo      bool `tl:"flag:10,encoded_in_bitflags"`
	InviteUsers     bool `tl:"flag:15,encoded_in_bitflags"`
	PinMessages     bool `tl:"flag:17,encoded_in_bitflags"`
	ManageTopics    bool `tl:"flag:18,encoded_in_bitflags"`
	SendPhotos      bool `tl:"flag:19,encoded_in_bitflags"`
	SendVideos      bool `tl:"flag:20,encoded_in_bitflags"`
	SendRoundvideos bool `tl:"flag:21,encoded_in_bitflags"`
	SendAudios      bool `tl:"flag:22,encoded_in_bitflags"`
	SendVoices      bool `tl:"flag:23,encoded_in_bitflags"`
	SendDocs        bool `tl:"flag:24,encoded_in_bitflags"`
	SendPlain       bool `tl:"flag:25,encoded_in_bitflags"`
	UntilDate       int32
}

func (*ChatBannedRights) CRC() uint32 {
	return 0x9f120418
}

func (*ChatBannedRights) FlagIndex() int {
	return 0
}

// When and which user joined the chat using a chat invite
type ChatInviteImporter struct {
	Requested   bool `tl:"flag:0,encoded_in_bitflags"`
	ViaChatlist bool `tl:"flag:3,encoded_in_bitflags"`
	UserID      int64
	Date        int32
	About       string `tl:"flag:2"`
	ApprovedBy  int64  `tl:"flag:1"`
}

func (*ChatInviteImporter) CRC() uint32 {
	return 0x8c5adfd9
}

func (*ChatInviteImporter) FlagIndex() int {
	return 0
}

// Number of online users in a chat
type ChatOnlines struct {
	Onlines int32
}

func (*ChatOnlines) CRC() uint32 {
	return 0xf041e250
}

type ChatThemes struct {
	Hash       int64
	Themes     []ChatTheme
	Chats      []Chat
	Users      []User
	NextOffset string `tl:"flag:0"`
}

func (*ChatThemes) CRC() uint32 {
	return 0xbe098173
}

func (*ChatThemes) FlagIndex() int {
	return 0
}

// Updated information about a chat folder deep link ».
type ChatlistsChatlistUpdates struct {
	MissingPeers []Peer
	Chats        []Chat
	Users        []User
}

func (*ChatlistsChatlistUpdates) CRC() uint32 {
	return 0x93bd878d
}

// Info about an exported chat folder deep link ».
type ChatlistsExportedChatlistInvite struct {
	Filter DialogFilter
	Invite *ExportedChatlistInvite
}

func (*ChatlistsExportedChatlistInvite) CRC() uint32 {
	return 0x10e6e3a6
}

// Info about multiple chat folder deep links ».
type ChatlistsExportedInvites struct {
	Invites []*ExportedChatlistInvite
	Chats   []Chat
	Users   []User
}

func (*ChatlistsExportedInvites) CRC() uint32 {
	return 0x10ab6dc7
}

// Settings used by telegram servers for sending the confirm code.
type CodeSettings struct {
	AllowFlashcall  bool     `tl:"flag:0,encoded_in_bitflags"`
	CurrentNumber   bool     `tl:"flag:1,encoded_in_bitflags"`
	AllowAppHash    bool     `tl:"flag:4,encoded_in_bitflags"`
	AllowMissedCall bool     `tl:"flag:5,encoded_in_bitflags"`
	AllowFirebase   bool     `tl:"flag:7,encoded_in_bitflags"`
	UnknownNumber   bool     `tl:"flag:9,encoded_in_bitflags"`
	LogoutTokens    [][]byte `tl:"flag:6"`
	Token           string   `tl:"flag:8"`
	AppSandbox      bool     `tl:"flag:8"`
}

func (*CodeSettings) CRC() uint32 {
	return 0xad253d78
}

func (*CodeSettings) FlagIndex() int {
	return 0
}

// Current configuration
type Config struct {
	DefaultP2PContacts      bool `tl:"flag:3,encoded_in_bitflags"`
	PreloadFeaturedStickers bool `tl:"flag:4,encoded_in_bitflags"`
	RevokePmInbox           bool `tl:"flag:6,encoded_in_bitflags"`
	BlockedMode             bool `tl:"flag:8,encoded_in_bitflags"`
	ForceTryIpv6            bool `tl:"flag:14,encoded_in_bitflags"`
	Date                    int32
	Expires                 int32
	TestMode                bool
	ThisDc                  int32
	DcOptions               []*DcOption
	DcTxtDomainName         string
	ChatSizeMax             int32
	MegagroupSizeMax        int32
	ForwardedCountMax       int32
	OnlineUpdatePeriodMs    int32
	OfflineBlurTimeoutMs    int32
	OfflineIdleTimeoutMs    int32
	OnlineCloudTimeoutMs    int32
	NotifyCloudDelayMs      int32
	NotifyDefaultDelayMs    int32
	PushChatPeriodMs        int32
	PushChatLimit           int32
	EditTimeLimit           int32
	RevokeTimeLimit         int32
	RevokePmTimeLimit       int32
	RatingEDecay            int32
	StickersRecentLimit     int32
	ChannelsReadMediaPeriod int32
	TmpSessions             int32 `tl:"flag:0"`
	CallReceiveTimeoutMs    int32
	CallRingTimeoutMs       int32
	CallConnectTimeoutMs    int32
	CallPacketTimeoutMs     int32
	MeURLPrefix             string
	AutoupdateURLPrefix     string `tl:"flag:7"`
	GifSearchUsername       string `tl:"flag:9"`
	VenueSearchUsername     string `tl:"flag:10"`
	ImgSearchUsername       string `tl:"flag:11"`
	StaticMapsProvider      string `tl:"flag:12"`
	CaptionLengthMax        int32
	MessageLengthMax        int32
	WebfileDcID             int32
	SuggestedLangCode       string   `tl:"flag:2"`
	LangPackVersion         int32    `tl:"flag:2"`
	BaseLangPackVersion     int32    `tl:"flag:2"`
	ReactionsDefault        Reaction `tl:"flag:15"`
	AutologinToken          string   `tl:"flag:16"`
}

func (*Config) CRC() uint32 {
	return 0xcc1a241e
}

func (*Config) FlagIndex() int {
	return 0
}

// Contains info about a connected business bot ».
type ConnectedBot struct {
	BotID      int64
	Recipients *BusinessBotRecipients
	Rights     *BusinessBotRights
}

func (*ConnectedBot) CRC() uint32 {
	return 0xcd64636c
}

// Info about an active affiliate program we have with a Mini App
type ConnectedBotStarRef struct {
	Revoked            bool `tl:"flag:1,encoded_in_bitflags"`
	URL                string
	Date               int32
	BotID              int64
	CommissionPermille int32
	DurationMonths     int32 `tl:"flag:0"`
	Participants       int64
	Revenue            int64
}

func (*ConnectedBotStarRef) CRC() uint32 {
	return 0x19a13f71
}

func (*ConnectedBotStarRef) FlagIndex() int {
	return 0
}

// A contact of the current user that is registered in the system.
type Contact struct {
	UserID int64
	Mutual bool
}

func (*Contact) CRC() uint32 {
	return 0x145ade0b
}

// Birthday information of a contact.
type ContactBirthday struct {
	ContactID int64
	Birthday  *Birthday
}

func (*ContactBirthday) CRC() uint32 {
	return 0x1d998733
}

// Contact status: online / offline.
type ContactStatus struct {
	UserID int64
	Status UserStatus
}

func (*ContactStatus) CRC() uint32 {
	return 0x16d9703b
}

// Birthday information of our contacts.
type ContactsContactBirthdays struct {
	Contacts []*ContactBirthday
	Users    []User
}

func (*ContactsContactBirthdays) CRC() uint32 {
	return 0x114ff30d
}

// Users found by name substring and auxiliary data.
type ContactsFound struct {
	MyResults []Peer
	Results   []Peer
	Chats     []Chat
	Users     []User
}

func (*ContactsFound) CRC() uint32 {
	return 0xb3134d9d
}

// Info on successfully imported contacts.
type ContactsImportedContacts struct {
	Imported       []*ImportedContact
	PopularInvites []*PopularContact
	RetryContacts  []int64
	Users          []User
}

func (*ContactsImportedContacts) CRC() uint32 {
	return 0x77d01c3b
}

// Resolved peer
type ContactsResolvedPeer struct {
	Peer  Peer
	Chats []Chat
	Users []User
}

func (*ContactsResolvedPeer) CRC() uint32 {
	return 0x7f077ad9
}

// Represents a json-encoded object
type DataJson struct {
	Data string
}

func (*DataJson) CRC() uint32 {
	return 0x7d748d04
}

// Data center
type DcOption struct {
	Ipv6         bool `tl:"flag:0,encoded_in_bitflags"`
	MediaOnly    bool `tl:"flag:1,encoded_in_bitflags"`
	TcpoOnly     bool `tl:"flag:2,encoded_in_bitflags"`
	Cdn          bool `tl:"flag:3,encoded_in_bitflags"`
	Static       bool `tl:"flag:4,encoded_in_bitflags"`
	ThisPortOnly bool `tl:"flag:5,encoded_in_bitflags"`
	ID           int32
	IpAddress    string
	Port         int32
	Secret       []byte `tl:"flag:10"`
}

func (*DcOption) CRC() uint32 {
	return 0x18b7a10d
}

func (*DcOption) FlagIndex() int {
	return 0
}

// Contains info about the default value of the Time-To-Live setting, applied to all new chats.
type DefaultHistoryTtl struct {
	Period int32
}

func (*DefaultHistoryTtl) CRC() uint32 {
	return 0x43b46b20
}

// Suggested folders
type DialogFilterSuggested struct {
	Filter      DialogFilter
	Description string
}

func (*DialogFilterSuggested) CRC() uint32 {
	return 0x77744d4a
}

// Disallow the reception of specific gift types.
type DisallowedGiftsSettings struct {
	DisallowUnlimitedStargifts bool `tl:"flag:0,encoded_in_bitflags"`
	DisallowLimitedStargifts   bool `tl:"flag:1,encoded_in_bitflags"`
	DisallowUniqueStargifts    bool `tl:"flag:2,encoded_in_bitflags"`
	DisallowPremiumGifts       bool `tl:"flag:3,encoded_in_bitflags"`
}

func (*DisallowedGiftsSettings) CRC() uint32 {
	return 0x71f276c4
}

func (*DisallowedGiftsSettings) FlagIndex() int {
	return 0
}

// Changes to emoji keywords
type EmojiKeywordsDifference struct {
	LangCode    string
	FromVersion int32
	Version     int32
	Keywords    []EmojiKeyword
}

func (*EmojiKeywordsDifference) CRC() uint32 {
	return 0x5cc761bd
}

// Emoji language
type EmojiLanguage struct {
	LangCode string
}

func (*EmojiLanguage) CRC() uint32 {
	return 0xb3fb5361
}

// An HTTP URL which can be used to automatically log in into translation platform and suggest new emoji replacements. The URL will be valid for 30 seconds after generation
type EmojiURL struct {
	URL string
}

func (*EmojiURL) CRC() uint32 {
	return 0xa575739d
}

// Error.
type Error struct {
	Code int32
	Text string
}

func (*Error) CRC() uint32 {
	return 0xc4b9f9bb
}

// Exported chat folder deep link ».
type ExportedChatlistInvite struct {
	Revoked bool `tl:"flag:0,encoded_in_bitflags"`
	Title   string
	URL     string
	Peers   []Peer
}

func (*ExportedChatlistInvite) CRC() uint32 {
	return 0xc5181ac
}

func (*ExportedChatlistInvite) FlagIndex() int {
	return 0
}

// Describes a temporary profile link.
type ExportedContactToken struct {
	URL     string
	Expires int32
}

func (*ExportedContactToken) CRC() uint32 {
	return 0x41bf109b
}

// Link to a message in a supergroup/channel
type ExportedMessageLink struct {
	Link string
	Html string
}

func (*ExportedMessageLink) CRC() uint32 {
	return 0x5dab1af4
}

// Represents a story deep link.
type ExportedStoryLink struct {
	Link string
}

func (*ExportedStoryLink) CRC() uint32 {
	return 0x3fc9053b
}

// Represents a fact-check » created by an independent fact-checker.
type FactCheck struct {
	NeedCheck bool              `tl:"flag:0,encoded_in_bitflags"`
	Country   string            `tl:"flag:1"`
	Text      *TextWithEntities `tl:"flag:1"`
	Hash      int64
}

func (*FactCheck) CRC() uint32 {
	return 0xb89bfccf
}

func (*FactCheck) FlagIndex() int {
	return 0
}

// SHA256 Hash of an uploaded file, to be checked for validity after download
type FileHash struct {
	Offset int64
	Limit  int32
	Hash   []byte
}

func (*FileHash) CRC() uint32 {
	return 0xf39b035c
}

// Folder
type Folder struct {
	AutofillNewBroadcasts     bool `tl:"flag:0,encoded_in_bitflags"`
	AutofillPublicGroups      bool `tl:"flag:1,encoded_in_bitflags"`
	AutofillNewCorrespondents bool `tl:"flag:2,encoded_in_bitflags"`
	ID                        int32
	Title                     string
	Photo                     ChatPhoto `tl:"flag:3"`
}

func (*Folder) CRC() uint32 {
	return 0xff544e65
}

func (*Folder) FlagIndex() int {
	return 0
}

// Peer in a folder
type FolderPeer struct {
	Peer     Peer
	FolderID int32
}

func (*FolderPeer) CRC() uint32 {
	return 0xe9baa668
}

// A story found using global story search ».
type FoundStory struct {
	Peer  Peer
	Story StoryItem
}

func (*FoundStory) CRC() uint32 {
	return 0xe87acbc0
}

// Info about a fragment collectible.
type FragmentCollectibleInfo struct {
	PurchaseDate   int32
	Currency       string
	Amount         int64
	CryptoCurrency string
	CryptoAmount   int64
	URL            string
}

func (*FragmentCollectibleInfo) CRC() uint32 {
	return 0x6ebdff91
}

// Indicates an already sent game
type Game struct {
	ID          int64
	AccessHash  int64
	ShortName   string
	Title       string
	Description string
	Photo       Photo
	Document    Document `tl:"flag:0"`
}

func (*Game) CRC() uint32 {
	return 0xbdf9653b
}

func (*Game) FlagIndex() int {
	return 0
}

// Address optionally associated to a geoPoint.
type GeoPointAddress struct {
	CountryIso2 string
	State       string `tl:"flag:0"`
	City        string `tl:"flag:1"`
	Street      string `tl:"flag:2"`
}

func (*GeoPointAddress) CRC() uint32 {
	return 0xde4c5d93
}

func (*GeoPointAddress) FlagIndex() int {
	return 0
}

// Global privacy settings
type GlobalPrivacySettings struct {
	ArchiveAndMuteNewNoncontactPeers bool                     `tl:"flag:0,encoded_in_bitflags"`
	KeepArchivedUnmuted              bool                     `tl:"flag:1,encoded_in_bitflags"`
	KeepArchivedFolders              bool                     `tl:"flag:2,encoded_in_bitflags"`
	HideReadMarks                    bool                     `tl:"flag:3,encoded_in_bitflags"`
	NewNoncontactPeersRequirePremium bool                     `tl:"flag:4,encoded_in_bitflags"`
	DisplayGiftsButton               bool                     `tl:"flag:7,encoded_in_bitflags"`
	NoncontactPeersPaidStars         int64                    `tl:"flag:5"`
	DisallowedGifts                  *DisallowedGiftsSettings `tl:"flag:6"`
}

func (*GlobalPrivacySettings) CRC() uint32 {
	return 0xfe41b34f
}

func (*GlobalPrivacySettings) FlagIndex() int {
	return 0
}

// Info about a group call participant
type GroupCallParticipant struct {
	Muted           bool `tl:"flag:0,encoded_in_bitflags"`
	Left            bool `tl:"flag:1,encoded_in_bitflags"`
	CanSelfUnmute   bool `tl:"flag:2,encoded_in_bitflags"`
	JustJoined      bool `tl:"flag:4,encoded_in_bitflags"`
	Versioned       bool `tl:"flag:5,encoded_in_bitflags"`
	Min             bool `tl:"flag:8,encoded_in_bitflags"`
	MutedByYou      bool `tl:"flag:9,encoded_in_bitflags"`
	VolumeByAdmin   bool `tl:"flag:10,encoded_in_bitflags"`
	Self            bool `tl:"flag:12,encoded_in_bitflags"`
	VideoJoined     bool `tl:"flag:15,encoded_in_bitflags"`
	Peer            Peer
	Date            int32
	ActiveDate      int32 `tl:"flag:3"`
	Source          int32
	Volume          int32                      `tl:"flag:7"`
	About           string                     `tl:"flag:11"`
	RaiseHandRating int64                      `tl:"flag:13"`
	Video           *GroupCallParticipantVideo `tl:"flag:6"`
	Presentation    *GroupCallParticipantVideo `tl:"flag:14"`
}

func (*GroupCallParticipant) CRC() uint32 {
	return 0xeba636fe
}

func (*GroupCallParticipant) FlagIndex() int {
	return 0
}

// Info about a video stream
type GroupCallParticipantVideo struct {
	Paused       bool `tl:"flag:0,encoded_in_bitflags"`
	Endpoint     string
	SourceGroups []*GroupCallParticipantVideoSourceGroup
	AudioSource  int32 `tl:"flag:1"`
}

func (*GroupCallParticipantVideo) CRC() uint32 {
	return 0x67753ac8
}

func (*GroupCallParticipantVideo) FlagIndex() int {
	return 0
}

// Describes a group of video synchronization source identifiers
type GroupCallParticipantVideoSourceGroup struct {
	Semantics string
	Sources   []int32
}

func (*GroupCallParticipantVideoSourceGroup) CRC() uint32 {
	return 0xdcb118b7
}

// Info about an RTMP stream in a group call or livestream
type GroupCallStreamChannel struct {
	Channel         int32
	Scale           int32
	LastTimestampMs int64
}

func (*GroupCallStreamChannel) CRC() uint32 {
	return 0x80eb48af
}

// Name, ISO code, localized name and phone codes/patterns of a specific country
type HelpCountry struct {
	Hidden       bool `tl:"flag:0,encoded_in_bitflags"`
	Iso2         string
	DefaultName  string
	Name         string `tl:"flag:1"`
	CountryCodes []*HelpCountryCode
}

func (*HelpCountry) CRC() uint32 {
	return 0xc3878e23
}

func (*HelpCountry) FlagIndex() int {
	return 0
}

// Country code and phone number pattern of a specific country
type HelpCountryCode struct {
	CountryCode string
	Prefixes    []string `tl:"flag:0"`
	Patterns    []string `tl:"flag:1"`
}

func (*HelpCountryCode) CRC() uint32 {
	return 0x4203c5ef
}

func (*HelpCountryCode) FlagIndex() int {
	return 0
}

// Text of a text message with an invitation to install Telegram.
type HelpInviteText struct {
	Message string
}

func (*HelpInviteText) CRC() uint32 {
	return 0x18cb9f78
}

// Contains info about a color palette ».
type HelpPeerColorOption struct {
	Hidden          bool `tl:"flag:0,encoded_in_bitflags"`
	ColorID         int32
	Colors          HelpPeerColorSet `tl:"flag:1"`
	DarkColors      HelpPeerColorSet `tl:"flag:2"`
	ChannelMinLevel int32            `tl:"flag:3"`
	GroupMinLevel   int32            `tl:"flag:4"`
}

func (*HelpPeerColorOption) CRC() uint32 {
	return 0xadec6ebe
}

func (*HelpPeerColorOption) FlagIndex() int {
	return 0
}

// Telegram Premium promotion information
type HelpPremiumPromo struct {
	StatusText     string
	StatusEntities []MessageEntity
	VideoSections  []string
	Videos         []Document
	PeriodOptions  []*PremiumSubscriptionOption
	Users          []User
}

func (*HelpPremiumPromo) CRC() uint32 {
	return 0x5334759c
}

// Recent t.me URLs
type HelpRecentMeUrls struct {
	Urls  []RecentMeURL
	Chats []Chat
	Users []User
}

func (*HelpRecentMeUrls) CRC() uint32 {
	return 0xe0310d7
}

// Info on support user.
type HelpSupport struct {
	PhoneNumber string
	User        User
}

func (*HelpSupport) CRC() uint32 {
	return 0x17c6b5f6
}

// Localized name for telegram support
type HelpSupportName struct {
	Name string
}

func (*HelpSupportName) CRC() uint32 {
	return 0x8c05f1c9
}

// Info about the latest telegram Terms Of Service
type HelpTermsOfService struct {
	Popup         bool `tl:"flag:0,encoded_in_bitflags"`
	ID            *DataJson
	Text          string
	Entities      []MessageEntity
	MinAgeConfirm int32 `tl:"flag:1"`
}

func (*HelpTermsOfService) CRC() uint32 {
	return 0x780a0310
}

func (*HelpTermsOfService) FlagIndex() int {
	return 0
}

// Game highscore
type HighScore struct {
	Pos    int32
	UserID int64
	Score  int32
}

func (*HighScore) CRC() uint32 {
	return 0x73a379eb
}

// Successfully imported contact.
type ImportedContact struct {
	UserID   int64
	ClientID int64
}

func (*ImportedContact) CRC() uint32 {
	return 0xc13e3c50
}

// The bot requested the user to message them in private
type InlineBotSwitchPm struct {
	Text       string
	StartParam string
}

func (*InlineBotSwitchPm) CRC() uint32 {
	return 0x3c20629f
}

// Specifies an inline mode mini app button, shown on top of the inline query results list.
type InlineBotWebView struct {
	Text string
	URL  string
}

func (*InlineBotWebView) CRC() uint32 {
	return 0xb57295d5
}

// Event that occurred in the application.
type InputAppEvent struct {
	Time float64
	Type string
	Peer int64
	Data JsonValue
}

func (*InputAppEvent) CRC() uint32 {
	return 0x1d1b1245
}

// Describes a Telegram Business away message, automatically sent to users writing to us when we're offline, during closing hours, while we're on vacation, or in some other custom time period when we cannot immediately answer to the user.
type InputBusinessAwayMessage struct {
	OfflineOnly bool `tl:"flag:0,encoded_in_bitflags"`
	ShortcutID  int32
	Schedule    BusinessAwayMessageSchedule
	Recipients  *InputBusinessRecipients
}

func (*InputBusinessAwayMessage) CRC() uint32 {
	return 0x832175e0
}

func (*InputBusinessAwayMessage) FlagIndex() int {
	return 0
}

// Specifies the private chats that a connected business bot » may interact with.
type InputBusinessBotRecipients struct {
	ExistingChats   bool        `tl:"flag:0,encoded_in_bitflags"`
	NewChats        bool        `tl:"flag:1,encoded_in_bitflags"`
	Contacts        bool        `tl:"flag:2,encoded_in_bitflags"`
	NonContacts     bool        `tl:"flag:3,encoded_in_bitflags"`
	ExcludeSelected bool        `tl:"flag:5,encoded_in_bitflags"`
	Users           []InputUser `tl:"flag:4"`
	ExcludeUsers    []InputUser `tl:"flag:6"`
}

func (*InputBusinessBotRecipients) CRC() uint32 {
	return 0xc4e5921e
}

func (*InputBusinessBotRecipients) FlagIndex() int {
	return 0
}

// Contains info about a business chat deep link » to be created by the current account.
type InputBusinessChatLink struct {
	Message  string
	Entities []MessageEntity `tl:"flag:0"`
	Title    string          `tl:"flag:1"`
}

func (*InputBusinessChatLink) CRC() uint32 {
	return 0x11679fa7
}

func (*InputBusinessChatLink) FlagIndex() int {
	return 0
}

// Describes a Telegram Business greeting, automatically sent to new users writing to us in private for the first time, or after a certain inactivity period.
type InputBusinessGreetingMessage struct {
	ShortcutID     int32
	Recipients     *InputBusinessRecipients
	NoActivityDays int32
}

func (*InputBusinessGreetingMessage) CRC() uint32 {
	return 0x194cb3b
}

// Telegram Business introduction ».
type InputBusinessIntro struct {
	Title       string
	Description string
	Sticker     InputDocument `tl:"flag:0"`
}

func (*InputBusinessIntro) CRC() uint32 {
	return 0x9c469cd
}

func (*InputBusinessIntro) FlagIndex() int {
	return 0
}

// Specifies the chats that <strong>can</strong> receive Telegram Business away » and greeting » messages.
type InputBusinessRecipients struct {
	ExistingChats   bool        `tl:"flag:0,encoded_in_bitflags"`
	NewChats        bool        `tl:"flag:1,encoded_in_bitflags"`
	Contacts        bool        `tl:"flag:2,encoded_in_bitflags"`
	NonContacts     bool        `tl:"flag:3,encoded_in_bitflags"`
	ExcludeSelected bool        `tl:"flag:5,encoded_in_bitflags"`
	Users           []InputUser `tl:"flag:4"`
}

func (*InputBusinessRecipients) CRC() uint32 {
	return 0x6f8b32aa
}

func (*InputBusinessRecipients) FlagIndex() int {
	return 0
}

// Folder ID
type InputChatlistDialogFilter struct {
	FilterID int32
}

func (*InputChatlistDialogFilter) CRC() uint32 {
	return 0xf3e0da33
}

// Info about an MTProxy used to connect.
type InputClientProxy struct {
	Address string
	Port    int32
}

func (*InputClientProxy) CRC() uint32 {
	return 0x75588b3f
}

// Creates an encrypted chat.
type InputEncryptedChat struct {
	ChatID     int32
	AccessHash int64
}

func (*InputEncryptedChat) CRC() uint32 {
	return 0xf141b5e1
}

// Peer in a folder
type InputFolderPeer struct {
	Peer     InputPeer
	FolderID int32
}

func (*InputFolderPeer) CRC() uint32 {
	return 0xfbd2c296
}

// Notification settings.
type InputPeerNotifySettings struct {
	ShowPreviews      bool              `tl:"flag:0"`
	Silent            bool              `tl:"flag:1"`
	MuteUntil         int32             `tl:"flag:2"`
	Sound             NotificationSound `tl:"flag:3"`
	StoriesMuted      bool              `tl:"flag:6"`
	StoriesHideSender bool              `tl:"flag:7"`
	StoriesSound      NotificationSound `tl:"flag:8"`
}

func (*InputPeerNotifySettings) CRC() uint32 {
	return 0xcacb6ae2
}

func (*InputPeerNotifySettings) FlagIndex() int {
	return 0
}

// Phone call
type InputPhoneCall struct {
	ID         int64
	AccessHash int64
}

func (*InputPhoneCall) CRC() uint32 {
	return 0x1e36fded
}

// Phone contact.
type InputPhoneContact struct {
	ClientID  int64
	Phone     string
	FirstName string
	LastName  string
}

func (*InputPhoneContact) CRC() uint32 {
	return 0xf392b7f4
}

// Secure value, for more info see the passport docs »
type InputSecureValue struct {
	Type        SecureValueType
	Data        *SecureData       `tl:"flag:0"`
	FrontSide   InputSecureFile   `tl:"flag:1"`
	ReverseSide InputSecureFile   `tl:"flag:2"`
	Selfie      InputSecureFile   `tl:"flag:3"`
	Translation []InputSecureFile `tl:"flag:6"`
	Files       []InputSecureFile `tl:"flag:4"`
	PlainData   SecurePlainData   `tl:"flag:5"`
}

func (*InputSecureValue) CRC() uint32 {
	return 0xdb21d0a7
}

func (*InputSecureValue) FlagIndex() int {
	return 0
}

// A single media in an album or grouped media sent with messages.sendMultiMedia.
type InputSingleMedia struct {
	Media    InputMedia
	RandomID int64
	Message  string
	Entities []MessageEntity `tl:"flag:0"`
}

func (*InputSingleMedia) CRC() uint32 {
	return 0x1cc6e91f
}

func (*InputSingleMedia) FlagIndex() int {
	return 0
}

// Used to fetch info about a Telegram Star transaction ».
type InputStarsTransaction struct {
	Refund bool `tl:"flag:0,encoded_in_bitflags"`
	ID     string
}

func (*InputStarsTransaction) CRC() uint32 {
	return 0x206ae6d1
}

func (*InputStarsTransaction) FlagIndex() int {
	return 0
}

// Sticker in a stickerset
type InputStickerSetItem struct {
	Document   InputDocument
	Emoji      string
	MaskCoords *MaskCoords `tl:"flag:0"`
	Keywords   string      `tl:"flag:1"`
}

func (*InputStickerSetItem) CRC() uint32 {
	return 0x32da9e9c
}

func (*InputStickerSetItem) FlagIndex() int {
	return 0
}

// Theme settings
type InputThemeSettings struct {
	MessageColorsAnimated bool `tl:"flag:2,encoded_in_bitflags"`
	BaseTheme             BaseTheme
	AccentColor           int32
	OutboxAccentColor     int32              `tl:"flag:3"`
	MessageColors         []int32            `tl:"flag:0"`
	Wallpaper             InputWallPaper     `tl:"flag:1"`
	WallpaperSettings     *WallPaperSettings `tl:"flag:1"`
}

func (*InputThemeSettings) CRC() uint32 {
	return 0x8fde504f
}

func (*InputThemeSettings) FlagIndex() int {
	return 0
}

// The document
type InputWebDocument struct {
	URL        string
	Size       int32
	MimeType   string
	Attributes []DocumentAttribute
}

func (*InputWebDocument) CRC() uint32 {
	return 0x9bed434d
}

// Invoice
type Invoice struct {
	Test                     bool `tl:"flag:0,encoded_in_bitflags"`
	NameRequested            bool `tl:"flag:1,encoded_in_bitflags"`
	PhoneRequested           bool `tl:"flag:2,encoded_in_bitflags"`
	EmailRequested           bool `tl:"flag:3,encoded_in_bitflags"`
	ShippingAddressRequested bool `tl:"flag:4,encoded_in_bitflags"`
	Flexible                 bool `tl:"flag:5,encoded_in_bitflags"`
	PhoneToProvider          bool `tl:"flag:6,encoded_in_bitflags"`
	EmailToProvider          bool `tl:"flag:7,encoded_in_bitflags"`
	Recurring                bool `tl:"flag:9,encoded_in_bitflags"`
	Currency                 string
	Prices                   []*LabeledPrice
	MaxTipAmount             int64   `tl:"flag:8"`
	SuggestedTipAmounts      []int64 `tl:"flag:8"`
	TermsURL                 string  `tl:"flag:10"`
	SubscriptionPeriod       int32   `tl:"flag:11"`
}

func (*Invoice) CRC() uint32 {
	return 0x49ee584
}

func (*Invoice) FlagIndex() int {
	return 0
}

// JSON key: value pair
type JsonObjectValue struct {
	Key   string
	Value JsonValue
}

func (*JsonObjectValue) CRC() uint32 {
	return 0xc0de1bd9
}

// Inline keyboard row
type KeyboardButtonRow struct {
	Buttons []KeyboardButton
}

func (*KeyboardButtonRow) CRC() uint32 {
	return 0x77608b83
}

// This object represents a portion of the price for goods or services.
type LabeledPrice struct {
	Label  string
	Amount int64
}

func (*LabeledPrice) CRC() uint32 {
	return 0xcb296bf8
}

// Changes to the app's localization pack
type LangPackDifference struct {
	LangCode    string
	FromVersion int32
	Version     int32
	Strings     []LangPackString
}

func (*LangPackDifference) CRC() uint32 {
	return 0xf385c1f6
}

// Identifies a localization pack
type LangPackLanguage struct {
	Official        bool `tl:"flag:0,encoded_in_bitflags"`
	Rtl             bool `tl:"flag:2,encoded_in_bitflags"`
	Beta            bool `tl:"flag:3,encoded_in_bitflags"`
	Name            string
	NativeName      string
	LangCode        string
	BaseLangCode    string `tl:"flag:1"`
	PluralCode      string
	StringsCount    int32
	TranslatedCount int32
	TranslationsURL string
}

func (*LangPackLanguage) CRC() uint32 {
	return 0xeeca5ce3
}

func (*LangPackLanguage) FlagIndex() int {
	return 0
}

// Position on a photo where a mask should be placed when attaching stickers to media »
type MaskCoords struct {
	N    int32
	X    float64
	Y    float64
	Zoom float64
}

func (*MaskCoords) CRC() uint32 {
	return 0xaed6dbb2
}

// Coordinates and size of a clickable rectangular area on top of a story.
type MediaAreaCoordinates struct {
	X        float64
	Y        float64
	W        float64
	H        float64
	Rotation float64
	Radius   float64 `tl:"flag:0"`
}

func (*MediaAreaCoordinates) CRC() uint32 {
	return 0xcfc9e002
}

func (*MediaAreaCoordinates) FlagIndex() int {
	return 0
}

// Info about a forwarded message
type MessageFwdHeader struct {
	Imported       bool   `tl:"flag:7,encoded_in_bitflags"`
	SavedOut       bool   `tl:"flag:11,encoded_in_bitflags"`
	FromID         Peer   `tl:"flag:0"`
	FromName       string `tl:"flag:5"`
	Date           int32
	ChannelPost    int32  `tl:"flag:2"`
	PostAuthor     string `tl:"flag:3"`
	SavedFromPeer  Peer   `tl:"flag:4"`
	SavedFromMsgID int32  `tl:"flag:4"`
	SavedFromID    Peer   `tl:"flag:8"`
	SavedFromName  string `tl:"flag:9"`
	SavedDate      int32  `tl:"flag:10"`
	PsaType        string `tl:"flag:6"`
}

func (*MessageFwdHeader) CRC() uint32 {
	return 0x4e4df4bb
}

func (*MessageFwdHeader) FlagIndex() int {
	return 0
}

// How a certain peer reacted to the message
type MessagePeerReaction struct {
	Big      bool `tl:"flag:0,encoded_in_bitflags"`
	Unread   bool `tl:"flag:1,encoded_in_bitflags"`
	My       bool `tl:"flag:2,encoded_in_bitflags"`
	PeerID   Peer
	Date     int32
	Reaction Reaction
}

func (*MessagePeerReaction) CRC() uint32 {
	return 0x8c79b63c
}

func (*MessagePeerReaction) FlagIndex() int {
	return 0
}

// Indicates a range of chat messages
type MessageRange struct {
	MinID int32
	MaxID int32
}

func (*MessageRange) CRC() uint32 {
	return 0xae30253
}

// Message reactions »
type MessageReactions struct {
	Min             bool `tl:"flag:0,encoded_in_bitflags"`
	CanSeeList      bool `tl:"flag:2,encoded_in_bitflags"`
	ReactionsAsTags bool `tl:"flag:3,encoded_in_bitflags"`
	Results         []*ReactionCount
	RecentReactions []*MessagePeerReaction `tl:"flag:1"`
	TopReactors     []*MessageReactor      `tl:"flag:4"`
}

func (*MessageReactions) CRC() uint32 {
	return 0xa339f0b
}

func (*MessageReactions) FlagIndex() int {
	return 0
}

// Info about a user in the paid Star reactions leaderboard for a message.
type MessageReactor struct {
	Top       bool `tl:"flag:0,encoded_in_bitflags"`
	My        bool `tl:"flag:1,encoded_in_bitflags"`
	Anonymous bool `tl:"flag:2,encoded_in_bitflags"`
	PeerID    Peer `tl:"flag:3"`
	Count     int32
}

func (*MessageReactor) CRC() uint32 {
	return 0x4ba3a95a
}

func (*MessageReactor) FlagIndex() int {
	return 0
}

// Info about the comment section of a channel post, a simple message thread, a forum topic, or a direct messages topic (all features ultimately based on message threads).
type MessageReplies struct {
	Comments       bool `tl:"flag:0,encoded_in_bitflags"`
	Replies        int32
	RepliesPts     int32
	RecentRepliers []Peer `tl:"flag:1"`
	ChannelID      int64  `tl:"flag:0"`
	MaxID          int32  `tl:"flag:2"`
	ReadMaxID      int32  `tl:"flag:3"`
}

func (*MessageReplies) CRC() uint32 {
	return 0x83d60fc2
}

func (*MessageReplies) FlagIndex() int {
	return 0
}

// Report menu option
type MessageReportOption struct {
	Text   string
	Option []byte
}

func (*MessageReportOption) CRC() uint32 {
	return 0x7903e3d9
}

// View, forward counter + info about replies of a specific message
type MessageViews struct {
	Views    int32           `tl:"flag:0"`
	Forwards int32           `tl:"flag:1"`
	Replies  *MessageReplies `tl:"flag:2"`
}

func (*MessageViews) CRC() uint32 {
	return 0x455b853d
}

func (*MessageViews) FlagIndex() int {
	return 0
}

// Messages found and affected by changes
type MessagesAffectedFoundMessages struct {
	Pts      int32
	PtsCount int32
	Offset   int32
	Messages []int32
}

func (*MessagesAffectedFoundMessages) CRC() uint32 {
	return 0xef8d3e6c
}

// Affected part of communication history with the user or in a chat.
type MessagesAffectedHistory struct {
	Pts      int32
	PtsCount int32
	Offset   int32
}

func (*MessagesAffectedHistory) CRC() uint32 {
	return 0xb45c69d1
}

// Events affected by operation
type MessagesAffectedMessages struct {
	Pts      int32
	PtsCount int32
}

func (*MessagesAffectedMessages) CRC() uint32 {
	return 0x84d19185
}

// Archived stickersets
type MessagesArchivedStickers struct {
	Count int32
	Sets  []StickerSetCovered
}

func (*MessagesArchivedStickers) CRC() uint32 {
	return 0x4fcba9c8
}

// Contains information about a direct link Mini App
type MessagesBotApp struct {
	Inactive           bool `tl:"flag:0,encoded_in_bitflags"`
	RequestWriteAccess bool `tl:"flag:1,encoded_in_bitflags"`
	HasSettings        bool `tl:"flag:2,encoded_in_bitflags"`
	App                BotApp
}

func (*MessagesBotApp) CRC() uint32 {
	return 0xeb50adf5
}

func (*MessagesBotApp) FlagIndex() int {
	return 0
}

// Callback answer sent by the bot in response to a button press
type MessagesBotCallbackAnswer struct {
	Alert     bool   `tl:"flag:1,encoded_in_bitflags"`
	HasURL    bool   `tl:"flag:3,encoded_in_bitflags"`
	NativeUi  bool   `tl:"flag:4,encoded_in_bitflags"`
	Message   string `tl:"flag:0"`
	URL       string `tl:"flag:2"`
	CacheTime int32
}

func (*MessagesBotCallbackAnswer) CRC() uint32 {
	return 0x36585ea4
}

func (*MessagesBotCallbackAnswer) FlagIndex() int {
	return 0
}

// Represents a prepared inline message saved by a bot, to be sent to the user via a web app »
type MessagesBotPreparedInlineMessage struct {
	ID         string
	ExpireDate int32
}

func (*MessagesBotPreparedInlineMessage) CRC() uint32 {
	return 0x8ecf0511
}

// Result of a query to an inline bot
type MessagesBotResults struct {
	Gallery       bool `tl:"flag:0,encoded_in_bitflags"`
	QueryID       int64
	NextOffset    string             `tl:"flag:1"`
	SwitchPm      *InlineBotSwitchPm `tl:"flag:2"`
	SwitchWebview *InlineBotWebView  `tl:"flag:3"`
	Results       []BotInlineResult
	CacheTime     int32
	Users         []User
}

func (*MessagesBotResults) CRC() uint32 {
	return 0xe021f2f6
}

func (*MessagesBotResults) FlagIndex() int {
	return 0
}

// Info about chat invites generated by admins.
type MessagesChatAdminsWithInvites struct {
	Admins []*ChatAdminWithInvites
	Users  []User
}

func (*MessagesChatAdminsWithInvites) CRC() uint32 {
	return 0xb69b72d7
}

// Full info about a channel, supergroup, gigagroup or basic group.
type MessagesChatFull struct {
	FullChat ChatFull
	Chats    []Chat
	Users    []User
}

func (*MessagesChatFull) CRC() uint32 {
	return 0xe5d7d19c
}

// Info about the users that joined the chat using a specific chat invite
type MessagesChatInviteImporters struct {
	Count     int32
	Importers []*ChatInviteImporter
	Users     []User
}

func (*MessagesChatInviteImporters) CRC() uint32 {
	return 0x81b6b00a
}

// Contains a confirmation text to be shown to the user, upon importing chat history, click here for more info ».
type MessagesCheckedHistoryImportPeer struct {
	ConfirmText string
}

func (*MessagesCheckedHistoryImportPeer) CRC() uint32 {
	return 0xa24de717
}

// Folder and folder tags information
type MessagesDialogFilters struct {
	TagsEnabled bool `tl:"flag:0,encoded_in_bitflags"`
	Filters     []DialogFilter
}

func (*MessagesDialogFilters) CRC() uint32 {
	return 0x2ad93719
}

func (*MessagesDialogFilters) FlagIndex() int {
	return 0
}

// Information about a message thread
type MessagesDiscussionMessage struct {
	Messages        []Message
	MaxID           int32 `tl:"flag:0"`
	ReadInboxMaxID  int32 `tl:"flag:1"`
	ReadOutboxMaxID int32 `tl:"flag:2"`
	UnreadCount     int32
	Chats           []Chat
	Users           []User
}

func (*MessagesDiscussionMessage) CRC() uint32 {
	return 0xa6341782
}

func (*MessagesDiscussionMessage) FlagIndex() int {
	return 0
}

// Info about chat invites exported by a certain admin.
type MessagesExportedChatInvites struct {
	Count   int32
	Invites []ExportedChatInvite
	Users   []User
}

func (*MessagesExportedChatInvites) CRC() uint32 {
	return 0xbdc62dcc
}

// Contains information about multiple forum topics
type MessagesForumTopics struct {
	OrderByCreateDate bool `tl:"flag:0,encoded_in_bitflags"`
	Count             int32
	Topics            []ForumTopic
	Messages          []Message
	Chats             []Chat
	Users             []User
	Pts               int32
}

func (*MessagesForumTopics) CRC() uint32 {
	return 0x367617d3
}

func (*MessagesForumTopics) FlagIndex() int {
	return 0
}

// Highscores in a game
type MessagesHighScores struct {
	Scores []*HighScore
	Users  []User
}

func (*MessagesHighScores) CRC() uint32 {
	return 0x9a3bfd99
}

// ID of a specific chat import session, click here for more info ».
type MessagesHistoryImport struct {
	ID int64
}

func (*MessagesHistoryImport) CRC() uint32 {
	return 0x1662af0b
}

/*
Contains information about a chat export file generated by a foreign chat app, click here for more info.<br>
If neither the `pm` or `group` flags are set, the specified chat export was generated from a chat of unknown type.
*/
type MessagesHistoryImportParsed struct {
	Pm    bool   `tl:"flag:0,encoded_in_bitflags"`
	Group bool   `tl:"flag:1,encoded_in_bitflags"`
	Title string `tl:"flag:2"`
}

func (*MessagesHistoryImportParsed) CRC() uint32 {
	return 0x5e0fb7b9
}

func (*MessagesHistoryImportParsed) FlagIndex() int {
	return 0
}

// Inactive chat list
type MessagesInactiveChats struct {
	Dates []int32
	Chats []Chat
	Users []User
}

func (*MessagesInactiveChats) CRC() uint32 {
	return 0xa927fec5
}

// Contains info about successfully or unsuccessfully invited » users.
type MessagesInvitedUsers struct {
	Updates         Updates
	MissingInvitees []*MissingInvitee
}

func (*MessagesInvitedUsers) CRC() uint32 {
	return 0x7f5defa6
}

// Message edit data for media
type MessagesMessageEditData struct {
	Caption bool `tl:"flag:0,encoded_in_bitflags"`
}

func (*MessagesMessageEditData) CRC() uint32 {
	return 0x26b5dde6
}

func (*MessagesMessageEditData) FlagIndex() int {
	return 0
}

// List of peers that reacted to a specific message
type MessagesMessageReactionsList struct {
	Count      int32
	Reactions  []*MessagePeerReaction
	Chats      []Chat
	Users      []User
	NextOffset string `tl:"flag:0"`
}

func (*MessagesMessageReactionsList) CRC() uint32 {
	return 0x31bd492d
}

func (*MessagesMessageReactionsList) FlagIndex() int {
	return 0
}

// View, forward counter + info about replies
type MessagesMessageViews struct {
	Views []*MessageViews
	Chats []Chat
	Users []User
}

func (*MessagesMessageViews) CRC() uint32 {
	return 0xb6c4f543
}

// The list of stickersets owned by the current account ».
type MessagesMyStickers struct {
	Count int32
	Sets  []StickerSetCovered
}

func (*MessagesMyStickers) CRC() uint32 {
	return 0xfaff629d
}

// Dialog info of multiple peers
type MessagesPeerDialogs struct {
	Dialogs  []Dialog
	Messages []Message
	Chats    []Chat
	Users    []User
	State    *UpdatesState
}

func (*MessagesPeerDialogs) CRC() uint32 {
	return 0x3371c354
}

// Peer settings
type MessagesPeerSettings struct {
	Settings *PeerSettings
	Chats    []Chat
	Users    []User
}

func (*MessagesPeerSettings) CRC() uint32 {
	return 0x6880b94d
}

// Represents a prepared inline message received via a bot's mini app, that can be sent to some chats »
type MessagesPreparedInlineMessage struct {
	QueryID   int64
	Result    BotInlineResult
	PeerTypes []InlineQueryPeerType
	CacheTime int32
	Users     []User
}

func (*MessagesPreparedInlineMessage) CRC() uint32 {
	return 0xff57708d
}

// Indicates how many results would be found by a messages.search call with the same parameters
type MessagesSearchCounter struct {
	Inexact bool `tl:"flag:1,encoded_in_bitflags"`
	Filter  MessagesFilter
	Count   int32
}

func (*MessagesSearchCounter) CRC() uint32 {
	return 0xe844ebff
}

func (*MessagesSearchCounter) FlagIndex() int {
	return 0
}

// Information about found messages sent on a specific day
type MessagesSearchResultsCalendar struct {
	Inexact        bool `tl:"flag:0,encoded_in_bitflags"`
	Count          int32
	MinDate        int32
	MinMsgID       int32
	OffsetIDOffset int32 `tl:"flag:1"`
	Periods        []*SearchResultsCalendarPeriod
	Messages       []Message
	Chats          []Chat
	Users          []User
}

func (*MessagesSearchResultsCalendar) CRC() uint32 {
	return 0x147ee23c
}

func (*MessagesSearchResultsCalendar) FlagIndex() int {
	return 0
}

// Information about sparse positions of messages
type MessagesSearchResultsPositions struct {
	Count     int32
	Positions []*SearchResultPosition
}

func (*MessagesSearchResultsPositions) CRC() uint32 {
	return 0x53b22baf
}

// Transcribed text from a voice message »
type MessagesTranscribedAudio struct {
	Pending               bool `tl:"flag:0,encoded_in_bitflags"`
	TranscriptionID       int64
	Text                  string
	TrialRemainsNum       int32 `tl:"flag:1"`
	TrialRemainsUntilDate int32 `tl:"flag:1"`
}

func (*MessagesTranscribedAudio) CRC() uint32 {
	return 0xcfb9d957
}

func (*MessagesTranscribedAudio) FlagIndex() int {
	return 0
}

// Translated text with entities
type MessagesTranslateResult struct {
	Result []*TextWithEntities
}

func (*MessagesTranslateResult) CRC() uint32 {
	return 0x33db32f8
}

// How users voted in a poll
type MessagesVotesList struct {
	Count      int32
	Votes      []MessagePeerVote
	Chats      []Chat
	Users      []User
	NextOffset string `tl:"flag:0"`
}

func (*MessagesVotesList) CRC() uint32 {
	return 0x4899484e
}

func (*MessagesVotesList) FlagIndex() int {
	return 0
}

// Represents an Instant View webpage.
type MessagesWebPage struct {
	Webpage WebPage
	Chats   []Chat
	Users   []User
}

func (*MessagesWebPage) CRC() uint32 {
	return 0xfd5e12bd
}

// Represents a webpage preview.
type MessagesWebPagePreview struct {
	Media MessageMedia
	Chats []Chat
	Users []User
}

func (*MessagesWebPagePreview) CRC() uint32 {
	return 0x8c9a88ac
}

type MessagesWebViewResult struct {
	Result BotInlineResult
	Users  []User
}

func (*MessagesWebViewResult) CRC() uint32 {
	return 0xaadf159b
}

// Info about why a specific user could not be invited ».
type MissingInvitee struct {
	PremiumWouldAllowInvite bool `tl:"flag:0,encoded_in_bitflags"`
	PremiumRequiredForPm    bool `tl:"flag:1,encoded_in_bitflags"`
	UserID                  int64
}

func (*MissingInvitee) CRC() uint32 {
	return 0x628c9224
}

func (*MissingInvitee) FlagIndex() int {
	return 0
}

// Contains information about a single boost slot ».
type MyBoost struct {
	Slot              int32
	Peer              Peer `tl:"flag:0"`
	Date              int32
	Expires           int32
	CooldownUntilDate int32 `tl:"flag:1"`
}

func (*MyBoost) CRC() uint32 {
	return 0xc448415c
}

func (*MyBoost) FlagIndex() int {
	return 0
}

// Nearest data center, according to geo-ip.
type NearestDc struct {
	Country   string
	ThisDc    int32
	NearestDc int32
}

func (*NearestDc) CRC() uint32 {
	return 0x8e1a1775
}

// Exact read date of a private message we sent to another user.
type OutboxReadDate struct {
	Date int32
}

func (*OutboxReadDate) CRC() uint32 {
	return 0x3bb842ac
}

// Instant view page
type Page struct {
	Part      bool `tl:"flag:0,encoded_in_bitflags"`
	Rtl       bool `tl:"flag:1,encoded_in_bitflags"`
	V2        bool `tl:"flag:2,encoded_in_bitflags"`
	URL       string
	Blocks    []PageBlock
	Photos    []Photo
	Documents []Document
	Views     int32 `tl:"flag:3"`
}

func (*Page) CRC() uint32 {
	return 0x98657f0d
}

func (*Page) FlagIndex() int {
	return 0
}

// Page caption
type PageCaption struct {
	Text   RichText
	Credit RichText
}

func (*PageCaption) CRC() uint32 {
	return 0x6f747657
}

// Related article
type PageRelatedArticle struct {
	URL           string
	WebpageID     int64
	Title         string `tl:"flag:0"`
	Description   string `tl:"flag:1"`
	PhotoID       int64  `tl:"flag:2"`
	Author        string `tl:"flag:3"`
	PublishedDate int32  `tl:"flag:4"`
}

func (*PageRelatedArticle) CRC() uint32 {
	return 0xb390dc08
}

func (*PageRelatedArticle) FlagIndex() int {
	return 0
}

// Table cell
type PageTableCell struct {
	Header       bool     `tl:"flag:0,encoded_in_bitflags"`
	AlignCenter  bool     `tl:"flag:3,encoded_in_bitflags"`
	AlignRight   bool     `tl:"flag:4,encoded_in_bitflags"`
	ValignMiddle bool     `tl:"flag:5,encoded_in_bitflags"`
	ValignBottom bool     `tl:"flag:6,encoded_in_bitflags"`
	Text         RichText `tl:"flag:7"`
	Colspan      int32    `tl:"flag:1"`
	Rowspan      int32    `tl:"flag:2"`
}

func (*PageTableCell) CRC() uint32 {
	return 0x34566b6a
}

func (*PageTableCell) FlagIndex() int {
	return 0
}

// Table row
type PageTableRow struct {
	Cells []*PageTableCell
}

func (*PageTableRow) CRC() uint32 {
	return 0xe0c0c5e5
}

// Payment identifier
type PaymentCharge struct {
	ID               string
	ProviderChargeID string
}

func (*PaymentCharge) CRC() uint32 {
	return 0xea02c27e
}

// Represents an additional payment method
type PaymentFormMethod struct {
	URL   string
	Title string
}

func (*PaymentFormMethod) CRC() uint32 {
	return 0x88f8f21b
}

// Order info provided by the user
type PaymentRequestedInfo struct {
	Name            string       `tl:"flag:0"`
	Phone           string       `tl:"flag:1"`
	Email           string       `tl:"flag:2"`
	ShippingAddress *PostAddress `tl:"flag:3"`
}

func (*PaymentRequestedInfo) CRC() uint32 {
	return 0x909c3f94
}

func (*PaymentRequestedInfo) FlagIndex() int {
	return 0
}

// Saved credit card
type PaymentSavedCredentialsCard struct {
	ID    string
	Title string
}

func (*PaymentSavedCredentialsCard) CRC() uint32 {
	return 0xcdc27a1f
}

// Credit card info, provided by the card's bank(s)
type PaymentsBankCardData struct {
	Title    string
	OpenUrls []*BankCardOpenURL
}

func (*PaymentsBankCardData) CRC() uint32 {
	return 0x3e24e573
}

// Contains info about a Telegram Premium giftcode link.
type PaymentsCheckedGiftCode struct {
	ViaGiveaway   bool  `tl:"flag:2,encoded_in_bitflags"`
	FromID        Peer  `tl:"flag:4"`
	GiveawayMsgID int32 `tl:"flag:3"`
	ToID          int64 `tl:"flag:0"`
	Date          int32
	Months        int32
	UsedDate      int32 `tl:"flag:1"`
	Chats         []Chat
	Users         []User
}

func (*PaymentsCheckedGiftCode) CRC() uint32 {
	return 0x284a1096
}

func (*PaymentsCheckedGiftCode) FlagIndex() int {
	return 0
}

// Active affiliations
type PaymentsConnectedStarRefBots struct {
	Count         int32
	ConnectedBots []*ConnectedBotStarRef
	Users         []User
}

func (*PaymentsConnectedStarRefBots) CRC() uint32 {
	return 0x98d5ea1d
}

// Exported invoice deep link
type PaymentsExportedInvoice struct {
	URL string
}

func (*PaymentsExportedInvoice) CRC() uint32 {
	return 0xaed0cbd9
}

// List of gifts currently on resale ».
type PaymentsResaleStarGifts struct {
	Count          int32
	Gifts          []StarGift
	NextOffset     string              `tl:"flag:0"`
	Attributes     []StarGiftAttribute `tl:"flag:1"`
	AttributesHash int64               `tl:"flag:1"`
	Chats          []Chat
	Counters       []*StarGiftAttributeCounter `tl:"flag:2"`
	Users          []User
}

func (*PaymentsResaleStarGifts) CRC() uint32 {
	return 0x947a12df
}

func (*PaymentsResaleStarGifts) FlagIndex() int {
	return 0
}

// Saved server-side order information
type PaymentsSavedInfo struct {
	HasSavedCredentials bool                  `tl:"flag:1,encoded_in_bitflags"`
	SavedInfo           *PaymentRequestedInfo `tl:"flag:0"`
}

func (*PaymentsSavedInfo) CRC() uint32 {
	return 0xfb8fe43c
}

func (*PaymentsSavedInfo) FlagIndex() int {
	return 0
}

// Represents a list of gifts.
type PaymentsSavedStarGifts struct {
	Count                    int32
	ChatNotificationsEnabled bool `tl:"flag:1"`
	Gifts                    []*SavedStarGift
	NextOffset               string `tl:"flag:0"`
	Chats                    []Chat
	Users                    []User
}

func (*PaymentsSavedStarGifts) CRC() uint32 {
	return 0x95f389b1
}

func (*PaymentsSavedStarGifts) FlagIndex() int {
	return 0
}

// A preview of the possible attributes (chosen randomly) a gift » can receive after upgrading it to a collectible gift », see here » for more info.
type PaymentsStarGiftUpgradePreview struct {
	SampleAttributes []StarGiftAttribute
}

func (*PaymentsStarGiftUpgradePreview) CRC() uint32 {
	return 0x167bd90b
}

// A URL that can be used to import the exported NFT on Fragment.
type PaymentsStarGiftWithdrawalURL struct {
	URL string
}

func (*PaymentsStarGiftWithdrawalURL) CRC() uint32 {
	return 0x84aa3a9c
}

// Contains a URL leading to a page where the user will be able to place ads for the channel/bot, paying using Telegram Stars.
type PaymentsStarsRevenueAdsAccountURL struct {
	URL string
}

func (*PaymentsStarsRevenueAdsAccountURL) CRC() uint32 {
	return 0x394e7f21
}

// Star revenue statistics, see here » for more info.
type PaymentsStarsRevenueStats struct {
	TopHoursGraph StatsGraph `tl:"flag:0"`
	RevenueGraph  StatsGraph
	Status        *StarsRevenueStatus
	UsdRate       float64
}

func (*PaymentsStarsRevenueStats) CRC() uint32 {
	return 0x6c207376
}

func (*PaymentsStarsRevenueStats) FlagIndex() int {
	return 0
}

// Contains the URL to use to withdraw Telegram Star revenue.
type PaymentsStarsRevenueWithdrawalURL struct {
	URL string
}

func (*PaymentsStarsRevenueWithdrawalURL) CRC() uint32 {
	return 0x1dab80b7
}

// Info about the current Telegram Star subscriptions, balance and transaction history ».
type PaymentsStarsStatus struct {
	Balance                     StarsAmount
	Subscriptions               []*StarsSubscription `tl:"flag:1"`
	SubscriptionsNextOffset     string               `tl:"flag:2"`
	SubscriptionsMissingBalance int64                `tl:"flag:4"`
	History                     []*StarsTransaction  `tl:"flag:3"`
	NextOffset                  string               `tl:"flag:0"`
	Chats                       []Chat
	Users                       []User
}

func (*PaymentsStarsStatus) CRC() uint32 {
	return 0x6c9ce8ed
}

func (*PaymentsStarsStatus) FlagIndex() int {
	return 0
}

// A list of suggested mini apps with available affiliate programs
type PaymentsSuggestedStarRefBots struct {
	Count         int32
	SuggestedBots []*StarRefProgram
	Users         []User
	NextOffset    string `tl:"flag:0"`
}

func (*PaymentsSuggestedStarRefBots) CRC() uint32 {
	return 0xb4d5d859
}

func (*PaymentsSuggestedStarRefBots) FlagIndex() int {
	return 0
}

// Represents a collectible gift ».
type PaymentsUniqueStarGift struct {
	Gift  StarGift
	Chats []Chat
	Users []User
}

func (*PaymentsUniqueStarGift) CRC() uint32 {
	return 0x416c56e8
}

// Information about the value of a collectible gift ».
type PaymentsUniqueStarGiftValueInfo struct {
	LastSaleOnFragment  bool `tl:"flag:1,encoded_in_bitflags"`
	ValueIsAverage      bool `tl:"flag:6,encoded_in_bitflags"`
	Currency            string
	Value               int64
	InitialSaleDate     int32
	InitialSaleStars    int64
	InitialSalePrice    int64
	LastSaleDate        int32  `tl:"flag:0"`
	LastSalePrice       int64  `tl:"flag:0"`
	FloorPrice          int64  `tl:"flag:2"`
	AveragePrice        int64  `tl:"flag:3"`
	ListedCount         int32  `tl:"flag:4"`
	FragmentListedCount int32  `tl:"flag:5"`
	FragmentListedURL   string `tl:"flag:5"`
}

func (*PaymentsUniqueStarGiftValueInfo) CRC() uint32 {
	return 0x512fe446
}

func (*PaymentsUniqueStarGiftValueInfo) FlagIndex() int {
	return 0
}

// Validated user-provided info
type PaymentsValidatedRequestedInfo struct {
	ID              string            `tl:"flag:0"`
	ShippingOptions []*ShippingOption `tl:"flag:1"`
}

func (*PaymentsValidatedRequestedInfo) CRC() uint32 {
	return 0xd1451883
}

func (*PaymentsValidatedRequestedInfo) FlagIndex() int {
	return 0
}

// Information about a blocked peer
type PeerBlocked struct {
	PeerID Peer
	Date   int32
}

func (*PeerBlocked) CRC() uint32 {
	return 0xe8fd8014
}

// Notification settings.
type PeerNotifySettings struct {
	ShowPreviews        bool              `tl:"flag:0"`
	Silent              bool              `tl:"flag:1"`
	MuteUntil           int32             `tl:"flag:2"`
	IosSound            NotificationSound `tl:"flag:3"`
	AndroidSound        NotificationSound `tl:"flag:4"`
	OtherSound          NotificationSound `tl:"flag:5"`
	StoriesMuted        bool              `tl:"flag:6"`
	StoriesHideSender   bool              `tl:"flag:7"`
	StoriesIosSound     NotificationSound `tl:"flag:8"`
	StoriesAndroidSound NotificationSound `tl:"flag:9"`
	StoriesOtherSound   NotificationSound `tl:"flag:10"`
}

func (*PeerNotifySettings) CRC() uint32 {
	return 0x99622c0c
}

func (*PeerNotifySettings) FlagIndex() int {
	return 0
}

// List of actions that are possible when interacting with this user, to be shown as suggested actions in the chat action bar », see here » for more info.
type PeerSettings struct {
	ReportSpam             bool   `tl:"flag:0,encoded_in_bitflags"`
	AddContact             bool   `tl:"flag:1,encoded_in_bitflags"`
	BlockContact           bool   `tl:"flag:2,encoded_in_bitflags"`
	ShareContact           bool   `tl:"flag:3,encoded_in_bitflags"`
	NeedContactsException  bool   `tl:"flag:4,encoded_in_bitflags"`
	ReportGeo              bool   `tl:"flag:5,encoded_in_bitflags"`
	Autoarchived           bool   `tl:"flag:7,encoded_in_bitflags"`
	InviteMembers          bool   `tl:"flag:8,encoded_in_bitflags"`
	RequestChatBroadcast   bool   `tl:"flag:10,encoded_in_bitflags"`
	BusinessBotPaused      bool   `tl:"flag:11,encoded_in_bitflags"`
	BusinessBotCanReply    bool   `tl:"flag:12,encoded_in_bitflags"`
	GeoDistance            int32  `tl:"flag:6"`
	RequestChatTitle       string `tl:"flag:9"`
	RequestChatDate        int32  `tl:"flag:9"`
	BusinessBotID          int64  `tl:"flag:13"`
	BusinessBotManageURL   string `tl:"flag:13"`
	ChargePaidMessageStars int64  `tl:"flag:14"`
	RegistrationMonth      string `tl:"flag:15"`
	PhoneCountry           string `tl:"flag:16"`
	NameChangeDate         int32  `tl:"flag:17"`
	PhotoChangeDate        int32  `tl:"flag:18"`
}

func (*PeerSettings) CRC() uint32 {
	return 0xf47741f7
}

func (*PeerSettings) FlagIndex() int {
	return 0
}

// Stories associated to a peer
type PeerStories struct {
	Peer      Peer
	MaxReadID int32 `tl:"flag:0"`
	Stories   []StoryItem
}

func (*PeerStories) CRC() uint32 {
	return 0x9a35e999
}

func (*PeerStories) FlagIndex() int {
	return 0
}

// Represents a custom pending suggestion ».
type PendingSuggestion struct {
	Suggestion  string
	Title       *TextWithEntities
	Description *TextWithEntities
	URL         string
}

func (*PendingSuggestion) CRC() uint32 {
	return 0xe7e82e12
}

// An invite to a group call or livestream
type PhoneExportedGroupCallInvite struct {
	Link string
}

func (*PhoneExportedGroupCallInvite) CRC() uint32 {
	return 0x204bd158
}

// Contains info about a group call, and partial info about its participants.
type PhoneGroupCall struct {
	Call                   GroupCall
	Participants           []*GroupCallParticipant
	ParticipantsNextOffset string
	Chats                  []Chat
	Users                  []User
}

func (*PhoneGroupCall) CRC() uint32 {
	return 0x9e727aad
}

// Info about RTMP streams in a group call or livestream
type PhoneGroupCallStreamChannels struct {
	Channels []*GroupCallStreamChannel
}

func (*PhoneGroupCallStreamChannels) CRC() uint32 {
	return 0xd0e482b2
}

// RTMP URL and stream key to be used in streaming software
type PhoneGroupCallStreamRtmpURL struct {
	URL string
	Key string
}

func (*PhoneGroupCallStreamRtmpURL) CRC() uint32 {
	return 0x2dbf3432
}

// Info about the participants of a group call or livestream
type PhoneGroupParticipants struct {
	Count        int32
	Participants []*GroupCallParticipant
	NextOffset   string
	Chats        []Chat
	Users        []User
	Version      int32
}

func (*PhoneGroupParticipants) CRC() uint32 {
	return 0xf47751b6
}

// A list of peers that can be used to join a group call, presenting yourself as a specific user/channel.
type PhoneJoinAsPeers struct {
	Peers []Peer
	Chats []Chat
	Users []User
}

func (*PhoneJoinAsPeers) CRC() uint32 {
	return 0xafe5623f
}

// A VoIP phone call
type PhonePhoneCall struct {
	PhoneCall PhoneCall
	Users     []User
}

func (*PhonePhoneCall) CRC() uint32 {
	return 0xec82e140
}

// Protocol info for libtgvoip
type PhoneCallProtocol struct {
	UdpP2P          bool `tl:"flag:0,encoded_in_bitflags"`
	UdpReflector    bool `tl:"flag:1,encoded_in_bitflags"`
	MinLayer        int32
	MaxLayer        int32
	LibraryVersions []string
}

func (*PhoneCallProtocol) CRC() uint32 {
	return 0xfc878fc8
}

func (*PhoneCallProtocol) FlagIndex() int {
	return 0
}

// Photo with auxiliary data.
type PhotosPhoto struct {
	Photo Photo
	Users []User
}

func (*PhotosPhoto) CRC() uint32 {
	return 0x20212ca8
}

// Poll
type Poll struct {
	ID             int64
	Closed         bool `tl:"flag:0,encoded_in_bitflags"`
	PublicVoters   bool `tl:"flag:1,encoded_in_bitflags"`
	MultipleChoice bool `tl:"flag:2,encoded_in_bitflags"`
	Quiz           bool `tl:"flag:3,encoded_in_bitflags"`
	Question       *TextWithEntities
	Answers        []*PollAnswer
	ClosePeriod    int32 `tl:"flag:4"`
	CloseDate      int32 `tl:"flag:5"`
}

func (*Poll) CRC() uint32 {
	return 0x58747131
}

func (*Poll) FlagIndex() int {
	return 1
}

// A possible answer of a poll
type PollAnswer struct {
	Text   *TextWithEntities
	Option []byte
}

func (*PollAnswer) CRC() uint32 {
	return 0xff16e2ca
}

// A poll answer, and how users voted on it
type PollAnswerVoters struct {
	Chosen  bool `tl:"flag:0,encoded_in_bitflags"`
	Correct bool `tl:"flag:1,encoded_in_bitflags"`
	Option  []byte
	Voters  int32
}

func (*PollAnswerVoters) CRC() uint32 {
	return 0x3b6ddad2
}

func (*PollAnswerVoters) FlagIndex() int {
	return 0
}

// Results of poll
type PollResults struct {
	Min              bool                `tl:"flag:0,encoded_in_bitflags"`
	Results          []*PollAnswerVoters `tl:"flag:1"`
	TotalVoters      int32               `tl:"flag:2"`
	RecentVoters     []Peer              `tl:"flag:3"`
	Solution         string              `tl:"flag:4"`
	SolutionEntities []MessageEntity     `tl:"flag:4"`
}

func (*PollResults) CRC() uint32 {
	return 0x7adf2420
}

func (*PollResults) FlagIndex() int {
	return 0
}

// Popular contact
type PopularContact struct {
	ClientID  int64
	Importers int32
}

func (*PopularContact) CRC() uint32 {
	return 0x5ce14175
}

// Shipping address
type PostAddress struct {
	StreetLine1 string
	StreetLine2 string
	City        string
	State       string
	CountryIso2 string
	PostCode    string
}

func (*PostAddress) CRC() uint32 {
	return 0x1e8caaeb
}

// List of boosts that were applied to a peer by multiple users.
type PremiumBoostsList struct {
	Count      int32
	Boosts     []*Boost
	NextOffset string `tl:"flag:0"`
	Users      []User
}

func (*PremiumBoostsList) CRC() uint32 {
	return 0x86f8613c
}

func (*PremiumBoostsList) FlagIndex() int {
	return 0
}

// Contains info about the current boost status of a peer.
type PremiumBoostsStatus struct {
	MyBoost            bool `tl:"flag:2,encoded_in_bitflags"`
	Level              int32
	CurrentLevelBoosts int32
	Boosts             int32
	GiftBoosts         int32              `tl:"flag:4"`
	NextLevelBoosts    int32              `tl:"flag:0"`
	PremiumAudience    *StatsPercentValue `tl:"flag:1"`
	BoostURL           string
	PrepaidGiveaways   []PrepaidGiveaway `tl:"flag:3"`
	MyBoostSlots       []int32           `tl:"flag:2"`
}

func (*PremiumBoostsStatus) CRC() uint32 {
	return 0x4959427a
}

func (*PremiumBoostsStatus) FlagIndex() int {
	return 0
}

// A list of peers we are currently boosting, and how many boost slots we have left.
type PremiumMyBoosts struct {
	MyBoosts []*MyBoost
	Chats    []Chat
	Users    []User
}

func (*PremiumMyBoosts) CRC() uint32 {
	return 0x9ae228e2
}

// Contains info about a giveaway/gift option.
type PremiumGiftCodeOption struct {
	Users         int32
	Months        int32
	StoreProduct  string `tl:"flag:0"`
	StoreQuantity int32  `tl:"flag:1"`
	Currency      string
	Amount        int64
}

func (*PremiumGiftCodeOption) CRC() uint32 {
	return 0x257e962b
}

func (*PremiumGiftCodeOption) FlagIndex() int {
	return 0
}

// Telegram Premium gift option
type PremiumGiftOption struct {
	Months       int32
	Currency     string
	Amount       int64
	BotURL       string `tl:"flag:1"`
	StoreProduct string `tl:"flag:0"`
}

func (*PremiumGiftOption) CRC() uint32 {
	return 0x79c059f7
}

func (*PremiumGiftOption) FlagIndex() int {
	return 0
}

// Describes a Telegram Premium subscription option
type PremiumSubscriptionOption struct {
	Current            bool   `tl:"flag:1,encoded_in_bitflags"`
	CanPurchaseUpgrade bool   `tl:"flag:2,encoded_in_bitflags"`
	Transaction        string `tl:"flag:3"`
	Months             int32
	Currency           string
	Amount             int64
	BotURL             string
	StoreProduct       string `tl:"flag:0"`
}

func (*PremiumSubscriptionOption) CRC() uint32 {
	return 0x5f2d1df2
}

func (*PremiumSubscriptionOption) FlagIndex() int {
	return 0
}

// A quick reply shortcut.
type QuickReply struct {
	ShortcutID int32
	Shortcut   string
	TopMessage int32
	Count      int32
}

func (*QuickReply) CRC() uint32 {
	return 0x697102b
}

// Reactions
type ReactionCount struct {
	ChosenOrder int32 `tl:"flag:0"`
	Reaction    Reaction
	Count       int32
}

func (*ReactionCount) CRC() uint32 {
	return 0xa3d1cb80
}

func (*ReactionCount) FlagIndex() int {
	return 0
}

// Reaction notification settings, see here » for more info.
type ReactionsNotifySettings struct {
	MessagesNotifyFrom ReactionNotificationsFrom `tl:"flag:0"`
	StoriesNotifyFrom  ReactionNotificationsFrom `tl:"flag:1"`
	Sound              NotificationSound
	ShowPreviews       bool
}

func (*ReactionsNotifySettings) CRC() uint32 {
	return 0x56e34970
}

func (*ReactionsNotifySettings) FlagIndex() int {
	return 0
}

// Contains info about when a certain participant has read a message
type ReadParticipantDate struct {
	UserID int64
	Date   int32
}

func (*ReadParticipantDate) CRC() uint32 {
	return 0x4a4ff172
}

// Message ID, for which PUSH-notifications were cancelled.
type ReceivedNotifyMessage struct {
	ID    int32
	Flags int32
}

func (*ReceivedNotifyMessage) CRC() uint32 {
	return 0xa384b779
}

// Restriction reason.
type RestrictionReason struct {
	Platform string
	Reason   string
	Text     string
}

func (*RestrictionReason) CRC() uint32 {
	return 0xd072acb4
}

// Saved contact
type SavedPhoneContact struct {
	Phone     string
	FirstName string
	LastName  string
	Date      int32
}

func (*SavedPhoneContact) CRC() uint32 {
	return 0x1142bd56
}

// Info about a saved message reaction tag ».
type SavedReactionTag struct {
	Reaction Reaction
	Title    string `tl:"flag:0"`
	Count    int32
}

func (*SavedReactionTag) CRC() uint32 {
	return 0xcb6ff828
}

func (*SavedReactionTag) FlagIndex() int {
	return 0
}

// Represents a gift owned by a peer.
type SavedStarGift struct {
	NameHidden               bool `tl:"flag:0,encoded_in_bitflags"`
	Unsaved                  bool `tl:"flag:5,encoded_in_bitflags"`
	Refunded                 bool `tl:"flag:9,encoded_in_bitflags"`
	CanUpgrade               bool `tl:"flag:10,encoded_in_bitflags"`
	PinnedToTop              bool `tl:"flag:12,encoded_in_bitflags"`
	UpgradeSeparate          bool `tl:"flag:17,encoded_in_bitflags"`
	FromID                   Peer `tl:"flag:1"`
	Date                     int32
	Gift                     StarGift
	Message                  *TextWithEntities `tl:"flag:2"`
	MsgID                    int32             `tl:"flag:3"`
	SavedID                  int64             `tl:"flag:11"`
	ConvertStars             int64             `tl:"flag:4"`
	UpgradeStars             int64             `tl:"flag:6"`
	CanExportAt              int32             `tl:"flag:7"`
	TransferStars            int64             `tl:"flag:8"`
	CanTransferAt            int32             `tl:"flag:13"`
	CanResellAt              int32             `tl:"flag:14"`
	CollectionID             []int32           `tl:"flag:15"`
	PrepaidUpgradeHash       string            `tl:"flag:16"`
	DropOriginalDetailsStars int64             `tl:"flag:18"`
}

func (*SavedStarGift) CRC() uint32 {
	return 0x8983a452
}

func (*SavedStarGift) FlagIndex() int {
	return 0
}

// Indicates if the specified global post search » requires payment.
type SearchPostsFlood struct {
	QueryIsFree bool `tl:"flag:0,encoded_in_bitflags"`
	TotalDaily  int32
	Remains     int32
	WaitTill    int32 `tl:"flag:1"`
	StarsAmount int64
}

func (*SearchPostsFlood) CRC() uint32 {
	return 0x3e0b5b6a
}

func (*SearchPostsFlood) FlagIndex() int {
	return 0
}

// Information about a message in a specific position
type SearchResultPosition struct {
	MsgID  int32
	Date   int32
	Offset int32
}

func (*SearchResultPosition) CRC() uint32 {
	return 0x7f648b67
}

// Information about found messages sent on a specific day, used to split the `messages` in messages.searchResultsCalendar constructors by days.
type SearchResultsCalendarPeriod struct {
	Date     int32
	MinMsgID int32
	MaxMsgID int32
	Count    int32
}

func (*SearchResultsCalendarPeriod) CRC() uint32 {
	return 0xc9b0539f
}

// Encrypted credentials required to decrypt telegram passport data.
type SecureCredentialsEncrypted struct {
	Data   []byte
	Hash   []byte
	Secret []byte
}

func (*SecureCredentialsEncrypted) CRC() uint32 {
	return 0x33f0ea47
}

// Secure passport data, for more info see the passport docs »
type SecureData struct {
	Data     []byte
	DataHash []byte
	Secret   []byte
}

func (*SecureData) CRC() uint32 {
	return 0x8aeabec3
}

// Secure settings
type SecureSecretSettings struct {
	SecureAlgo     SecurePasswordKdfAlgo
	SecureSecret   []byte
	SecureSecretID int64
}

func (*SecureSecretSettings) CRC() uint32 {
	return 0x1527bcac
}

// Secure value
type SecureValue struct {
	Type        SecureValueType
	Data        *SecureData     `tl:"flag:0"`
	FrontSide   SecureFile      `tl:"flag:1"`
	ReverseSide SecureFile      `tl:"flag:2"`
	Selfie      SecureFile      `tl:"flag:3"`
	Translation []SecureFile    `tl:"flag:6"`
	Files       []SecureFile    `tl:"flag:4"`
	PlainData   SecurePlainData `tl:"flag:5"`
	Hash        []byte
}

func (*SecureValue) CRC() uint32 {
	return 0x187fa0ca
}

func (*SecureValue) FlagIndex() int {
	return 0
}

// Secure value hash
type SecureValueHash struct {
	Type SecureValueType
	Hash []byte
}

func (*SecureValueHash) CRC() uint32 {
	return 0xed1ecdb0
}

// Indicates a peer that can be used to send messages
type SendAsPeer struct {
	PremiumRequired bool `tl:"flag:0,encoded_in_bitflags"`
	Peer            Peer
}

func (*SendAsPeer) CRC() uint32 {
	return 0xb81c7034
}

func (*SendAsPeer) FlagIndex() int {
	return 0
}

// Shipping option
type ShippingOption struct {
	ID     string
	Title  string
	Prices []*LabeledPrice
}

func (*ShippingOption) CRC() uint32 {
	return 0xb6213cdf
}

// Info about an SMS job.
type SmsJob struct {
	JobID       string
	PhoneNumber string
	Text        string
}

func (*SmsJob) CRC() uint32 {
	return 0xe6a1eeb8
}

// SMS jobs eligibility
type SmsjobsEligibleToJoin struct {
	TermsURL       string
	MonthlySentSms int32
}

func (*SmsjobsEligibleToJoin) CRC() uint32 {
	return 0xdc8b44cf
}

// Status
type SmsjobsStatus struct {
	AllowInternational bool `tl:"flag:0,encoded_in_bitflags"`
	RecentSent         int32
	RecentSince        int32
	RecentRemains      int32
	TotalSent          int32
	TotalSince         int32
	LastGiftSlug       string `tl:"flag:1"`
	TermsURL           string
}

func (*SmsjobsStatus) CRC() uint32 {
	return 0x2aee9191
}

func (*SmsjobsStatus) FlagIndex() int {
	return 0
}

// A sponsored message.
type SponsoredMessage struct {
	Recommended        bool `tl:"flag:5,encoded_in_bitflags"`
	CanReport          bool `tl:"flag:12,encoded_in_bitflags"`
	RandomID           []byte
	URL                string
	Title              string
	Message            string
	Entities           []MessageEntity `tl:"flag:1"`
	Photo              Photo           `tl:"flag:6"`
	Media              MessageMedia    `tl:"flag:14"`
	Color              PeerColor       `tl:"flag:13"`
	ButtonText         string
	SponsorInfo        string `tl:"flag:7"`
	AdditionalInfo     string `tl:"flag:8"`
	MinDisplayDuration int32  `tl:"flag:15"`
	MaxDisplayDuration int32  `tl:"flag:15"`
}

func (*SponsoredMessage) CRC() uint32 {
	return 0x7dbf8673
}

func (*SponsoredMessage) FlagIndex() int {
	return 0
}

// A report option for a sponsored message ».
type SponsoredMessageReportOption struct {
	Text   string
	Option []byte
}

func (*SponsoredMessageReportOption) CRC() uint32 {
	return 0x430d3150
}

// A sponsored peer.
type SponsoredPeer struct {
	RandomID       []byte
	Peer           Peer
	SponsorInfo    string `tl:"flag:0"`
	AdditionalInfo string `tl:"flag:1"`
}

func (*SponsoredPeer) CRC() uint32 {
	return 0xc69708d3
}

func (*SponsoredPeer) FlagIndex() int {
	return 0
}

// Indicates the total number of gifts that have the specified attribute.
type StarGiftAttributeCounter struct {
	Attribute StarGiftAttributeID
	Count     int32
}

func (*StarGiftAttributeCounter) CRC() uint32 {
	return 0x2eb1b658
}

// Represents a star gift collection ».
type StarGiftCollection struct {
	CollectionID int32
	Title        string
	Icon         Document `tl:"flag:0"`
	GiftsCount   int32
	Hash         int64
}

func (*StarGiftCollection) CRC() uint32 {
	return 0x9d6b13b0
}

func (*StarGiftCollection) FlagIndex() int {
	return 0
}

type StarGiftUpgradePreview struct {
	SampleAttributes []StarGiftAttribute
	Prices           []*StarGiftUpgradePrice
	NextPrices       []*StarGiftUpgradePrice
}

func (*StarGiftUpgradePreview) CRC() uint32 {
	return 0x3de1dfed
}

type StarGiftUpgradePrice struct {
	Date         int32
	UpgradeStars int64
}

func (*StarGiftUpgradePrice) CRC() uint32 {
	return 0x99ea331d
}

// Indo about an affiliate program offered by a bot
type StarRefProgram struct {
	BotID               int64
	CommissionPermille  int32
	DurationMonths      int32       `tl:"flag:0"`
	EndDate             int32       `tl:"flag:1"`
	DailyRevenuePerUser StarsAmount `tl:"flag:2"`
}

func (*StarRefProgram) CRC() uint32 {
	return 0xdd0c66f2
}

func (*StarRefProgram) FlagIndex() int {
	return 0
}

// Telegram Stars gift option.
type StarsGiftOption struct {
	Extended     bool `tl:"flag:1,encoded_in_bitflags"`
	Stars        int64
	StoreProduct string `tl:"flag:0"`
	Currency     string
	Amount       int64
}

func (*StarsGiftOption) CRC() uint32 {
	return 0x5e0589f1
}

func (*StarsGiftOption) FlagIndex() int {
	return 0
}

// Contains info about a Telegram Star giveaway option.
type StarsGiveawayOption struct {
	Extended     bool `tl:"flag:0,encoded_in_bitflags"`
	Default      bool `tl:"flag:1,encoded_in_bitflags"`
	Stars        int64
	YearlyBoosts int32
	StoreProduct string `tl:"flag:2"`
	Currency     string
	Amount       int64
	Winners      []*StarsGiveawayWinnersOption
}

func (*StarsGiveawayOption) CRC() uint32 {
	return 0x94ce852a
}

func (*StarsGiveawayOption) FlagIndex() int {
	return 0
}

// Allowed options for the number of giveaway winners.
type StarsGiveawayWinnersOption struct {
	Default      bool `tl:"flag:0,encoded_in_bitflags"`
	Users        int32
	PerUserStars int64
}

func (*StarsGiveawayWinnersOption) CRC() uint32 {
	return 0x54236209
}

func (*StarsGiveawayWinnersOption) FlagIndex() int {
	return 0
}

// Represents the profile's star rating, see here » for more info.
type StarsRating struct {
	Level             int32
	CurrentLevelStars int64
	Stars             int64
	NextLevelStars    int64 `tl:"flag:0"`
}

func (*StarsRating) CRC() uint32 {
	return 0x1b0e4f07
}

func (*StarsRating) FlagIndex() int {
	return 0
}

// Describes Telegram Star revenue balances ».
type StarsRevenueStatus struct {
	WithdrawalEnabled bool `tl:"flag:0,encoded_in_bitflags"`
	CurrentBalance    StarsAmount
	AvailableBalance  StarsAmount
	OverallRevenue    StarsAmount
	NextWithdrawalAt  int32 `tl:"flag:1"`
}

func (*StarsRevenueStatus) CRC() uint32 {
	return 0xfebe5491
}

func (*StarsRevenueStatus) FlagIndex() int {
	return 0
}

// Represents a Telegram Star subscription ».
type StarsSubscription struct {
	Canceled       bool `tl:"flag:0,encoded_in_bitflags"`
	CanRefulfill   bool `tl:"flag:1,encoded_in_bitflags"`
	MissingBalance bool `tl:"flag:2,encoded_in_bitflags"`
	BotCanceled    bool `tl:"flag:7,encoded_in_bitflags"`
	ID             string
	Peer           Peer
	UntilDate      int32
	Pricing        *StarsSubscriptionPricing
	ChatInviteHash string      `tl:"flag:3"`
	Title          string      `tl:"flag:4"`
	Photo          WebDocument `tl:"flag:5"`
	InvoiceSlug    string      `tl:"flag:6"`
}

func (*StarsSubscription) CRC() uint32 {
	return 0x2e6eab1a
}

func (*StarsSubscription) FlagIndex() int {
	return 0
}

// Pricing of a Telegram Star subscription ».
type StarsSubscriptionPricing struct {
	Period int32
	Amount int64
}

func (*StarsSubscriptionPricing) CRC() uint32 {
	return 0x5416d58
}

// Telegram Stars topup option.
type StarsTopupOption struct {
	Extended     bool `tl:"flag:1,encoded_in_bitflags"`
	Stars        int64
	StoreProduct string `tl:"flag:0"`
	Currency     string
	Amount       int64
}

func (*StarsTopupOption) CRC() uint32 {
	return 0xbd915c0
}

func (*StarsTopupOption) FlagIndex() int {
	return 0
}

// Represents a Telegram Stars or TON transaction ».
type StarsTransaction struct {
	Refund                      bool `tl:"flag:3,encoded_in_bitflags"`
	Pending                     bool `tl:"flag:4,encoded_in_bitflags"`
	Failed                      bool `tl:"flag:6,encoded_in_bitflags"`
	Gift                        bool `tl:"flag:10,encoded_in_bitflags"`
	Reaction                    bool `tl:"flag:11,encoded_in_bitflags"`
	Subscription                bool `tl:"flag:12,encoded_in_bitflags"`
	Floodskip                   bool `tl:"flag:15,encoded_in_bitflags"`
	StargiftUpgrade             bool `tl:"flag:18,encoded_in_bitflags"`
	PaidMessage                 bool `tl:"flag:19,encoded_in_bitflags"`
	PremiumGift                 bool `tl:"flag:20,encoded_in_bitflags"`
	BusinessTransfer            bool `tl:"flag:21,encoded_in_bitflags"`
	StargiftResale              bool `tl:"flag:22,encoded_in_bitflags"`
	PostsSearch                 bool `tl:"flag:24,encoded_in_bitflags"`
	StargiftPrepaidUpgrade      bool `tl:"flag:25,encoded_in_bitflags"`
	StargiftDropOriginalDetails bool `tl:"flag:26,encoded_in_bitflags"`
	ID                          string
	Amount                      StarsAmount
	Date                        int32
	Peer                        StarsTransactionPeer
	Title                       string         `tl:"flag:0"`
	Description                 string         `tl:"flag:1"`
	Photo                       WebDocument    `tl:"flag:2"`
	TransactionDate             int32          `tl:"flag:5"`
	TransactionURL              string         `tl:"flag:5"`
	BotPayload                  []byte         `tl:"flag:7"`
	MsgID                       int32          `tl:"flag:8"`
	ExtendedMedia               []MessageMedia `tl:"flag:9"`
	SubscriptionPeriod          int32          `tl:"flag:12"`
	GiveawayPostID              int32          `tl:"flag:13"`
	Stargift                    StarGift       `tl:"flag:14"`
	FloodskipNumber             int32          `tl:"flag:15"`
	StarrefCommissionPermille   int32          `tl:"flag:16"`
	StarrefPeer                 Peer           `tl:"flag:17"`
	StarrefAmount               StarsAmount    `tl:"flag:17"`
	PaidMessages                int32          `tl:"flag:19"`
	PremiumGiftMonths           int32          `tl:"flag:20"`
	AdsProceedsFromDate         int32          `tl:"flag:23"`
	AdsProceedsToDate           int32          `tl:"flag:23"`
}

func (*StarsTransaction) CRC() uint32 {
	return 0x13659eb0
}

func (*StarsTransaction) FlagIndex() int {
	return 0
}

// Channel statistics.
type StatsBroadcastStats struct {
	Period                       *StatsDateRangeDays
	Followers                    *StatsAbsValueAndPrev
	ViewsPerPost                 *StatsAbsValueAndPrev
	SharesPerPost                *StatsAbsValueAndPrev
	ReactionsPerPost             *StatsAbsValueAndPrev
	ViewsPerStory                *StatsAbsValueAndPrev
	SharesPerStory               *StatsAbsValueAndPrev
	ReactionsPerStory            *StatsAbsValueAndPrev
	EnabledNotifications         *StatsPercentValue
	GrowthGraph                  StatsGraph
	FollowersGraph               StatsGraph
	MuteGraph                    StatsGraph
	TopHoursGraph                StatsGraph
	InteractionsGraph            StatsGraph
	IvInteractionsGraph          StatsGraph
	ViewsBySourceGraph           StatsGraph
	NewFollowersBySourceGraph    StatsGraph
	LanguagesGraph               StatsGraph
	ReactionsByEmotionGraph      StatsGraph
	StoryInteractionsGraph       StatsGraph
	StoryReactionsByEmotionGraph StatsGraph
	RecentPostsInteractions      []PostInteractionCounters
}

func (*StatsBroadcastStats) CRC() uint32 {
	return 0x396ca5fc
}

// Supergroup statistics
type StatsMegagroupStats struct {
	Period                  *StatsDateRangeDays
	Members                 *StatsAbsValueAndPrev
	Messages                *StatsAbsValueAndPrev
	Viewers                 *StatsAbsValueAndPrev
	Posters                 *StatsAbsValueAndPrev
	GrowthGraph             StatsGraph
	MembersGraph            StatsGraph
	NewMembersBySourceGraph StatsGraph
	LanguagesGraph          StatsGraph
	MessagesGraph           StatsGraph
	ActionsGraph            StatsGraph
	TopHoursGraph           StatsGraph
	WeekdaysGraph           StatsGraph
	TopPosters              []*StatsGroupTopPoster
	TopAdmins               []*StatsGroupTopAdmin
	TopInviters             []*StatsGroupTopInviter
	Users                   []User
}

func (*StatsMegagroupStats) CRC() uint32 {
	return 0xef7ff916
}

// Message statistics
type StatsMessageStats struct {
	ViewsGraph              StatsGraph
	ReactionsByEmotionGraph StatsGraph
}

func (*StatsMessageStats) CRC() uint32 {
	return 0x7fe91c14
}

// Contains info about the forwards of a story as a message to public chats and reposts by public channels.
type StatsPublicForwards struct {
	Count      int32
	Forwards   []PublicForward
	NextOffset string `tl:"flag:0"`
	Chats      []Chat
	Users      []User
}

func (*StatsPublicForwards) CRC() uint32 {
	return 0x93037e20
}

func (*StatsPublicForwards) FlagIndex() int {
	return 0
}

// Contains statistics about a story.
type StatsStoryStats struct {
	ViewsGraph              StatsGraph
	ReactionsByEmotionGraph StatsGraph
}

func (*StatsStoryStats) CRC() uint32 {
	return 0x50cd067c
}

// Statistics value couple; initial and final value for period of time currently in consideration
type StatsAbsValueAndPrev struct {
	Current  float64
	Previous float64
}

func (*StatsAbsValueAndPrev) CRC() uint32 {
	return 0xcb43acde
}

// Channel statistics date range
type StatsDateRangeDays struct {
	MinDate int32
	MaxDate int32
}

func (*StatsDateRangeDays) CRC() uint32 {
	return 0xb637edaf
}

// Information about an active admin in a supergroup
type StatsGroupTopAdmin struct {
	UserID  int64
	Deleted int32
	Kicked  int32
	Banned  int32
}

func (*StatsGroupTopAdmin) CRC() uint32 {
	return 0xd7584c87
}

// Information about an active supergroup inviter
type StatsGroupTopInviter struct {
	UserID      int64
	Invitations int32
}

func (*StatsGroupTopInviter) CRC() uint32 {
	return 0x535f779d
}

// Information about an active user in a supergroup
type StatsGroupTopPoster struct {
	UserID   int64
	Messages int32
	AvgChars int32
}

func (*StatsGroupTopPoster) CRC() uint32 {
	return 0x9d04af9b
}

/*
Channel statistics percentage.<br>
Compute the percentage simply by doing `part * total / 100`
*/
type StatsPercentValue struct {
	Part  float64
	Total float64
}

func (*StatsPercentValue) CRC() uint32 {
	return 0xcbce2fe0
}

// URL with chat statistics
type StatsURL struct {
	URL string
}

func (*StatsURL) CRC() uint32 {
	return 0x47a971e0
}

// Keywords for a certain sticker
type StickerKeyword struct {
	DocumentID int64
	Keyword    []string
}

func (*StickerKeyword) CRC() uint32 {
	return 0xfcfeb29c
}

/*
A stickerpack is a group of stickers associated to the same emoji.<br>
It is <strong>not</strong> a sticker pack the way it is usually intended, you may be looking for a StickerSet.
*/
type StickerPack struct {
	Emoticon  string
	Documents []int64
}

func (*StickerPack) CRC() uint32 {
	return 0x12b299d4
}

// Represents a stickerset (stickerpack)
type StickerSet struct {
	Archived           bool  `tl:"flag:1,encoded_in_bitflags"`
	Official           bool  `tl:"flag:2,encoded_in_bitflags"`
	Masks              bool  `tl:"flag:3,encoded_in_bitflags"`
	Emojis             bool  `tl:"flag:7,encoded_in_bitflags"`
	TextColor          bool  `tl:"flag:9,encoded_in_bitflags"`
	ChannelEmojiStatus bool  `tl:"flag:10,encoded_in_bitflags"`
	Creator            bool  `tl:"flag:11,encoded_in_bitflags"`
	InstalledDate      int32 `tl:"flag:0"`
	ID                 int64
	AccessHash         int64
	Title              string
	ShortName          string
	Thumbs             []PhotoSize `tl:"flag:4"`
	ThumbDcID          int32       `tl:"flag:4"`
	ThumbVersion       int32       `tl:"flag:4"`
	ThumbDocumentID    int64       `tl:"flag:8"`
	Count              int32
	Hash               int32
}

func (*StickerSet) CRC() uint32 {
	return 0x2dd14edc
}

func (*StickerSet) FlagIndex() int {
	return 0
}

// A suggested short name for a stickerpack
type StickersSuggestedShortName struct {
	ShortName string
}

func (*StickersSuggestedShortName) CRC() uint32 {
	return 0x85fea03f
}

// Contains the number of available active story slots (equal to the value of the <a href="/api/config#story-expiring-limit-default">`story_expiring_limit_*` client configuration parameter</a> minus the number of currently active stories).
type StoriesCanSendStoryCount struct {
	CountRemains int32
}

func (*StoriesCanSendStoryCount) CRC() uint32 {
	return 0xc387c04e
}

// Stories found using global story search ».
type StoriesFoundStories struct {
	Count      int32
	Stories    []*FoundStory
	NextOffset string `tl:"flag:0"`
	Chats      []Chat
	Users      []User
}

func (*StoriesFoundStories) CRC() uint32 {
	return 0xe2de7737
}

func (*StoriesFoundStories) FlagIndex() int {
	return 0
}

// Active story list of a specific peer.
type StoriesPeerStories struct {
	Stories *PeerStories
	Chats   []Chat
	Users   []User
}

func (*StoriesPeerStories) CRC() uint32 {
	return 0xcae68768
}

// List of stories
type StoriesStories struct {
	Count       int32
	Stories     []StoryItem
	PinnedToTop []int32 `tl:"flag:0"`
	Chats       []Chat
	Users       []User
}

func (*StoriesStories) CRC() uint32 {
	return 0x63c3dd0a
}

func (*StoriesStories) FlagIndex() int {
	return 0
}

// List of peers that reacted to or intercated with a specific story
type StoriesStoryReactionsList struct {
	Count      int32
	Reactions  []StoryReaction
	Chats      []Chat
	Users      []User
	NextOffset string `tl:"flag:0"`
}

func (*StoriesStoryReactionsList) CRC() uint32 {
	return 0xaa5f789c
}

func (*StoriesStoryReactionsList) FlagIndex() int {
	return 0
}

// Reaction and view counters for a list of stories
type StoriesStoryViews struct {
	Views []*StoryViews
	Users []User
}

func (*StoriesStoryViews) CRC() uint32 {
	return 0xde9eed1d
}

// Reaction and view counters for a story
type StoriesStoryViewsList struct {
	Count          int32
	ViewsCount     int32
	ForwardsCount  int32
	ReactionsCount int32
	Views          []StoryView
	Chats          []Chat
	Users          []User
	NextOffset     string `tl:"flag:0"`
}

func (*StoriesStoryViewsList) CRC() uint32 {
	return 0x59d78fc5
}

func (*StoriesStoryViewsList) FlagIndex() int {
	return 0
}

// Information about the current stealth mode session.
type StoriesStealthMode struct {
	ActiveUntilDate   int32 `tl:"flag:0"`
	CooldownUntilDate int32 `tl:"flag:1"`
}

func (*StoriesStealthMode) CRC() uint32 {
	return 0x712e27fd
}

func (*StoriesStealthMode) FlagIndex() int {
	return 0
}

// Represents a story album ».
type StoryAlbum struct {
	AlbumID   int32
	Title     string
	IconPhoto Photo    `tl:"flag:0"`
	IconVideo Document `tl:"flag:1"`
}

func (*StoryAlbum) CRC() uint32 {
	return 0x9325705a
}

func (*StoryAlbum) FlagIndex() int {
	return 0
}

// Contains info about the original poster of a reposted story.
type StoryFwdHeader struct {
	Modified bool   `tl:"flag:3,encoded_in_bitflags"`
	From     Peer   `tl:"flag:0"`
	FromName string `tl:"flag:1"`
	StoryID  int32  `tl:"flag:2"`
}

func (*StoryFwdHeader) CRC() uint32 {
	return 0xb826e150
}

func (*StoryFwdHeader) FlagIndex() int {
	return 0
}

// Aggregated view and reaction information of a story.
type StoryViews struct {
	HasViewers     bool `tl:"flag:1,encoded_in_bitflags"`
	ViewsCount     int32
	ForwardsCount  int32            `tl:"flag:2"`
	Reactions      []*ReactionCount `tl:"flag:3"`
	ReactionsCount int32            `tl:"flag:4"`
	RecentViewers  []int64          `tl:"flag:0"`
}

func (*StoryViews) CRC() uint32 {
	return 0x8d595cd6
}

func (*StoryViews) FlagIndex() int {
	return 0
}

// Contains info about a suggested post ».
type SuggestedPost struct {
	Accepted     bool        `tl:"flag:1,encoded_in_bitflags"`
	Rejected     bool        `tl:"flag:2,encoded_in_bitflags"`
	Price        StarsAmount `tl:"flag:3"`
	ScheduleDate int32       `tl:"flag:0"`
}

func (*SuggestedPost) CRC() uint32 {
	return 0xe8e37e5
}

func (*SuggestedPost) FlagIndex() int {
	return 0
}

// Styled text with message entities
type TextWithEntities struct {
	Text     string
	Entities []MessageEntity
}

func (*TextWithEntities) CRC() uint32 {
	return 0x751f3146
}

// Theme
type Theme struct {
	Creator       bool `tl:"flag:0,encoded_in_bitflags"`
	Default       bool `tl:"flag:1,encoded_in_bitflags"`
	ForChat       bool `tl:"flag:5,encoded_in_bitflags"`
	ID            int64
	AccessHash    int64
	Slug          string
	Title         string
	Document      Document         `tl:"flag:2"`
	Settings      []*ThemeSettings `tl:"flag:3"`
	Emoticon      string           `tl:"flag:6"`
	InstallsCount int32            `tl:"flag:4"`
}

func (*Theme) CRC() uint32 {
	return 0xa00e67d6
}

func (*Theme) FlagIndex() int {
	return 0
}

// Theme settings
type ThemeSettings struct {
	MessageColorsAnimated bool `tl:"flag:2,encoded_in_bitflags"`
	BaseTheme             BaseTheme
	AccentColor           int32
	OutboxAccentColor     int32     `tl:"flag:3"`
	MessageColors         []int32   `tl:"flag:0"`
	Wallpaper             WallPaper `tl:"flag:1"`
}

func (*ThemeSettings) CRC() uint32 {
	return 0xfa58b6d4
}

func (*ThemeSettings) FlagIndex() int {
	return 0
}

// Timezone information.
type Timezone struct {
	ID        string
	Name      string
	UtcOffset int32
}

func (*Timezone) CRC() uint32 {
	return 0xff9289f5
}

// A completed todo list » item.
type TodoCompletion struct {
	ID          int32
	CompletedBy int64
	Date        int32
}

func (*TodoCompletion) CRC() uint32 {
	return 0x4cc120b7
}

// An item of a todo list ».
type TodoItem struct {
	ID    int32
	Title *TextWithEntities
}

func (*TodoItem) CRC() uint32 {
	return 0xcba9a52f
}

// Represents a todo list ».
type TodoList struct {
	OthersCanAppend   bool `tl:"flag:0,encoded_in_bitflags"`
	OthersCanComplete bool `tl:"flag:1,encoded_in_bitflags"`
	Title             *TextWithEntities
	List              []*TodoItem
}

func (*TodoList) CRC() uint32 {
	return 0x49b92a26
}

func (*TodoList) FlagIndex() int {
	return 0
}

// Top peer
type TopPeer struct {
	Peer   Peer
	Rating float64
}

func (*TopPeer) CRC() uint32 {
	return 0xedcdc05b
}

// Top peer category
type TopPeerCategoryPeers struct {
	Category TopPeerCategory
	Count    int32
	Peers    []*TopPeer
}

func (*TopPeerCategoryPeers) CRC() uint32 {
	return 0xfb834291
}

// Updates state.
type UpdatesState struct {
	Pts         int32
	Qts         int32
	Date        int32
	Seq         int32
	UnreadCount int32
}

func (*UpdatesState) CRC() uint32 {
	return 0xa56c2a3e
}

// Represents a chunk of an HTTP webfile downloaded through telegram's secure MTProto servers
type UploadWebFile struct {
	Size     int32
	MimeType string
	FileType StorageFileType
	Mtime    int32
	Bytes    []byte
}

func (*UploadWebFile) CRC() uint32 {
	return 0x21e753bc
}

// Extended user info
type UserFull struct {
	Blocked                  bool `tl:"flag:0,encoded_in_bitflags"`
	PhoneCallsAvailable      bool `tl:"flag:4,encoded_in_bitflags"`
	PhoneCallsPrivate        bool `tl:"flag:5,encoded_in_bitflags"`
	CanPinMessage            bool `tl:"flag:7,encoded_in_bitflags"`
	HasScheduled             bool `tl:"flag:12,encoded_in_bitflags"`
	VideoCallsAvailable      bool `tl:"flag:13,encoded_in_bitflags"`
	VoiceMessagesForbidden   bool `tl:"flag:20,encoded_in_bitflags"`
	TranslationsDisabled     bool `tl:"flag:23,encoded_in_bitflags"`
	StoriesPinnedAvailable   bool `tl:"flag:26,encoded_in_bitflags"`
	BlockedMyStoriesFrom     bool `tl:"flag:27,encoded_in_bitflags"`
	WallpaperOverridden      bool `tl:"flag:28,encoded_in_bitflags"`
	ContactRequirePremium    bool `tl:"flag:29,encoded_in_bitflags"`
	ReadDatesPrivate         bool `tl:"flag:30,encoded_in_bitflags"`
	SponsoredEnabled         bool `tl:"flag2:7,encoded_in_bitflags"`
	CanViewRevenue           bool `tl:"flag2:9,encoded_in_bitflags"`
	BotCanManageEmojiStatus  bool `tl:"flag2:10,encoded_in_bitflags"`
	DisplayGiftsButton       bool `tl:"flag2:16,encoded_in_bitflags"`
	ID                       int64
	About                    string `tl:"flag:1"`
	Settings                 *PeerSettings
	PersonalPhoto            Photo `tl:"flag:21"`
	ProfilePhoto             Photo `tl:"flag:2"`
	FallbackPhoto            Photo `tl:"flag:22"`
	NotifySettings           *PeerNotifySettings
	BotInfo                  *BotInfo `tl:"flag:3"`
	PinnedMsgID              int32    `tl:"flag:6"`
	CommonChatsCount         int32
	FolderID                 int32                    `tl:"flag:11"`
	TtlPeriod                int32                    `tl:"flag:14"`
	Theme                    ChatTheme                `tl:"flag:15"`
	PrivateForwardName       string                   `tl:"flag:16"`
	BotGroupAdminRights      *ChatAdminRights         `tl:"flag:17"`
	BotBroadcastAdminRights  *ChatAdminRights         `tl:"flag:18"`
	Wallpaper                WallPaper                `tl:"flag:24"`
	Stories                  *PeerStories             `tl:"flag:25"`
	BusinessWorkHours        *BusinessWorkHours       `tl:"flag2:0"`
	BusinessLocation         *BusinessLocation        `tl:"flag2:1"`
	BusinessGreetingMessage  *BusinessGreetingMessage `tl:"flag2:2"`
	BusinessAwayMessage      *BusinessAwayMessage     `tl:"flag2:3"`
	BusinessIntro            *BusinessIntro           `tl:"flag2:4"`
	Birthday                 *Birthday                `tl:"flag2:5"`
	PersonalChannelID        int64                    `tl:"flag2:6"`
	PersonalChannelMessage   int32                    `tl:"flag2:6"`
	StargiftsCount           int32                    `tl:"flag2:8"`
	StarrefProgram           *StarRefProgram          `tl:"flag2:11"`
	BotVerification          *BotVerification         `tl:"flag2:12"`
	SendPaidMessagesStars    int64                    `tl:"flag2:14"`
	DisallowedStargifts      *DisallowedGiftsSettings `tl:"flag2:15"`
	StarsRating              *StarsRating             `tl:"flag2:17"`
	StarsMyPendingRating     *StarsRating             `tl:"flag2:18"`
	StarsMyPendingRatingDate int32                    `tl:"flag2:18"`
	MainTab                  ProfileTab               `tl:"flag2:20"`
	SavedMusic               Document                 `tl:"flag2:21"`
	Note                     *TextWithEntities        `tl:"flag2:22"`
}

func (*UserFull) CRC() uint32 {
	return 0xa02bc13e
}

func (*UserFull) FlagIndex() int {
	return 14
}

// Contains information about a username.
type Username struct {
	Editable bool `tl:"flag:0,encoded_in_bitflags"`
	Active   bool `tl:"flag:1,encoded_in_bitflags"`
	Username string
}

func (*Username) CRC() uint32 {
	return 0xb4073647
}

func (*Username) FlagIndex() int {
	return 0
}

// Full user information
type UsersUserFull struct {
	FullUser *UserFull
	Chats    []Chat
	Users    []User
}

func (*UsersUserFull) CRC() uint32 {
	return 0x3b6d152e
}

// Wallpaper rendering information.
type WallPaperSettings struct {
	Blur                  bool   `tl:"flag:1,encoded_in_bitflags"`
	Motion                bool   `tl:"flag:2,encoded_in_bitflags"`
	BackgroundColor       int32  `tl:"flag:0"`
	SecondBackgroundColor int32  `tl:"flag:4"`
	ThirdBackgroundColor  int32  `tl:"flag:5"`
	FourthBackgroundColor int32  `tl:"flag:6"`
	Intensity             int32  `tl:"flag:3"`
	Rotation              int32  `tl:"flag:4"`
	Emoticon              string `tl:"flag:7"`
}

func (*WallPaperSettings) CRC() uint32 {
	return 0x372efcd0
}

func (*WallPaperSettings) FlagIndex() int {
	return 0
}

// Represents a bot logged in using the Telegram login widget
type WebAuthorization struct {
	Hash        int64
	BotID       int64
	Domain      string
	Browser     string
	Platform    string
	DateCreated int32
	DateActive  int32
	Ip          string
	Region      string
}

func (*WebAuthorization) CRC() uint32 {
	return 0xa6f8f452
}

// Info about a sent inline webview message
type WebViewMessageSent struct {
	MsgID InputBotInlineMessageID `tl:"flag:0"`
}

func (*WebViewMessageSent) CRC() uint32 {
	return 0xc94511c
}

func (*WebViewMessageSent) FlagIndex() int {
	return 0
}

// Contains the webview URL with appropriate theme and user info parameters added
type WebViewResultURL struct {
	Fullsize   bool  `tl:"flag:1,encoded_in_bitflags"`
	Fullscreen bool  `tl:"flag:2,encoded_in_bitflags"`
	QueryID    int64 `tl:"flag:0"`
	URL        string
}

func (*WebViewResultURL) CRC() uint32 {
	return 0x4d22ff98
}

func (*WebViewResultURL) FlagIndex() int {
	return 0
}
