From b0c637bfffef706e5411716823b5f85a4e8726bb Mon Sep 17 00:00:00 2001 From: Mikhail Filimonov Date: Fri, 4 Apr 2025 16:58:42 +0400 Subject: [PATCH] macos related changes --- .../Sources/GroupCallContext.swift | 5 +- .../td/generate/auto/td/mtproto/mtproto_api.h | 1147 + .../td/td/generate/auto/td/telegram/e2e_api.h | 888 + .../td/generate/auto/td/telegram/secret_api.h | 2224 + .../td/td/generate/auto/td/telegram/td_api.h | 51394 ++++++++++++++++ .../generate/auto/td/telegram/td_api_json.h | 6418 ++ .../generate/auto/td/telegram/telegram_api.h | 51297 +++++++++++++++ .../td/tde2e/td/e2e/Blockchain.h | 38 +- .../SharedHeaders/td/tde2e/td/e2e/Call.h | 130 +- .../td/tde2e/td/e2e/EncryptedKey.h | 1 + .../td/tde2e/td/e2e/EncryptedStorage.h | 4 +- .../td/tde2e/td/e2e/MessageEncryption.h | 9 +- .../td/tde2e/td/e2e/TestBlockchain.h | 4 +- .../SharedHeaders/td/tde2e/td/e2e/e2e_api.h | 44 +- .../td/tde2e/td/e2e/e2e_errors.h | 66 +- .../SharedHeaders/td/tde2e/td/e2e/utils.h | 25 + .../td/tde2e/test/EncryptionTestVectors.h | 78 + .../td/tdutils/td/utils/simple_tests.h | 2 +- third-party/td/macos-cleanup.sh | 43 +- 19 files changed, 113688 insertions(+), 129 deletions(-) create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/mtproto/mtproto_api.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/e2e_api.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/secret_api.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/td_api.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/td_api_json.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/telegram_api.h create mode 100644 third-party/td/TdBinding/SharedHeaders/td/tde2e/test/EncryptionTestVectors.h diff --git a/submodules/TelegramVoip/Sources/GroupCallContext.swift b/submodules/TelegramVoip/Sources/GroupCallContext.swift index 57d3639e30..dc3bc51f68 100644 --- a/submodules/TelegramVoip/Sources/GroupCallContext.swift +++ b/submodules/TelegramVoip/Sources/GroupCallContext.swift @@ -755,11 +755,11 @@ public final class OngoingGroupCallContext { isConference: isConference, isActiveByDefault: audioIsActiveByDefault, encryptDecrypt: encryptionContext.flatMap { encryptionContext in - return { data, isEncrypt in + return { data, userId, isEncrypt in if isEncrypt { return encryptionContext.encrypt(message: data) } else { - return encryptionContext.decrypt(message: data) + return encryptionContext.decrypt(message: data, userId: userId) } } } @@ -899,7 +899,6 @@ public final class OngoingGroupCallContext { } return OngoingGroupCallRequestedVideoChannel( audioSsrc: channel.audioSsrc, - userId: channel.peerId, endpointId: channel.endpointId, ssrcGroups: channel.ssrcGroups.map { group in return OngoingGroupCallSsrcGroup( diff --git a/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/mtproto/mtproto_api.h b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/mtproto/mtproto_api.h new file mode 100644 index 0000000000..71fa8532b0 --- /dev/null +++ b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/mtproto/mtproto_api.h @@ -0,0 +1,1147 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/Slice.h" +#include "td/utils/UInt.h" + +#include +#include +#include + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlParser; + +namespace mtproto_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = Slice; + +using bytes = Slice; + +template +using array = std::vector; + +using BaseObject = ::td::TlObject; + +template +using object_ptr = ::td::tl_object_ptr; + +template +object_ptr make_object(Args &&... args) { + return object_ptr(new Type(std::forward(args)...)); +} + +template +object_ptr move_object_as(FromType &&from) { + return object_ptr(static_cast(from.release())); +} + +std::string to_string(const BaseObject &value); + +template +std::string to_string(const object_ptr &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template +std::string to_string(const std::vector> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class Object: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class Function: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class BadMsgNotification: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class bad_msg_notification final : public BadMsgNotification { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 bad_msg_id_; + int32 bad_msg_seqno_; + int32 error_code_; + + bad_msg_notification(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_); + + static const std::int32_t ID = -1477445615; + + static object_ptr fetch(TlParser &p); + + explicit bad_msg_notification(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bad_server_salt final : public BadMsgNotification { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 bad_msg_id_; + int32 bad_msg_seqno_; + int32 error_code_; + int64 new_server_salt_; + + bad_server_salt(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_, int64 new_server_salt_); + + static const std::int32_t ID = -307542917; + + static object_ptr fetch(TlParser &p); + + explicit bad_server_salt(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bind_auth_key_inner final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 nonce_; + int64 temp_auth_key_id_; + int64 perm_auth_key_id_; + int64 temp_session_id_; + int32 expires_at_; + + bind_auth_key_inner(int64 nonce_, int64 temp_auth_key_id_, int64 perm_auth_key_id_, int64 temp_session_id_, int32 expires_at_); + + static const std::int32_t ID = 1973679973; + + static object_ptr fetch(TlParser &p); + + explicit bind_auth_key_inner(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class client_DH_inner_data final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + int64 retry_id_; + string g_b_; + + client_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int64 retry_id_, string const &g_b_); + + static const std::int32_t ID = 1715713620; + + static object_ptr fetch(TlParser &p); + + explicit client_DH_inner_data(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DestroyAuthKeyRes: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class destroy_auth_key_ok final : public DestroyAuthKeyRes { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -161422892; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy_auth_key_none final : public DestroyAuthKeyRes { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 178201177; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy_auth_key_fail final : public DestroyAuthKeyRes { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -368010477; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class future_salt final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 valid_since_; + int32 valid_until_; + int64 salt_; + + future_salt(int32 valid_since_, int32 valid_until_, int64 salt_); + + static const std::int32_t ID = 155834844; + + static object_ptr fetch(TlParser &p); + + explicit future_salt(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class future_salt; + +class future_salts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 req_msg_id_; + int32 now_; + array> salts_; + + future_salts(int64 req_msg_id_, int32 now_, array> &&salts_); + + static const std::int32_t ID = -1370486635; + + static object_ptr fetch(TlParser &p); + + explicit future_salts(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gzip_packed final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string packed_data_; + + explicit gzip_packed(string const &packed_data_); + + static const std::int32_t ID = 812830625; + + static object_ptr fetch(TlParser &p); + + explicit gzip_packed(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dummyHttpWait final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -919090642; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MsgDetailedInfo: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class msg_detailed_info final : public MsgDetailedInfo { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 msg_id_; + int64 answer_msg_id_; + int32 bytes_; + int32 status_; + + msg_detailed_info(int64 msg_id_, int64 answer_msg_id_, int32 bytes_, int32 status_); + + static const std::int32_t ID = 661470918; + + static object_ptr fetch(TlParser &p); + + explicit msg_detailed_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msg_new_detailed_info final : public MsgDetailedInfo { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 answer_msg_id_; + int32 bytes_; + int32 status_; + + msg_new_detailed_info(int64 answer_msg_id_, int32 bytes_, int32 status_); + + static const std::int32_t ID = -2137147681; + + static object_ptr fetch(TlParser &p); + + explicit msg_new_detailed_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msg_resend_req final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array msg_ids_; + + explicit msg_resend_req(array &&msg_ids_); + + static const std::int32_t ID = 2105940488; + + static object_ptr fetch(TlParser &p); + + explicit msg_resend_req(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_ack final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array msg_ids_; + + explicit msgs_ack(array &&msg_ids_); + + static const std::int32_t ID = 1658238041; + + static object_ptr fetch(TlParser &p); + + explicit msgs_ack(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_all_info final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array msg_ids_; + string info_; + + msgs_all_info(array &&msg_ids_, string const &info_); + + static const std::int32_t ID = -1933520591; + + static object_ptr fetch(TlParser &p); + + explicit msgs_all_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_state_info final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 req_msg_id_; + string info_; + + msgs_state_info(int64 req_msg_id_, string const &info_); + + static const std::int32_t ID = 81704317; + + static object_ptr fetch(TlParser &p); + + explicit msgs_state_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_state_req final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array msg_ids_; + + explicit msgs_state_req(array &&msg_ids_); + + static const std::int32_t ID = -630588590; + + static object_ptr fetch(TlParser &p); + + explicit msgs_state_req(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class new_session_created final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 first_msg_id_; + int64 unique_id_; + int64 server_salt_; + + new_session_created(int64 first_msg_id_, int64 unique_id_, int64 server_salt_); + + static const std::int32_t ID = -1631450872; + + static object_ptr fetch(TlParser &p); + + explicit new_session_created(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class P_Q_inner_data: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class p_q_inner_data_dc final : public P_Q_inner_data { + std::int32_t get_id() const final { + return ID; + } + + public: + string pq_; + string p_; + string q_; + UInt128 nonce_; + UInt128 server_nonce_; + UInt256 new_nonce_; + int32 dc_; + + p_q_inner_data_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_); + + static const std::int32_t ID = -1443537003; + + static object_ptr fetch(TlParser &p); + + explicit p_q_inner_data_dc(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class p_q_inner_data_temp_dc final : public P_Q_inner_data { + std::int32_t get_id() const final { + return ID; + } + + public: + string pq_; + string p_; + string q_; + UInt128 nonce_; + UInt128 server_nonce_; + UInt256 new_nonce_; + int32 dc_; + int32 expires_in_; + + p_q_inner_data_temp_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_, int32 expires_in_); + + static const std::int32_t ID = 1459478408; + + static object_ptr fetch(TlParser &p); + + explicit p_q_inner_data_temp_dc(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pong final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 msg_id_; + int64 ping_id_; + + pong(int64 msg_id_, int64 ping_id_); + + static const std::int32_t ID = 880243653; + + static object_ptr fetch(TlParser &p); + + explicit pong(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rsa_public_key final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string n_; + string e_; + + rsa_public_key(string const &n_, string const &e_); + + static const std::int32_t ID = 2048510838; + + static object_ptr fetch(TlParser &p); + + explicit rsa_public_key(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resPQ final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + string pq_; + array server_public_key_fingerprints_; + + resPQ(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &pq_, array &&server_public_key_fingerprints_); + + static const std::int32_t ID = 85337187; + + static object_ptr fetch(TlParser &p); + + explicit resPQ(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RpcDropAnswer: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class rpc_answer_unknown final : public RpcDropAnswer { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 1579864942; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_answer_dropped_running final : public RpcDropAnswer { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -847714938; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_answer_dropped final : public RpcDropAnswer { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 msg_id_; + int32 seq_no_; + int32 bytes_; + + rpc_answer_dropped(int64 msg_id_, int32 seq_no_, int32 bytes_); + + static const std::int32_t ID = -1539647305; + + static object_ptr fetch(TlParser &p); + + explicit rpc_answer_dropped(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_error final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 error_code_; + string error_message_; + + rpc_error(int32 error_code_, string const &error_message_); + + static const std::int32_t ID = 558156313; + + static object_ptr fetch(TlParser &p); + + explicit rpc_error(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class server_DH_params_ok final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + string encrypted_answer_; + + server_DH_params_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_answer_); + + static const std::int32_t ID = -790100132; + + static object_ptr fetch(TlParser &p); + + explicit server_DH_params_ok(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class server_DH_inner_data final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + int32 g_; + string dh_prime_; + string g_a_; + int32 server_time_; + + server_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int32 g_, string const &dh_prime_, string const &g_a_, int32 server_time_); + + static const std::int32_t ID = -1249309254; + + static object_ptr fetch(TlParser &p); + + explicit server_DH_inner_data(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Set_client_DH_params_answer: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class dh_gen_ok final : public Set_client_DH_params_answer { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash1_; + + dh_gen_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash1_); + + static const std::int32_t ID = 1003222836; + + static object_ptr fetch(TlParser &p); + + explicit dh_gen_ok(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dh_gen_retry final : public Set_client_DH_params_answer { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash2_; + + dh_gen_retry(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash2_); + + static const std::int32_t ID = 1188831161; + + static object_ptr fetch(TlParser &p); + + explicit dh_gen_retry(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dh_gen_fail final : public Set_client_DH_params_answer { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash3_; + + dh_gen_fail(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash3_); + + static const std::int32_t ID = -1499615742; + + static object_ptr fetch(TlParser &p); + + explicit dh_gen_fail(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DestroyAuthKeyRes; + +class destroy_auth_key final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -784117408; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class future_salts; + +class get_future_salts final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 num_; + + explicit get_future_salts(int32 num_); + + static const std::int32_t ID = -1188971260; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit get_future_salts(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class dummyHttpWait; + +class http_wait final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 max_delay_; + int32 wait_after_; + int32 max_wait_; + + http_wait(int32 max_delay_, int32 wait_after_, int32 max_wait_); + + static const std::int32_t ID = -1835453025; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit http_wait(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class pong; + +class ping_delay_disconnect final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 ping_id_; + int32 disconnect_delay_; + + ping_delay_disconnect(int64 ping_id_, int32 disconnect_delay_); + + static const std::int32_t ID = -213746804; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit ping_delay_disconnect(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class server_DH_params_ok; + +class req_DH_params final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + string p_; + string q_; + int64 public_key_fingerprint_; + string encrypted_data_; + + req_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &p_, string const &q_, int64 public_key_fingerprint_, string const &encrypted_data_); + + static const std::int32_t ID = -686627650; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit req_DH_params(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class resPQ; + +class req_pq_multi final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + + explicit req_pq_multi(UInt128 const &nonce_); + + static const std::int32_t ID = -1099002127; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit req_pq_multi(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class RpcDropAnswer; + +class rpc_drop_answer final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 req_msg_id_; + + explicit rpc_drop_answer(int64 req_msg_id_); + + static const std::int32_t ID = 1491380032; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit rpc_drop_answer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class Set_client_DH_params_answer; + +class set_client_DH_params final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt128 nonce_; + UInt128 server_nonce_; + string encrypted_data_; + + set_client_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_data_); + + static const std::int32_t ID = -184262881; + + using ReturnType = object_ptr; + + static object_ptr fetch(TlParser &p); + + explicit set_client_DH_params(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +} // namespace mtproto_api +} // namespace td diff --git a/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/e2e_api.h b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/e2e_api.h new file mode 100644 index 0000000000..72d3e74ba1 --- /dev/null +++ b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/e2e_api.h @@ -0,0 +1,888 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/UInt.h" + +#include +#include +#include + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlParser; + +namespace e2e_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = std::string; + +using secure_string = std::string; + +using secure_bytes = std::string; + +template +using array = std::vector; + +using BaseObject = ::td::TlObject; + +template +using object_ptr = ::td::tl_object_ptr; + +template +object_ptr make_object(Args &&... args) { + return object_ptr(new Type(std::forward(args)...)); +} + +template +object_ptr move_object_as(FromType &&from) { + return object_ptr(static_cast(from.release())); +} + +std::string to_string(const BaseObject &value); + +template +std::string to_string(const object_ptr &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template +std::string to_string(const std::vector> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class Object: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class Function: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class ok final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -722616727; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_HandshakePrivate: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_handshakePrivateAccept final : public e2e_HandshakePrivate { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 alice_PK_; + UInt256 bob_PK_; + int64 alice_user_id_; + int64 bob_user_id_; + UInt256 alice_nonce_; + UInt256 bob_nonce_; + + e2e_handshakePrivateAccept(UInt256 const &alice_PK_, UInt256 const &bob_PK_, int64 alice_user_id_, int64 bob_user_id_, UInt256 const &alice_nonce_, UInt256 const &bob_nonce_); + + static const std::int32_t ID = -1711729321; + + static object_ptr fetch(TlParser &p); + + explicit e2e_handshakePrivateAccept(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_handshakePrivateFinish final : public e2e_HandshakePrivate { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 alice_PK_; + UInt256 bob_PK_; + int64 alice_user_id_; + int64 bob_user_id_; + UInt256 alice_nonce_; + UInt256 bob_nonce_; + + e2e_handshakePrivateFinish(UInt256 const &alice_PK_, UInt256 const &bob_PK_, int64 alice_user_id_, int64 bob_user_id_, UInt256 const &alice_nonce_, UInt256 const &bob_nonce_); + + static const std::int32_t ID = 353768245; + + static object_ptr fetch(TlParser &p); + + explicit e2e_handshakePrivateFinish(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_HandshakePublic: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_handshakeQR final : public e2e_HandshakePublic { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 bob_ephemeral_PK_; + UInt256 bob_nonce_; + + e2e_handshakeQR(UInt256 const &bob_ephemeral_PK_, UInt256 const &bob_nonce_); + + static const std::int32_t ID = -746741414; + + static object_ptr fetch(TlParser &p); + + explicit e2e_handshakeQR(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_handshakeEncryptedMessage final : public e2e_HandshakePublic { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes message_; + + explicit e2e_handshakeEncryptedMessage(bytes const &message_); + + static const std::int32_t ID = -1757409540; + + static object_ptr fetch(TlParser &p); + + explicit e2e_handshakeEncryptedMessage(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_handshakeLoginExport final : public e2e_HandshakePublic { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes accept_; + bytes encrypted_key_; + + e2e_handshakeLoginExport(bytes const &accept_, bytes const &encrypted_key_); + + static const std::int32_t ID = -152012972; + + static object_ptr fetch(TlParser &p); + + explicit e2e_handshakeLoginExport(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_Key: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_keyContactByUserId final : public e2e_Key { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 user_id_; + + explicit e2e_keyContactByUserId(int64 user_id_); + + static const std::int32_t ID = 1925266987; + + static object_ptr fetch(TlParser &p); + + explicit e2e_keyContactByUserId(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_keyContactByPublicKey final : public e2e_Key { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 public_key_; + + explicit e2e_keyContactByPublicKey(UInt256 const &public_key_); + + static const std::int32_t ID = 1817152664; + + static object_ptr fetch(TlParser &p); + + explicit e2e_keyContactByPublicKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_Personal: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_personalUserId final : public e2e_Personal { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 user_id_; + + explicit e2e_personalUserId(int64 user_id_); + + static const std::int32_t ID = 380090592; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalUserId(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalName final : public e2e_Personal { + std::int32_t get_id() const final { + return ID; + } + + public: + string first_name_; + string last_name_; + + e2e_personalName(string const &first_name_, string const &last_name_); + + static const std::int32_t ID = 1760192213; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalName(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalPhoneNumber final : public e2e_Personal { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_; + + explicit e2e_personalPhoneNumber(string const &phone_number_); + + static const std::int32_t ID = 1124597274; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalPhoneNumber(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalContactState final : public e2e_Personal { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + bool is_contact_; + enum Flags : std::int32_t { IS_CONTACT_MASK = 1 }; + + e2e_personalContactState(); + + e2e_personalContactState(int32 flags_, bool is_contact_); + + static const std::int32_t ID = -1052064682; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalEmojiNonces final : public e2e_Personal { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + UInt256 self_nonce_; + UInt256 contact_nonce_hash_; + UInt256 contact_nonce_; + enum Flags : std::int32_t { SELF_NONCE_MASK = 1, CONTACT_NONCE_HASH_MASK = 2, CONTACT_NONCE_MASK = 4 }; + + e2e_personalEmojiNonces(); + + e2e_personalEmojiNonces(int32 flags_, UInt256 const &self_nonce_, UInt256 const &contact_nonce_hash_, UInt256 const &contact_nonce_); + + static const std::int32_t ID = -2046934345; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalOnServer; + +class e2e_personalData final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 public_key_; + array> data_; + + e2e_personalData(UInt256 const &public_key_, array> &&data_); + + static const std::int32_t ID = 1037793350; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalData(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_Personal; + +class e2e_personalOnClient final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 signed_at_; + object_ptr personal_; + + e2e_personalOnClient(int32 signed_at_, object_ptr &&personal_); + + static const std::int32_t ID = -341421551; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalOnClient(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_Personal; + +class e2e_personalOnServer final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt512 signature_; + int32 signed_at_; + object_ptr personal_; + + e2e_personalOnServer(UInt512 const &signature_, int32 signed_at_, object_ptr &&personal_); + + static const std::int32_t ID = -800248701; + + static object_ptr fetch(TlParser &p); + + explicit e2e_personalOnServer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_personalOnClient; + +class e2e_Value: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_valueContactByUserId final : public e2e_Value { + std::int32_t get_id() const final { + return ID; + } + + public: + array public_keys_; + + explicit e2e_valueContactByUserId(array &&public_keys_); + + static const std::int32_t ID = 113903379; + + static object_ptr fetch(TlParser &p); + + explicit e2e_valueContactByUserId(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_valueContactByPublicKey final : public e2e_Value { + std::int32_t get_id() const final { + return ID; + } + + public: + array> entries_; + + explicit e2e_valueContactByPublicKey(array> &&entries_); + + static const std::int32_t ID = -1418478879; + + static object_ptr fetch(TlParser &p); + + explicit e2e_valueContactByPublicKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_Change; + +class e2e_chain_stateProof; + +class e2e_chain_block final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt512 signature_; + int32 flags_; + UInt256 prev_block_hash_; + array> changes_; + int32 height_; + object_ptr state_proof_; + UInt256 signature_public_key_; + enum Flags : std::int32_t { SIGNATURE_PUBLIC_KEY_MASK = 1 }; + + e2e_chain_block(); + + e2e_chain_block(UInt512 const &signature_, int32 flags_, UInt256 const &prev_block_hash_, array> &&changes_, int32 height_, object_ptr &&state_proof_, UInt256 const &signature_public_key_); + + static const std::int32_t ID = 1671052726; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_groupState; + +class e2e_chain_sharedKey; + +class e2e_chain_Change: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_chain_changeNoop final : public e2e_chain_Change { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 nonce_; + + explicit e2e_chain_changeNoop(UInt256 const &nonce_); + + static const std::int32_t ID = -558586853; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_changeNoop(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_changeSetValue final : public e2e_chain_Change { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes key_; + bytes value_; + + e2e_chain_changeSetValue(bytes const &key_, bytes const &value_); + + static const std::int32_t ID = -33474100; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_changeSetValue(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_changeSetGroupState final : public e2e_chain_Change { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr group_state_; + + explicit e2e_chain_changeSetGroupState(object_ptr &&group_state_); + + static const std::int32_t ID = 754020678; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_changeSetGroupState(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_changeSetSharedKey final : public e2e_chain_Change { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr shared_key_; + + explicit e2e_chain_changeSetSharedKey(object_ptr &&shared_key_); + + static const std::int32_t ID = -1736826536; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_changeSetSharedKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_GroupBroadcast: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class e2e_chain_groupBroadcastNonceCommit final : public e2e_chain_GroupBroadcast { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt512 signature_; + int64 user_id_; + int32 chain_height_; + UInt256 chain_hash_; + UInt256 nonce_hash_; + + e2e_chain_groupBroadcastNonceCommit(UInt512 const &signature_, int64 user_id_, int32 chain_height_, UInt256 const &chain_hash_, UInt256 const &nonce_hash_); + + static const std::int32_t ID = -783209753; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_groupBroadcastNonceCommit(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_groupBroadcastNonceReveal final : public e2e_chain_GroupBroadcast { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt512 signature_; + int64 user_id_; + int32 chain_height_; + UInt256 chain_hash_; + UInt256 nonce_; + + e2e_chain_groupBroadcastNonceReveal(UInt512 const &signature_, int64 user_id_, int32 chain_height_, UInt256 const &chain_hash_, UInt256 const &nonce_); + + static const std::int32_t ID = -2081097256; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_groupBroadcastNonceReveal(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_groupParticipant final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 user_id_; + UInt256 public_key_; + int32 flags_; + bool add_users_; + bool remove_users_; + int32 version_; + enum Flags : std::int32_t { ADD_USERS_MASK = 1, REMOVE_USERS_MASK = 2 }; + + e2e_chain_groupParticipant(); + + e2e_chain_groupParticipant(int64 user_id_, UInt256 const &public_key_, int32 flags_, bool add_users_, bool remove_users_, int32 version_); + + static const std::int32_t ID = 418617119; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_groupParticipant; + +class e2e_chain_groupState final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> participants_; + int32 external_permissions_; + + e2e_chain_groupState(array> &&participants_, int32 external_permissions_); + + static const std::int32_t ID = 500987268; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_groupState(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_sharedKey final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + UInt256 ek_; + string encrypted_shared_key_; + array dest_user_id_; + array dest_header_; + + e2e_chain_sharedKey(UInt256 const &ek_, string const &encrypted_shared_key_, array &&dest_user_id_, array &&dest_header_); + + static const std::int32_t ID = -1971028353; + + static object_ptr fetch(TlParser &p); + + explicit e2e_chain_sharedKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_chain_groupState; + +class e2e_chain_sharedKey; + +class e2e_chain_stateProof final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + UInt256 kv_hash_; + object_ptr group_state_; + object_ptr shared_key_; + enum Flags : std::int32_t { GROUP_STATE_MASK = 1, SHARED_KEY_MASK = 2 }; + + e2e_chain_stateProof(); + + e2e_chain_stateProof(int32 flags_, UInt256 const &kv_hash_, object_ptr &&group_state_, object_ptr &&shared_key_); + + static const std::int32_t ID = -692684314; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class e2e_nop final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 1479594067; + + using ReturnType = bool; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +} // namespace e2e_api +} // namespace td diff --git a/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/secret_api.h b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/secret_api.h new file mode 100644 index 0000000000..a26ba48d36 --- /dev/null +++ b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/secret_api.h @@ -0,0 +1,2224 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/buffer.h" + +#include +#include +#include + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlParser; + +namespace secret_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = BufferSlice; + +using secure_string = std::string; + +using secure_bytes = BufferSlice; + +template +using array = std::vector; + +using BaseObject = ::td::TlObject; + +template +using object_ptr = ::td::tl_object_ptr; + +template +object_ptr make_object(Args &&... args) { + return object_ptr(new Type(std::forward(args)...)); +} + +template +object_ptr move_object_as(FromType &&from) { + return object_ptr(static_cast(from.release())); +} + +std::string to_string(const BaseObject &value); + +template +std::string to_string(const object_ptr &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template +std::string to_string(const std::vector> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class Object: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class Function: public TlObject { + public: + + static object_ptr fetch(TlParser &p); +}; + +class DecryptedMessageAction; + +class DecryptedMessageMedia; + +class MessageEntity; + +class DecryptedMessage: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class decryptedMessage8 final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 random_id_; + bytes random_bytes_; + string message_; + object_ptr media_; + + decryptedMessage8(int64 random_id_, bytes &&random_bytes_, string const &message_, object_ptr &&media_); + + static const std::int32_t ID = 528568095; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessage8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageService8 final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 random_id_; + bytes random_bytes_; + object_ptr action_; + + decryptedMessageService8(int64 random_id_, bytes &&random_bytes_, object_ptr &&action_); + + static const std::int32_t ID = -1438109059; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageService8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage23 final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 random_id_; + int32 ttl_; + string message_; + object_ptr media_; + + decryptedMessage23(int64 random_id_, int32 ttl_, string const &message_, object_ptr &&media_); + + static const std::int32_t ID = 541931640; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessage23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageService final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 random_id_; + object_ptr action_; + + decryptedMessageService(int64 random_id_, object_ptr &&action_); + + static const std::int32_t ID = 1930838368; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageService(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage46 final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + int64 random_id_; + int32 ttl_; + string message_; + object_ptr media_; + array> entities_; + string via_bot_name_; + int64 reply_to_random_id_; + enum Flags : std::int32_t { MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8 }; + + decryptedMessage46(); + + decryptedMessage46(int32 flags_, int64 random_id_, int32 ttl_, string const &message_, object_ptr &&media_, array> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_); + + static const std::int32_t ID = 917541342; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage final : public DecryptedMessage { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + bool silent_; + int64 random_id_; + int32 ttl_; + string message_; + object_ptr media_; + array> entities_; + string via_bot_name_; + int64 reply_to_random_id_; + int64 grouped_id_; + enum Flags : std::int32_t { SILENT_MASK = 32, MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8, GROUPED_ID_MASK = 131072 }; + + decryptedMessage(); + + decryptedMessage(int32 flags_, bool silent_, int64 random_id_, int32 ttl_, string const &message_, object_ptr &&media_, array> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_, int64 grouped_id_); + + static const std::int32_t ID = -1848883596; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SendMessageAction; + +class DecryptedMessageAction: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class decryptedMessageActionSetMessageTTL final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 ttl_seconds_; + + explicit decryptedMessageActionSetMessageTTL(int32 ttl_seconds_); + + static const std::int32_t ID = -1586283796; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionSetMessageTTL(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionReadMessages final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + array random_ids_; + + explicit decryptedMessageActionReadMessages(array &&random_ids_); + + static const std::int32_t ID = 206520510; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionReadMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionDeleteMessages final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + array random_ids_; + + explicit decryptedMessageActionDeleteMessages(array &&random_ids_); + + static const std::int32_t ID = 1700872964; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionDeleteMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionScreenshotMessages final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + array random_ids_; + + explicit decryptedMessageActionScreenshotMessages(array &&random_ids_); + + static const std::int32_t ID = -1967000459; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionScreenshotMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionFlushHistory final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 1729750108; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionResend final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 start_seq_no_; + int32 end_seq_no_; + + decryptedMessageActionResend(int32 start_seq_no_, int32 end_seq_no_); + + static const std::int32_t ID = 1360072880; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionResend(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionNotifyLayer final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 layer_; + + explicit decryptedMessageActionNotifyLayer(int32 layer_); + + static const std::int32_t ID = -217806717; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionNotifyLayer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionTyping final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr action_; + + explicit decryptedMessageActionTyping(object_ptr &&action_); + + static const std::int32_t ID = -860719551; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionTyping(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionRequestKey final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 exchange_id_; + bytes g_a_; + + decryptedMessageActionRequestKey(int64 exchange_id_, bytes &&g_a_); + + static const std::int32_t ID = -204906213; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionRequestKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionAcceptKey final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 exchange_id_; + bytes g_b_; + int64 key_fingerprint_; + + decryptedMessageActionAcceptKey(int64 exchange_id_, bytes &&g_b_, int64 key_fingerprint_); + + static const std::int32_t ID = 1877046107; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionAcceptKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionAbortKey final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 exchange_id_; + + explicit decryptedMessageActionAbortKey(int64 exchange_id_); + + static const std::int32_t ID = -586814357; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionAbortKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionCommitKey final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 exchange_id_; + int64 key_fingerprint_; + + decryptedMessageActionCommitKey(int64 exchange_id_, int64 key_fingerprint_); + + static const std::int32_t ID = -332526693; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageActionCommitKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionNoop final : public DecryptedMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1473258141; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DecryptedMessage; + +class decryptedMessageLayer final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes random_bytes_; + int32 layer_; + int32 in_seq_no_; + int32 out_seq_no_; + object_ptr message_; + + decryptedMessageLayer(bytes &&random_bytes_, int32 layer_, int32 in_seq_no_, int32 out_seq_no_, object_ptr &&message_); + + static const std::int32_t ID = 467867529; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageLayer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DocumentAttribute; + +class PhotoSize; + +class DecryptedMessageMedia: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class decryptedMessageMediaEmpty final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 144661578; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaPhoto8 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaPhoto8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 846826124; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaPhoto8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo8 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaVideo8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1290694387; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaVideo8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaGeoPoint final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + double lat_; + double long_; + + decryptedMessageMediaGeoPoint(double lat_, double long_); + + static const std::int32_t ID = 893913689; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaGeoPoint(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaContact final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_; + string first_name_; + string last_name_; + int32 user_id_; + + decryptedMessageMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, int32 user_id_); + + static const std::int32_t ID = 1485441687; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaContact(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument8 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string file_name_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaDocument8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &file_name_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = -1332395189; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaDocument8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaAudio8 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaAudio8(int32 duration_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1619031439; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaAudio8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo23 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + string mime_type_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaVideo23(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1380598109; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaVideo23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaAudio final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaAudio(int32 duration_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1474341323; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaAudio(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaExternalDocument final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + int64 access_hash_; + int32 date_; + string mime_type_; + int32 size_; + object_ptr thumb_; + int32 dc_id_; + array> attributes_; + + decryptedMessageMediaExternalDocument(int64 id_, int64 access_hash_, int32 date_, string const &mime_type_, int32 size_, object_ptr &&thumb_, int32 dc_id_, array> &&attributes_); + + static const std::int32_t ID = -90853155; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaExternalDocument(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaPhoto final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + string caption_; + + decryptedMessageMediaPhoto(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_); + + static const std::int32_t ID = -235238024; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaPhoto(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + string mime_type_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + string caption_; + + decryptedMessageMediaVideo(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_); + + static const std::int32_t ID = -1760785394; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaVideo(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument46 final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + array> attributes_; + string caption_; + + decryptedMessageMediaDocument46(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_, array> &&attributes_, string const &caption_); + + static const std::int32_t ID = 2063502050; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaDocument46(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVenue final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + double lat_; + double long_; + string title_; + string address_; + string provider_; + string venue_id_; + + decryptedMessageMediaVenue(double lat_, double long_, string const &title_, string const &address_, string const &provider_, string const &venue_id_); + + static const std::int32_t ID = -1978796689; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaVenue(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaWebPage final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + + explicit decryptedMessageMediaWebPage(string const &url_); + + static const std::int32_t ID = -452652584; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaWebPage(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument final : public DecryptedMessageMedia { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string mime_type_; + int64 size_; + bytes key_; + bytes iv_; + array> attributes_; + string caption_; + + decryptedMessageMediaDocument(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int64 size_, bytes &&key_, bytes &&iv_, array> &&attributes_, string const &caption_); + + static const std::int32_t ID = 1790809986; + + static object_ptr fetch(TlParser &p); + + explicit decryptedMessageMediaDocument(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStickerSet; + +class DocumentAttribute: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class documentAttributeImageSize final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 w_; + int32 h_; + + documentAttributeImageSize(int32 w_, int32 h_); + + static const std::int32_t ID = 1815593308; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeImageSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAnimated final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 297109817; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeSticker23 final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -83208409; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeVideo23 final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + int32 w_; + int32 h_; + + documentAttributeVideo23(int32 duration_, int32 w_, int32 h_); + + static const std::int32_t ID = 1494273227; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeVideo23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio23 final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + + explicit documentAttributeAudio23(int32 duration_); + + static const std::int32_t ID = 85215461; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeAudio23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeFilename final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + string file_name_; + + explicit documentAttributeFilename(string const &file_name_); + + static const std::int32_t ID = 358154344; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeFilename(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio45 final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + string title_; + string performer_; + + documentAttributeAudio45(int32 duration_, string const &title_, string const &performer_); + + static const std::int32_t ID = -556656416; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeAudio45(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeSticker final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + string alt_; + object_ptr stickerset_; + + documentAttributeSticker(string const &alt_, object_ptr &&stickerset_); + + static const std::int32_t ID = 978674434; + + static object_ptr fetch(TlParser &p); + + explicit documentAttributeSticker(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + bool voice_; + int32 duration_; + string title_; + string performer_; + bytes waveform_; + enum Flags : std::int32_t { VOICE_MASK = 1024, TITLE_MASK = 1, PERFORMER_MASK = 2, WAVEFORM_MASK = 4 }; + + documentAttributeAudio(); + + documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_); + + static const std::int32_t ID = -1739392570; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeVideo final : public DocumentAttribute { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 flags_; + bool round_message_; + int32 duration_; + int32 w_; + int32 h_; + enum Flags : std::int32_t { ROUND_MESSAGE_MASK = 1 }; + + documentAttributeVideo(); + + documentAttributeVideo(int32 flags_, bool round_message_, int32 duration_, int32 w_, int32 h_); + + static const std::int32_t ID = 250621158; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FileLocation: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class fileLocationUnavailable final : public FileLocation { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 volume_id_; + int32 local_id_; + int64 secret_; + + fileLocationUnavailable(int64 volume_id_, int32 local_id_, int64 secret_); + + static const std::int32_t ID = 2086234950; + + static object_ptr fetch(TlParser &p); + + explicit fileLocationUnavailable(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileLocation final : public FileLocation { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 dc_id_; + int64 volume_id_; + int32 local_id_; + int64 secret_; + + fileLocation(int32 dc_id_, int64 volume_id_, int32 local_id_, int64 secret_); + + static const std::int32_t ID = 1406570614; + + static object_ptr fetch(TlParser &p); + + explicit fileLocation(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStickerSet: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class inputStickerSetShortName final : public InputStickerSet { + std::int32_t get_id() const final { + return ID; + } + + public: + string short_name_; + + explicit inputStickerSetShortName(string const &short_name_); + + static const std::int32_t ID = -2044933984; + + static object_ptr fetch(TlParser &p); + + explicit inputStickerSetShortName(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetEmpty final : public InputStickerSet { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -4838507; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageEntity: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class messageEntityUnknown final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityUnknown(int32 offset_, int32 length_); + + static const std::int32_t ID = -1148011883; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityUnknown(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMention final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityMention(int32 offset_, int32 length_); + + static const std::int32_t ID = -100378723; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityMention(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityHashtag final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityHashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1868782349; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityHashtag(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBotCommand final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityBotCommand(int32 offset_, int32 length_); + + static const std::int32_t ID = 1827637959; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityBotCommand(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUrl final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityUrl(int32 offset_, int32 length_); + + static const std::int32_t ID = 1859134776; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityUrl(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityEmail final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityEmail(int32 offset_, int32 length_); + + static const std::int32_t ID = 1692693954; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityEmail(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBold final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityBold(int32 offset_, int32 length_); + + static const std::int32_t ID = -1117713463; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityBold(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityItalic final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityItalic(int32 offset_, int32 length_); + + static const std::int32_t ID = -2106619040; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityItalic(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCode final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityCode(int32 offset_, int32 length_); + + static const std::int32_t ID = 681706865; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityCode(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPre final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + string language_; + + messageEntityPre(int32 offset_, int32 length_, string const &language_); + + static const std::int32_t ID = 1938967520; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityPre(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityTextUrl final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + string url_; + + messageEntityTextUrl(int32 offset_, int32 length_, string const &url_); + + static const std::int32_t ID = 1990644519; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityTextUrl(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMentionName final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + int32 user_id_; + + messageEntityMentionName(int32 offset_, int32 length_, int32 user_id_); + + static const std::int32_t ID = 892193368; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityMentionName(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPhone final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityPhone(int32 offset_, int32 length_); + + static const std::int32_t ID = -1687559349; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityPhone(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCashtag final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityCashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1280209983; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityCashtag(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBankCard final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityBankCard(int32 offset_, int32 length_); + + static const std::int32_t ID = 1981704948; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityBankCard(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUnderline final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityUnderline(int32 offset_, int32 length_); + + static const std::int32_t ID = -1672577397; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityUnderline(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityStrike final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityStrike(int32 offset_, int32 length_); + + static const std::int32_t ID = -1090087980; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityStrike(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBlockquote final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntityBlockquote(int32 offset_, int32 length_); + + static const std::int32_t ID = 34469328; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityBlockquote(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntitySpoiler final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + + messageEntitySpoiler(int32 offset_, int32 length_); + + static const std::int32_t ID = 852137487; + + static object_ptr fetch(TlParser &p); + + explicit messageEntitySpoiler(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCustomEmoji final : public MessageEntity { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 offset_; + int32 length_; + int64 document_id_; + + messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_); + + static const std::int32_t ID = -925956616; + + static object_ptr fetch(TlParser &p); + + explicit messageEntityCustomEmoji(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FileLocation; + +class PhotoSize: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class photoSizeEmpty final : public PhotoSize { + std::int32_t get_id() const final { + return ID; + } + + public: + string type_; + + explicit photoSizeEmpty(string const &type_); + + static const std::int32_t ID = 236446268; + + static object_ptr fetch(TlParser &p); + + explicit photoSizeEmpty(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoSize final : public PhotoSize { + std::int32_t get_id() const final { + return ID; + } + + public: + string type_; + object_ptr location_; + int32 w_; + int32 h_; + int32 size_; + + photoSize(string const &type_, object_ptr &&location_, int32 w_, int32 h_, int32 size_); + + static const std::int32_t ID = 2009052699; + + static object_ptr fetch(TlParser &p); + + explicit photoSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoCachedSize final : public PhotoSize { + std::int32_t get_id() const final { + return ID; + } + + public: + string type_; + object_ptr location_; + int32 w_; + int32 h_; + bytes bytes_; + + photoCachedSize(string const &type_, object_ptr &&location_, int32 w_, int32 h_, bytes &&bytes_); + + static const std::int32_t ID = -374917894; + + static object_ptr fetch(TlParser &p); + + explicit photoCachedSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SendMessageAction: public Object { + public: + + static object_ptr fetch(TlParser &p); +}; + +class sendMessageTypingAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 381645902; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageCancelAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -44119819; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordVideoAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1584933265; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadVideoAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1845219337; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordAudioAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -718310409; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadAudioAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -424899985; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadPhotoAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1727382502; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadDocumentAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1884362354; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageGeoLocationAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 393186209; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageChooseContactAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = 1653390447; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordRoundAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1997373508; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadRoundAction final : public SendMessageAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -1150187996; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class test_dummyFunction final : public Function { + std::int32_t get_id() const final { + return ID; + } + + public: + + static const std::int32_t ID = -936020215; + + using ReturnType = bool; + + static object_ptr fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +} // namespace secret_api +} // namespace td diff --git a/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/td_api.h b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/td_api.h new file mode 100644 index 0000000000..7472c3cb66 --- /dev/null +++ b/third-party/td/TdBinding/SharedHeaders/td/td/generate/auto/td/telegram/td_api.h @@ -0,0 +1,51394 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include + +#include +#include +#include + +namespace td { +class TlStorerToString; + +namespace td_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = std::string; + +template +using array = std::vector; + +using BaseObject = ::td::TlObject; + +template +using object_ptr = ::td::tl_object_ptr; + +template +object_ptr make_object(Args &&... args) { + return object_ptr(new Type(std::forward(args)...)); +} + +template +object_ptr move_object_as(FromType &&from) { + return object_ptr(static_cast(from.release())); +} + +std::string to_string(const BaseObject &value); + +template +std::string to_string(const object_ptr &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template +std::string to_string(const std::vector> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class Object: public TlObject { + public: +}; + +class Function: public TlObject { + public: +}; + +class accentColor final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + int32 built_in_accent_color_id_; + array light_theme_colors_; + array dark_theme_colors_; + int32 min_channel_chat_boost_level_; + + accentColor(); + + accentColor(int32 id_, int32 built_in_accent_color_id_, array &&light_theme_colors_, array &&dark_theme_colors_, int32 min_channel_chat_boost_level_); + + static const std::int32_t ID = -496870680; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class accountInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 registration_month_; + int32 registration_year_; + string phone_number_country_code_; + int32 last_name_change_date_; + int32 last_photo_change_date_; + + accountInfo(); + + accountInfo(int32 registration_month_, int32 registration_year_, string const &phone_number_country_code_, int32 last_name_change_date_, int32 last_photo_change_date_); + + static const std::int32_t ID = 1803492711; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class accountTtl final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 days_; + + accountTtl(); + + explicit accountTtl(int32 days_); + + static const std::int32_t ID = 1324495492; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class ReactionType; + +class addedReaction final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr type_; + object_ptr sender_id_; + bool is_outgoing_; + int32 date_; + + addedReaction(); + + addedReaction(object_ptr &&type_, object_ptr &&sender_id_, bool is_outgoing_, int32 date_); + + static const std::int32_t ID = 1258586525; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addedReaction; + +class addedReactions final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> reactions_; + string next_offset_; + + addedReactions(); + + addedReactions(int32 total_count_, array> &&reactions_, string const &next_offset_); + + static const std::int32_t ID = 226352304; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class address final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string country_code_; + string state_; + string city_; + string street_line1_; + string street_line2_; + string postal_code_; + + address(); + + address(string const &country_code_, string const &state_, string const &city_, string const &street_line1_, string const &street_line2_, string const &postal_code_); + + static const std::int32_t ID = -2043654342; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class starAmount; + +class affiliateInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 commission_per_mille_; + int53 affiliate_chat_id_; + object_ptr star_amount_; + + affiliateInfo(); + + affiliateInfo(int32 commission_per_mille_, int53 affiliate_chat_id_, object_ptr &&star_amount_); + + static const std::int32_t ID = -1312695046; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramParameters; + +class starAmount; + +class affiliateProgramInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr parameters_; + int32 end_date_; + object_ptr daily_revenue_per_user_amount_; + + affiliateProgramInfo(); + + affiliateProgramInfo(object_ptr &¶meters_, int32 end_date_, object_ptr &&daily_revenue_per_user_amount_); + + static const std::int32_t ID = -1761810251; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramParameters final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 commission_per_mille_; + int32 month_count_; + + affiliateProgramParameters(); + + affiliateProgramParameters(int32 commission_per_mille_, int32 month_count_); + + static const std::int32_t ID = 1642662996; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AffiliateProgramSortOrder: public Object { + public: +}; + +class affiliateProgramSortOrderProfitability final : public AffiliateProgramSortOrder { + std::int32_t get_id() const final { + return ID; + } + + public: + + affiliateProgramSortOrderProfitability(); + + static const std::int32_t ID = -1963282585; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramSortOrderCreationDate final : public AffiliateProgramSortOrder { + std::int32_t get_id() const final { + return ID; + } + + public: + + affiliateProgramSortOrderCreationDate(); + + static const std::int32_t ID = -1558628083; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramSortOrderRevenue final : public AffiliateProgramSortOrder { + std::int32_t get_id() const final { + return ID; + } + + public: + + affiliateProgramSortOrderRevenue(); + + static const std::int32_t ID = 1923269304; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AffiliateType: public Object { + public: +}; + +class affiliateTypeCurrentUser final : public AffiliateType { + std::int32_t get_id() const final { + return ID; + } + + public: + + affiliateTypeCurrentUser(); + + static const std::int32_t ID = 1453785589; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateTypeBot final : public AffiliateType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + + affiliateTypeBot(); + + explicit affiliateTypeBot(int53 user_id_); + + static const std::int32_t ID = -1032587200; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateTypeChannel final : public AffiliateType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + + affiliateTypeChannel(); + + explicit affiliateTypeChannel(int53 chat_id_); + + static const std::int32_t ID = -683939735; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class alternativeVideo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + int32 width_; + int32 height_; + string codec_; + object_ptr hls_file_; + object_ptr video_; + + alternativeVideo(); + + alternativeVideo(int64 id_, int32 width_, int32 height_, string const &codec_, object_ptr &&hls_file_, object_ptr &&video_); + + static const std::int32_t ID = 483379470; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class animatedChatPhoto final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 length_; + object_ptr file_; + double main_frame_timestamp_; + + animatedChatPhoto(); + + animatedChatPhoto(int32 length_, object_ptr &&file_, double main_frame_timestamp_); + + static const std::int32_t ID = 191994926; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class sticker; + +class animatedEmoji final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr sticker_; + int32 sticker_width_; + int32 sticker_height_; + int32 fitzpatrick_type_; + object_ptr sound_; + + animatedEmoji(); + + animatedEmoji(object_ptr &&sticker_, int32 sticker_width_, int32 sticker_height_, int32 fitzpatrick_type_, object_ptr &&sound_); + + static const std::int32_t ID = 1378918079; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class minithumbnail; + +class thumbnail; + +class animation final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + int32 width_; + int32 height_; + string file_name_; + string mime_type_; + bool has_stickers_; + object_ptr minithumbnail_; + object_ptr thumbnail_; + object_ptr animation_; + + animation(); + + animation(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, object_ptr &&minithumbnail_, object_ptr &&thumbnail_, object_ptr &&animation_); + + static const std::int32_t ID = -872359106; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animation; + +class animations final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> animations_; + + animations(); + + explicit animations(array> &&animations_); + + static const std::int32_t ID = 344216945; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class archiveChatListSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool archive_and_mute_new_chats_from_unknown_users_; + bool keep_unmuted_chats_archived_; + bool keep_chats_from_folders_archived_; + + archiveChatListSettings(); + + archiveChatListSettings(bool archive_and_mute_new_chats_from_unknown_users_, bool keep_unmuted_chats_archived_, bool keep_chats_from_folders_archived_); + + static const std::int32_t ID = 1058499236; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachmentMenuBotColor; + +class file; + +class attachmentMenuBot final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + bool supports_self_chat_; + bool supports_user_chats_; + bool supports_bot_chats_; + bool supports_group_chats_; + bool supports_channel_chats_; + bool request_write_access_; + bool is_added_; + bool show_in_attachment_menu_; + bool show_in_side_menu_; + bool show_disclaimer_in_side_menu_; + string name_; + object_ptr name_color_; + object_ptr default_icon_; + object_ptr ios_static_icon_; + object_ptr ios_animated_icon_; + object_ptr ios_side_menu_icon_; + object_ptr android_icon_; + object_ptr android_side_menu_icon_; + object_ptr macos_icon_; + object_ptr macos_side_menu_icon_; + object_ptr icon_color_; + object_ptr web_app_placeholder_; + + attachmentMenuBot(); + + attachmentMenuBot(int53 bot_user_id_, bool supports_self_chat_, bool supports_user_chats_, bool supports_bot_chats_, bool supports_group_chats_, bool supports_channel_chats_, bool request_write_access_, bool is_added_, bool show_in_attachment_menu_, bool show_in_side_menu_, bool show_disclaimer_in_side_menu_, string const &name_, object_ptr &&name_color_, object_ptr &&default_icon_, object_ptr &&ios_static_icon_, object_ptr &&ios_animated_icon_, object_ptr &&ios_side_menu_icon_, object_ptr &&android_icon_, object_ptr &&android_side_menu_icon_, object_ptr &&macos_icon_, object_ptr &&macos_side_menu_icon_, object_ptr &&icon_color_, object_ptr &&web_app_placeholder_); + + static const std::int32_t ID = -1183966273; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachmentMenuBotColor final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 light_color_; + int32 dark_color_; + + attachmentMenuBotColor(); + + attachmentMenuBotColor(int32 light_color_, int32 dark_color_); + + static const std::int32_t ID = 1680039612; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class minithumbnail; + +class thumbnail; + +class audio final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 duration_; + string title_; + string performer_; + string file_name_; + string mime_type_; + object_ptr album_cover_minithumbnail_; + object_ptr album_cover_thumbnail_; + array> external_album_covers_; + object_ptr audio_; + + audio(); + + audio(int32 duration_, string const &title_, string const &performer_, string const &file_name_, string const &mime_type_, object_ptr &&album_cover_minithumbnail_, object_ptr &&album_cover_thumbnail_, array> &&external_album_covers_, object_ptr &&audio_); + + static const std::int32_t ID = -166398841; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AuthenticationCodeType; + +class authenticationCodeInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_; + object_ptr type_; + object_ptr next_type_; + int32 timeout_; + + authenticationCodeInfo(); + + authenticationCodeInfo(string const &phone_number_, object_ptr &&type_, object_ptr &&next_type_, int32 timeout_); + + static const std::int32_t ID = -860345416; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FirebaseDeviceVerificationParameters; + +class AuthenticationCodeType: public Object { + public: +}; + +class authenticationCodeTypeTelegramMessage final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 length_; + + authenticationCodeTypeTelegramMessage(); + + explicit authenticationCodeTypeTelegramMessage(int32 length_); + + static const std::int32_t ID = 2079628074; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeSms final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 length_; + + authenticationCodeTypeSms(); + + explicit authenticationCodeTypeSms(int32 length_); + + static const std::int32_t ID = 962650760; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeSmsWord final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string first_letter_; + + authenticationCodeTypeSmsWord(); + + explicit authenticationCodeTypeSmsWord(string const &first_letter_); + + static const std::int32_t ID = -1509540765; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeSmsPhrase final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string first_word_; + + authenticationCodeTypeSmsPhrase(); + + explicit authenticationCodeTypeSmsPhrase(string const &first_word_); + + static const std::int32_t ID = 784108753; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeCall final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 length_; + + authenticationCodeTypeCall(); + + explicit authenticationCodeTypeCall(int32 length_); + + static const std::int32_t ID = 1636265063; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeFlashCall final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string pattern_; + + authenticationCodeTypeFlashCall(); + + explicit authenticationCodeTypeFlashCall(string const &pattern_); + + static const std::int32_t ID = 1395882402; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeMissedCall final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_prefix_; + int32 length_; + + authenticationCodeTypeMissedCall(); + + authenticationCodeTypeMissedCall(string const &phone_number_prefix_, int32 length_); + + static const std::int32_t ID = 700123783; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeFragment final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + int32 length_; + + authenticationCodeTypeFragment(); + + authenticationCodeTypeFragment(string const &url_, int32 length_); + + static const std::int32_t ID = -2129693491; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeFirebaseAndroid final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr device_verification_parameters_; + int32 length_; + + authenticationCodeTypeFirebaseAndroid(); + + authenticationCodeTypeFirebaseAndroid(object_ptr &&device_verification_parameters_, int32 length_); + + static const std::int32_t ID = 1872475422; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeFirebaseIos final : public AuthenticationCodeType { + std::int32_t get_id() const final { + return ID; + } + + public: + string receipt_; + int32 push_timeout_; + int32 length_; + + authenticationCodeTypeFirebaseIos(); + + authenticationCodeTypeFirebaseIos(string const &receipt_, int32 push_timeout_, int32 length_); + + static const std::int32_t ID = -11162989; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailAddressResetState; + +class authenticationCodeInfo; + +class emailAddressAuthenticationCodeInfo; + +class termsOfService; + +class AuthorizationState: public Object { + public: +}; + +class authorizationStateWaitTdlibParameters final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateWaitTdlibParameters(); + + static const std::int32_t ID = 904720988; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitPhoneNumber final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateWaitPhoneNumber(); + + static const std::int32_t ID = 306402531; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitEmailAddress final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + bool allow_apple_id_; + bool allow_google_id_; + + authorizationStateWaitEmailAddress(); + + authorizationStateWaitEmailAddress(bool allow_apple_id_, bool allow_google_id_); + + static const std::int32_t ID = 1040478663; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitEmailCode final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + bool allow_apple_id_; + bool allow_google_id_; + object_ptr code_info_; + object_ptr email_address_reset_state_; + + authorizationStateWaitEmailCode(); + + authorizationStateWaitEmailCode(bool allow_apple_id_, bool allow_google_id_, object_ptr &&code_info_, object_ptr &&email_address_reset_state_); + + static const std::int32_t ID = -1868627365; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitCode final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr code_info_; + + authorizationStateWaitCode(); + + explicit authorizationStateWaitCode(object_ptr &&code_info_); + + static const std::int32_t ID = 52643073; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitOtherDeviceConfirmation final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + string link_; + + authorizationStateWaitOtherDeviceConfirmation(); + + explicit authorizationStateWaitOtherDeviceConfirmation(string const &link_); + + static const std::int32_t ID = 860166378; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitRegistration final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr terms_of_service_; + + authorizationStateWaitRegistration(); + + explicit authorizationStateWaitRegistration(object_ptr &&terms_of_service_); + + static const std::int32_t ID = 550350511; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitPassword final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + string password_hint_; + bool has_recovery_email_address_; + bool has_passport_data_; + string recovery_email_address_pattern_; + + authorizationStateWaitPassword(); + + authorizationStateWaitPassword(string const &password_hint_, bool has_recovery_email_address_, bool has_passport_data_, string const &recovery_email_address_pattern_); + + static const std::int32_t ID = 112238030; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateReady final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateReady(); + + static const std::int32_t ID = -1834871737; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateLoggingOut final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateLoggingOut(); + + static const std::int32_t ID = 154449270; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateClosing final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateClosing(); + + static const std::int32_t ID = 445855311; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateClosed final : public AuthorizationState { + std::int32_t get_id() const final { + return ID; + } + + public: + + authorizationStateClosed(); + + static const std::int32_t ID = 1526047584; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autoDownloadSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_auto_download_enabled_; + int32 max_photo_file_size_; + int53 max_video_file_size_; + int53 max_other_file_size_; + int32 video_upload_bitrate_; + bool preload_large_videos_; + bool preload_next_audio_; + bool preload_stories_; + bool use_less_data_for_calls_; + + autoDownloadSettings(); + + autoDownloadSettings(bool is_auto_download_enabled_, int32 max_photo_file_size_, int53 max_video_file_size_, int53 max_other_file_size_, int32 video_upload_bitrate_, bool preload_large_videos_, bool preload_next_audio_, bool preload_stories_, bool use_less_data_for_calls_); + + static const std::int32_t ID = 991433696; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autoDownloadSettings; + +class autoDownloadSettingsPresets final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr low_; + object_ptr medium_; + object_ptr high_; + + autoDownloadSettingsPresets(); + + autoDownloadSettingsPresets(object_ptr &&low_, object_ptr &&medium_, object_ptr &&high_); + + static const std::int32_t ID = -782099166; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autosaveSettingsException; + +class scopeAutosaveSettings; + +class autosaveSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr private_chat_settings_; + object_ptr group_settings_; + object_ptr channel_settings_; + array> exceptions_; + + autosaveSettings(); + + autosaveSettings(object_ptr &&private_chat_settings_, object_ptr &&group_settings_, object_ptr &&channel_settings_, array> &&exceptions_); + + static const std::int32_t ID = 1629412502; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class scopeAutosaveSettings; + +class autosaveSettingsException final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + object_ptr settings_; + + autosaveSettingsException(); + + autosaveSettingsException(int53 chat_id_, object_ptr &&settings_); + + static const std::int32_t ID = 1483470280; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AutosaveSettingsScope: public Object { + public: +}; + +class autosaveSettingsScopePrivateChats final : public AutosaveSettingsScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + autosaveSettingsScopePrivateChats(); + + static const std::int32_t ID = 1395227007; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autosaveSettingsScopeGroupChats final : public AutosaveSettingsScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + autosaveSettingsScopeGroupChats(); + + static const std::int32_t ID = 853544526; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autosaveSettingsScopeChannelChats final : public AutosaveSettingsScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + autosaveSettingsScopeChannelChats(); + + static const std::int32_t ID = -499572783; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autosaveSettingsScopeChat final : public AutosaveSettingsScope { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + + autosaveSettingsScopeChat(); + + explicit autosaveSettingsScopeChat(int53 chat_id_); + + static const std::int32_t ID = -1632255255; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReactionType; + +class availableReaction final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr type_; + bool needs_premium_; + + availableReaction(); + + availableReaction(object_ptr &&type_, bool needs_premium_); + + static const std::int32_t ID = -117292153; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReactionUnavailabilityReason; + +class availableReaction; + +class availableReactions final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> top_reactions_; + array> recent_reactions_; + array> popular_reactions_; + bool allow_custom_emoji_; + bool are_tags_; + object_ptr unavailability_reason_; + + availableReactions(); + + availableReactions(array> &&top_reactions_, array> &&recent_reactions_, array> &&popular_reactions_, bool allow_custom_emoji_, bool are_tags_, object_ptr &&unavailability_reason_); + + static const std::int32_t ID = 912529522; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundType; + +class document; + +class background final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + bool is_default_; + bool is_dark_; + string name_; + object_ptr document_; + object_ptr type_; + + background(); + + background(int64 id_, bool is_default_, bool is_dark_, string const &name_, object_ptr &&document_, object_ptr &&type_); + + static const std::int32_t ID = -429971172; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundFill: public Object { + public: +}; + +class backgroundFillSolid final : public BackgroundFill { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 color_; + + backgroundFillSolid(); + + explicit backgroundFillSolid(int32 color_); + + static const std::int32_t ID = 1010678813; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundFillGradient final : public BackgroundFill { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 top_color_; + int32 bottom_color_; + int32 rotation_angle_; + + backgroundFillGradient(); + + backgroundFillGradient(int32 top_color_, int32 bottom_color_, int32 rotation_angle_); + + static const std::int32_t ID = -1839206017; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundFillFreeformGradient final : public BackgroundFill { + std::int32_t get_id() const final { + return ID; + } + + public: + array colors_; + + backgroundFillFreeformGradient(); + + explicit backgroundFillFreeformGradient(array &&colors_); + + static const std::int32_t ID = -1145469255; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundFill; + +class BackgroundType: public Object { + public: +}; + +class backgroundTypeWallpaper final : public BackgroundType { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_blurred_; + bool is_moving_; + + backgroundTypeWallpaper(); + + backgroundTypeWallpaper(bool is_blurred_, bool is_moving_); + + static const std::int32_t ID = 1972128891; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundTypePattern final : public BackgroundType { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr fill_; + int32 intensity_; + bool is_inverted_; + bool is_moving_; + + backgroundTypePattern(); + + backgroundTypePattern(object_ptr &&fill_, int32 intensity_, bool is_inverted_, bool is_moving_); + + static const std::int32_t ID = 1290213117; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundTypeFill final : public BackgroundType { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr fill_; + + backgroundTypeFill(); + + explicit backgroundTypeFill(object_ptr &&fill_); + + static const std::int32_t ID = 993008684; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundTypeChatTheme final : public BackgroundType { + std::int32_t get_id() const final { + return ID; + } + + public: + string theme_name_; + + backgroundTypeChatTheme(); + + explicit backgroundTypeChatTheme(string const &theme_name_); + + static const std::int32_t ID = 1299879762; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class background; + +class backgrounds final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> backgrounds_; + + backgrounds(); + + explicit backgrounds(array> &&backgrounds_); + + static const std::int32_t ID = 724728704; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bankCardActionOpenUrl final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + string url_; + + bankCardActionOpenUrl(); + + bankCardActionOpenUrl(string const &text_, string const &url_); + + static const std::int32_t ID = -196454267; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bankCardActionOpenUrl; + +class bankCardInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string title_; + array> actions_; + + bankCardInfo(); + + bankCardInfo(string const &title_, array> &&actions_); + + static const std::int32_t ID = -2116647730; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatMemberStatus; + +class basicGroup final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 id_; + int32 member_count_; + object_ptr status_; + bool is_active_; + int53 upgraded_to_supergroup_id_; + + basicGroup(); + + basicGroup(int53 id_, int32 member_count_, object_ptr &&status_, bool is_active_, int53 upgraded_to_supergroup_id_); + + static const std::int32_t ID = -194767217; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommands; + +class chatInviteLink; + +class chatMember; + +class chatPhoto; + +class basicGroupFullInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr photo_; + string description_; + int53 creator_user_id_; + array> members_; + bool can_hide_members_; + bool can_toggle_aggressive_anti_spam_; + object_ptr invite_link_; + array> bot_commands_; + + basicGroupFullInfo(); + + basicGroupFullInfo(object_ptr &&photo_, string const &description_, int53 creator_user_id_, array> &&members_, bool can_hide_members_, bool can_toggle_aggressive_anti_spam_, object_ptr &&invite_link_, array> &&bot_commands_); + + static const std::int32_t ID = -1879035520; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class birthdate final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 day_; + int32 month_; + int32 year_; + + birthdate(); + + birthdate(int32 day_, int32 month_, int32 year_); + + static const std::int32_t ID = 1644064030; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BlockList: public Object { + public: +}; + +class blockListMain final : public BlockList { + std::int32_t get_id() const final { + return ID; + } + + public: + + blockListMain(); + + static const std::int32_t ID = 1352930172; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class blockListStories final : public BlockList { + std::int32_t get_id() const final { + return ID; + } + + public: + + blockListStories(); + + static const std::int32_t ID = 103323228; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommand final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string command_; + string description_; + + botCommand(); + + botCommand(string const &command_, string const &description_); + + static const std::int32_t ID = -1032140601; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotCommandScope: public Object { + public: +}; + +class botCommandScopeDefault final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + botCommandScopeDefault(); + + static const std::int32_t ID = 795652779; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllPrivateChats final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + botCommandScopeAllPrivateChats(); + + static const std::int32_t ID = -344889543; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllGroupChats final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + botCommandScopeAllGroupChats(); + + static const std::int32_t ID = -981088162; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllChatAdministrators final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + + botCommandScopeAllChatAdministrators(); + + static const std::int32_t ID = 1998329169; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChat final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + + botCommandScopeChat(); + + explicit botCommandScopeChat(int53 chat_id_); + + static const std::int32_t ID = -430234971; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChatAdministrators final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + + botCommandScopeChatAdministrators(); + + explicit botCommandScopeChatAdministrators(int53 chat_id_); + + static const std::int32_t ID = 1119682126; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChatMember final : public BotCommandScope { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + int53 user_id_; + + botCommandScopeChatMember(); + + botCommandScopeChatMember(int53 chat_id_, int53 user_id_); + + static const std::int32_t ID = -211380494; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommand; + +class botCommands final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + array> commands_; + + botCommands(); + + botCommands(int53 bot_user_id_, array> &&commands_); + + static const std::int32_t ID = 1741364468; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InternalLinkType; + +class affiliateProgramInfo; + +class animation; + +class botCommand; + +class botMenuButton; + +class botVerificationParameters; + +class chatAdministratorRights; + +class photo; + +class botInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string short_description_; + string description_; + object_ptr photo_; + object_ptr animation_; + object_ptr menu_button_; + array> commands_; + string privacy_policy_url_; + object_ptr default_group_administrator_rights_; + object_ptr default_channel_administrator_rights_; + object_ptr affiliate_program_; + int32 web_app_background_light_color_; + int32 web_app_background_dark_color_; + int32 web_app_header_light_color_; + int32 web_app_header_dark_color_; + object_ptr verification_parameters_; + bool can_get_revenue_statistics_; + bool can_manage_emoji_status_; + bool has_media_previews_; + object_ptr edit_commands_link_; + object_ptr edit_description_link_; + object_ptr edit_description_media_link_; + object_ptr edit_settings_link_; + + botInfo(); + + botInfo(string const &short_description_, string const &description_, object_ptr &&photo_, object_ptr &&animation_, object_ptr &&menu_button_, array> &&commands_, string const &privacy_policy_url_, object_ptr &&default_group_administrator_rights_, object_ptr &&default_channel_administrator_rights_, object_ptr &&affiliate_program_, int32 web_app_background_light_color_, int32 web_app_background_dark_color_, int32 web_app_header_light_color_, int32 web_app_header_dark_color_, object_ptr &&verification_parameters_, bool can_get_revenue_statistics_, bool can_manage_emoji_status_, bool has_media_previews_, object_ptr &&edit_commands_link_, object_ptr &&edit_description_link_, object_ptr &&edit_description_media_link_, object_ptr &&edit_settings_link_); + + static const std::int32_t ID = 1771886272; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StoryContent; + +class botMediaPreview final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 date_; + object_ptr content_; + + botMediaPreview(); + + botMediaPreview(int32 date_, object_ptr &&content_); + + static const std::int32_t ID = -1632264984; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMediaPreview; + +class botMediaPreviewInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> previews_; + array language_codes_; + + botMediaPreviewInfo(); + + botMediaPreviewInfo(array> &&previews_, array &&language_codes_); + + static const std::int32_t ID = -284783012; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMediaPreview; + +class botMediaPreviews final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> previews_; + + botMediaPreviews(); + + explicit botMediaPreviews(array> &&previews_); + + static const std::int32_t ID = -1787720586; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMenuButton final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + string url_; + + botMenuButton(); + + botMenuButton(string const &text_, string const &url_); + + static const std::int32_t ID = -944407322; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class botVerification final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + int64 icon_custom_emoji_id_; + object_ptr custom_description_; + + botVerification(); + + botVerification(int53 bot_user_id_, int64 icon_custom_emoji_id_, object_ptr &&custom_description_); + + static const std::int32_t ID = -1319061774; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class botVerificationParameters final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 icon_custom_emoji_id_; + string organization_name_; + object_ptr default_custom_description_; + bool can_set_custom_description_; + + botVerificationParameters(); + + botVerificationParameters(int64 icon_custom_emoji_id_, string const &organization_name_, object_ptr &&default_custom_description_, bool can_set_custom_description_); + + static const std::int32_t ID = -723737249; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webApp; + +class BotWriteAccessAllowReason: public Object { + public: +}; + +class botWriteAccessAllowReasonConnectedWebsite final : public BotWriteAccessAllowReason { + std::int32_t get_id() const final { + return ID; + } + + public: + string domain_name_; + + botWriteAccessAllowReasonConnectedWebsite(); + + explicit botWriteAccessAllowReasonConnectedWebsite(string const &domain_name_); + + static const std::int32_t ID = 2016325603; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botWriteAccessAllowReasonAddedToAttachmentMenu final : public BotWriteAccessAllowReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + botWriteAccessAllowReasonAddedToAttachmentMenu(); + + static const std::int32_t ID = -2104795235; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botWriteAccessAllowReasonLaunchedWebApp final : public BotWriteAccessAllowReason { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr web_app_; + + botWriteAccessAllowReasonLaunchedWebApp(); + + explicit botWriteAccessAllowReasonLaunchedWebApp(object_ptr &&web_app_); + + static const std::int32_t ID = -240843561; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botWriteAccessAllowReasonAcceptedRequest final : public BotWriteAccessAllowReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + botWriteAccessAllowReasonAcceptedRequest(); + + static const std::int32_t ID = -1983497220; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BusinessAwayMessageSchedule: public Object { + public: +}; + +class businessAwayMessageScheduleAlways final : public BusinessAwayMessageSchedule { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessAwayMessageScheduleAlways(); + + static const std::int32_t ID = -910564679; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessAwayMessageScheduleOutsideOfOpeningHours final : public BusinessAwayMessageSchedule { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessAwayMessageScheduleOutsideOfOpeningHours(); + + static const std::int32_t ID = -968630506; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessAwayMessageScheduleCustom final : public BusinessAwayMessageSchedule { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 start_date_; + int32 end_date_; + + businessAwayMessageScheduleCustom(); + + businessAwayMessageScheduleCustom(int32 start_date_, int32 end_date_); + + static const std::int32_t ID = -1967108654; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BusinessAwayMessageSchedule; + +class businessRecipients; + +class businessAwayMessageSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 shortcut_id_; + object_ptr recipients_; + object_ptr schedule_; + bool offline_only_; + + businessAwayMessageSettings(); + + businessAwayMessageSettings(int32 shortcut_id_, object_ptr &&recipients_, object_ptr &&schedule_, bool offline_only_); + + static const std::int32_t ID = 353084137; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessBotManageBar final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + string manage_url_; + bool is_bot_paused_; + bool can_bot_reply_; + + businessBotManageBar(); + + businessBotManageBar(int53 bot_user_id_, string const &manage_url_, bool is_bot_paused_, bool can_bot_reply_); + + static const std::int32_t ID = -311399806; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class businessChatLink final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string link_; + object_ptr text_; + string title_; + int32 view_count_; + + businessChatLink(); + + businessChatLink(string const &link_, object_ptr &&text_, string const &title_, int32 view_count_); + + static const std::int32_t ID = -1902539901; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class businessChatLinkInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + object_ptr text_; + + businessChatLinkInfo(); + + businessChatLinkInfo(int53 chat_id_, object_ptr &&text_); + + static const std::int32_t ID = -864865105; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessChatLink; + +class businessChatLinks final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> links_; + + businessChatLinks(); + + explicit businessChatLinks(array> &&links_); + + static const std::int32_t ID = 79067036; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessRecipients; + +class businessConnectedBot final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + object_ptr recipients_; + bool can_reply_; + + businessConnectedBot(); + + businessConnectedBot(int53 bot_user_id_, object_ptr &&recipients_, bool can_reply_); + + static const std::int32_t ID = -330241321; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessConnection final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + int53 user_id_; + int53 user_chat_id_; + int32 date_; + bool can_reply_; + bool is_enabled_; + + businessConnection(); + + businessConnection(string const &id_, int53 user_id_, int53 user_chat_id_, int32 date_, bool can_reply_, bool is_enabled_); + + static const std::int32_t ID = 1144447540; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BusinessFeature: public Object { + public: +}; + +class businessFeatureLocation final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureLocation(); + + static const std::int32_t ID = -1064304004; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureOpeningHours final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureOpeningHours(); + + static const std::int32_t ID = 461054701; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureQuickReplies final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureQuickReplies(); + + static const std::int32_t ID = -1674048894; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureGreetingMessage final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureGreetingMessage(); + + static const std::int32_t ID = 1789424756; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureAwayMessage final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureAwayMessage(); + + static const std::int32_t ID = 1090119901; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureAccountLinks final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureAccountLinks(); + + static const std::int32_t ID = 1878693646; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureStartPage final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureStartPage(); + + static const std::int32_t ID = 401471457; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureBots final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureBots(); + + static const std::int32_t ID = 275084773; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureEmojiStatus final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureEmojiStatus(); + + static const std::int32_t ID = -846282523; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureChatFolderTags final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureChatFolderTags(); + + static const std::int32_t ID = -543880918; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessFeatureUpgradedStories final : public BusinessFeature { + std::int32_t get_id() const final { + return ID; + } + + public: + + businessFeatureUpgradedStories(); + + static const std::int32_t ID = -1812245550; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BusinessFeature; + +class animation; + +class businessFeaturePromotionAnimation final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr feature_; + object_ptr animation_; + + businessFeaturePromotionAnimation(); + + businessFeaturePromotionAnimation(object_ptr &&feature_, object_ptr &&animation_); + + static const std::int32_t ID = 2047174666; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BusinessFeature; + +class businessFeatures final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> features_; + + businessFeatures(); + + explicit businessFeatures(array> &&features_); + + static const std::int32_t ID = -1532468184; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessRecipients; + +class businessGreetingMessageSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 shortcut_id_; + object_ptr recipients_; + int32 inactivity_days_; + + businessGreetingMessageSettings(); + + businessGreetingMessageSettings(int32 shortcut_id_, object_ptr &&recipients_, int32 inactivity_days_); + + static const std::int32_t ID = 1689140754; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessAwayMessageSettings; + +class businessGreetingMessageSettings; + +class businessLocation; + +class businessOpeningHours; + +class businessStartPage; + +class businessInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr location_; + object_ptr opening_hours_; + object_ptr local_opening_hours_; + int32 next_open_in_; + int32 next_close_in_; + object_ptr greeting_message_settings_; + object_ptr away_message_settings_; + object_ptr start_page_; + + businessInfo(); + + businessInfo(object_ptr &&location_, object_ptr &&opening_hours_, object_ptr &&local_opening_hours_, int32 next_open_in_, int32 next_close_in_, object_ptr &&greeting_message_settings_, object_ptr &&away_message_settings_, object_ptr &&start_page_); + + static const std::int32_t ID = 1428179342; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class location; + +class businessLocation final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr location_; + string address_; + + businessLocation(); + + businessLocation(object_ptr &&location_, string const &address_); + + static const std::int32_t ID = -1084969126; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message; + +class businessMessage final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr message_; + object_ptr reply_to_message_; + + businessMessage(); + + businessMessage(object_ptr &&message_, object_ptr &&reply_to_message_); + + static const std::int32_t ID = -94353850; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessMessage; + +class businessMessages final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> messages_; + + businessMessages(); + + explicit businessMessages(array> &&messages_); + + static const std::int32_t ID = -764562473; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessOpeningHoursInterval; + +class businessOpeningHours final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string time_zone_id_; + array> opening_hours_; + + businessOpeningHours(); + + businessOpeningHours(string const &time_zone_id_, array> &&opening_hours_); + + static const std::int32_t ID = 816603700; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessOpeningHoursInterval final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 start_minute_; + int32 end_minute_; + + businessOpeningHoursInterval(); + + businessOpeningHoursInterval(int32 start_minute_, int32 end_minute_); + + static const std::int32_t ID = -1108322732; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class businessRecipients final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array chat_ids_; + array excluded_chat_ids_; + bool select_existing_chats_; + bool select_new_chats_; + bool select_contacts_; + bool select_non_contacts_; + bool exclude_selected_; + + businessRecipients(); + + businessRecipients(array &&chat_ids_, array &&excluded_chat_ids_, bool select_existing_chats_, bool select_new_chats_, bool select_contacts_, bool select_non_contacts_, bool exclude_selected_); + + static const std::int32_t ID = 868656909; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sticker; + +class businessStartPage final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string title_; + string message_; + object_ptr sticker_; + + businessStartPage(); + + businessStartPage(string const &title_, string const &message_, object_ptr &&sticker_); + + static const std::int32_t ID = -1616709681; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallState; + +class call final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + int53 user_id_; + bool is_outgoing_; + bool is_video_; + object_ptr state_; + int32 group_call_id_; + + call(); + + call(int32 id_, int53 user_id_, bool is_outgoing_, bool is_video_, object_ptr &&state_, int32 group_call_id_); + + static const std::int32_t ID = -1643259734; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallDiscardReason: public Object { + public: +}; + +class callDiscardReasonEmpty final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + callDiscardReasonEmpty(); + + static const std::int32_t ID = -1258917949; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonMissed final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + callDiscardReasonMissed(); + + static const std::int32_t ID = 1680358012; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonDeclined final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + callDiscardReasonDeclined(); + + static const std::int32_t ID = -1729926094; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonDisconnected final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + callDiscardReasonDisconnected(); + + static const std::int32_t ID = -1342872670; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonHungUp final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + + callDiscardReasonHungUp(); + + static const std::int32_t ID = 438216166; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonAllowGroupCall final : public CallDiscardReason { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes encrypted_group_call_key_; + + callDiscardReasonAllowGroupCall(); + + explicit callDiscardReasonAllowGroupCall(bytes const &encrypted_group_call_key_); + + static const std::int32_t ID = -1357414443; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callId final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + + callId(); + + explicit callId(int32 id_); + + static const std::int32_t ID = 65717769; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallProblem: public Object { + public: +}; + +class callProblemEcho final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemEcho(); + + static const std::int32_t ID = 801116548; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemNoise final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemNoise(); + + static const std::int32_t ID = 1053065359; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemInterruptions final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemInterruptions(); + + static const std::int32_t ID = 1119493218; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDistortedSpeech final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemDistortedSpeech(); + + static const std::int32_t ID = 379960581; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemSilentLocal final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemSilentLocal(); + + static const std::int32_t ID = 253652790; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemSilentRemote final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemSilentRemote(); + + static const std::int32_t ID = 573634714; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDropped final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemDropped(); + + static const std::int32_t ID = -1207311487; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDistortedVideo final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemDistortedVideo(); + + static const std::int32_t ID = 385245706; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemPixelatedVideo final : public CallProblem { + std::int32_t get_id() const final { + return ID; + } + + public: + + callProblemPixelatedVideo(); + + static const std::int32_t ID = 2115315411; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProtocol final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool udp_p2p_; + bool udp_reflector_; + int32 min_layer_; + int32 max_layer_; + array library_versions_; + + callProtocol(); + + callProtocol(bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array &&library_versions_); + + static const std::int32_t ID = -1075562897; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallServerType; + +class callServer final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + string ip_address_; + string ipv6_address_; + int32 port_; + object_ptr type_; + + callServer(); + + callServer(int64 id_, string const &ip_address_, string const &ipv6_address_, int32 port_, object_ptr &&type_); + + static const std::int32_t ID = 1865932695; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallServerType: public Object { + public: +}; + +class callServerTypeTelegramReflector final : public CallServerType { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes peer_tag_; + bool is_tcp_; + + callServerTypeTelegramReflector(); + + callServerTypeTelegramReflector(bytes const &peer_tag_, bool is_tcp_); + + static const std::int32_t ID = 850343189; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callServerTypeWebrtc final : public CallServerType { + std::int32_t get_id() const final { + return ID; + } + + public: + string username_; + string password_; + bool supports_turn_; + bool supports_stun_; + + callServerTypeWebrtc(); + + callServerTypeWebrtc(string const &username_, string const &password_, bool supports_turn_, bool supports_stun_); + + static const std::int32_t ID = 1250622821; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallDiscardReason; + +class callProtocol; + +class callServer; + +class error; + +class CallState: public Object { + public: +}; + +class callStatePending final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_created_; + bool is_received_; + + callStatePending(); + + callStatePending(bool is_created_, bool is_received_); + + static const std::int32_t ID = 1073048620; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateExchangingKeys final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + + callStateExchangingKeys(); + + static const std::int32_t ID = -1848149403; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateReady final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr protocol_; + array> servers_; + string config_; + bytes encryption_key_; + array emojis_; + bool allow_p2p_; + string custom_parameters_; + + callStateReady(); + + callStateReady(object_ptr &&protocol_, array> &&servers_, string const &config_, bytes const &encryption_key_, array &&emojis_, bool allow_p2p_, string const &custom_parameters_); + + static const std::int32_t ID = 731619651; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateHangingUp final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + + callStateHangingUp(); + + static const std::int32_t ID = -2133790038; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateDiscarded final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr reason_; + bool need_rating_; + bool need_debug_information_; + bool need_log_; + + callStateDiscarded(); + + callStateDiscarded(object_ptr &&reason_, bool need_rating_, bool need_debug_information_, bool need_log_); + + static const std::int32_t ID = 1394310213; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateError final : public CallState { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr error_; + + callStateError(); + + explicit callStateError(object_ptr &&error_); + + static const std::int32_t ID = -975215467; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryAnswer final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + bool show_alert_; + string url_; + + callbackQueryAnswer(); + + callbackQueryAnswer(string const &text_, bool show_alert_, string const &url_); + + static const std::int32_t ID = 360867933; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallbackQueryPayload: public Object { + public: +}; + +class callbackQueryPayloadData final : public CallbackQueryPayload { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes data_; + + callbackQueryPayloadData(); + + explicit callbackQueryPayloadData(bytes const &data_); + + static const std::int32_t ID = -1977729946; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryPayloadDataWithPassword final : public CallbackQueryPayload { + std::int32_t get_id() const final { + return ID; + } + + public: + string password_; + bytes data_; + + callbackQueryPayloadDataWithPassword(); + + callbackQueryPayloadDataWithPassword(string const &password_, bytes const &data_); + + static const std::int32_t ID = 1340266738; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryPayloadGame final : public CallbackQueryPayload { + std::int32_t get_id() const final { + return ID; + } + + public: + string game_short_name_; + + callbackQueryPayloadGame(); + + explicit callbackQueryPayloadGame(string const &game_short_name_); + + static const std::int32_t ID = 1303571512; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CanSendMessageToUserResult: public Object { + public: +}; + +class canSendMessageToUserResultOk final : public CanSendMessageToUserResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendMessageToUserResultOk(); + + static const std::int32_t ID = 1530583042; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendMessageToUserResultUserHasPaidMessages final : public CanSendMessageToUserResult { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 outgoing_paid_message_star_count_; + + canSendMessageToUserResultUserHasPaidMessages(); + + explicit canSendMessageToUserResultUserHasPaidMessages(int53 outgoing_paid_message_star_count_); + + static const std::int32_t ID = -1346487602; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendMessageToUserResultUserIsDeleted final : public CanSendMessageToUserResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendMessageToUserResultUserIsDeleted(); + + static const std::int32_t ID = -1944639903; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendMessageToUserResultUserRestrictsNewChats final : public CanSendMessageToUserResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendMessageToUserResultUserRestrictsNewChats(); + + static const std::int32_t ID = 1929699797; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CanSendStoryResult: public Object { + public: +}; + +class canSendStoryResultOk final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendStoryResultOk(); + + static const std::int32_t ID = 1346171133; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendStoryResultPremiumNeeded final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendStoryResultPremiumNeeded(); + + static const std::int32_t ID = 1451220585; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendStoryResultBoostNeeded final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendStoryResultBoostNeeded(); + + static const std::int32_t ID = -1637816017; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendStoryResultActiveStoryLimitExceeded final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canSendStoryResultActiveStoryLimitExceeded(); + + static const std::int32_t ID = -1344689450; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendStoryResultWeeklyLimitExceeded final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 retry_after_; + + canSendStoryResultWeeklyLimitExceeded(); + + explicit canSendStoryResultWeeklyLimitExceeded(int32 retry_after_); + + static const std::int32_t ID = 323068088; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canSendStoryResultMonthlyLimitExceeded final : public CanSendStoryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 retry_after_; + + canSendStoryResultMonthlyLimitExceeded(); + + explicit canSendStoryResultMonthlyLimitExceeded(int32 retry_after_); + + static const std::int32_t ID = -578665771; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CanTransferOwnershipResult: public Object { + public: +}; + +class canTransferOwnershipResultOk final : public CanTransferOwnershipResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canTransferOwnershipResultOk(); + + static const std::int32_t ID = -89881021; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultPasswordNeeded final : public CanTransferOwnershipResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + canTransferOwnershipResultPasswordNeeded(); + + static const std::int32_t ID = 1548372703; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultPasswordTooFresh final : public CanTransferOwnershipResult { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 retry_after_; + + canTransferOwnershipResultPasswordTooFresh(); + + explicit canTransferOwnershipResultPasswordTooFresh(int32 retry_after_); + + static const std::int32_t ID = 811440913; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultSessionTooFresh final : public CanTransferOwnershipResult { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 retry_after_; + + canTransferOwnershipResultSessionTooFresh(); + + explicit canTransferOwnershipResultSessionTooFresh(int32 retry_after_); + + static const std::int32_t ID = 984664289; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BlockList; + +class ChatActionBar; + +class ChatAvailableReactions; + +class ChatList; + +class ChatType; + +class MessageSender; + +class businessBotManageBar; + +class chatBackground; + +class chatJoinRequestsInfo; + +class chatNotificationSettings; + +class chatPermissions; + +class chatPhotoInfo; + +class chatPosition; + +class draftMessage; + +class emojiStatus; + +class message; + +class videoChat; + +class chat final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 id_; + object_ptr type_; + string title_; + object_ptr photo_; + int32 accent_color_id_; + int64 background_custom_emoji_id_; + int32 profile_accent_color_id_; + int64 profile_background_custom_emoji_id_; + object_ptr permissions_; + object_ptr last_message_; + array> positions_; + array> chat_lists_; + object_ptr message_sender_id_; + object_ptr block_list_; + bool has_protected_content_; + bool is_translatable_; + bool is_marked_as_unread_; + bool view_as_topics_; + bool has_scheduled_messages_; + bool can_be_deleted_only_for_self_; + bool can_be_deleted_for_all_users_; + bool can_be_reported_; + bool default_disable_notification_; + int32 unread_count_; + int53 last_read_inbox_message_id_; + int53 last_read_outbox_message_id_; + int32 unread_mention_count_; + int32 unread_reaction_count_; + object_ptr notification_settings_; + object_ptr available_reactions_; + int32 message_auto_delete_time_; + object_ptr emoji_status_; + object_ptr background_; + string theme_name_; + object_ptr action_bar_; + object_ptr business_bot_manage_bar_; + object_ptr video_chat_; + object_ptr pending_join_requests_; + int53 reply_markup_message_id_; + object_ptr draft_message_; + string client_data_; + + chat(); + + chat(int53 id_, object_ptr &&type_, string const &title_, object_ptr &&photo_, int32 accent_color_id_, int64 background_custom_emoji_id_, int32 profile_accent_color_id_, int64 profile_background_custom_emoji_id_, object_ptr &&permissions_, object_ptr &&last_message_, array> &&positions_, array> &&chat_lists_, object_ptr &&message_sender_id_, object_ptr &&block_list_, bool has_protected_content_, bool is_translatable_, bool is_marked_as_unread_, bool view_as_topics_, bool has_scheduled_messages_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_be_reported_, bool default_disable_notification_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr &¬ification_settings_, object_ptr &&available_reactions_, int32 message_auto_delete_time_, object_ptr &&emoji_status_, object_ptr &&background_, string const &theme_name_, object_ptr &&action_bar_, object_ptr &&business_bot_manage_bar_, object_ptr &&video_chat_, object_ptr &&pending_join_requests_, int53 reply_markup_message_id_, object_ptr &&draft_message_, string const &client_data_); + + static const std::int32_t ID = 830601369; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatAction: public Object { + public: +}; + +class chatActionTyping final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionTyping(); + + static const std::int32_t ID = 380122167; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVideo final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionRecordingVideo(); + + static const std::int32_t ID = 216553362; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVideo final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 progress_; + + chatActionUploadingVideo(); + + explicit chatActionUploadingVideo(int32 progress_); + + static const std::int32_t ID = 1234185270; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVoiceNote final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionRecordingVoiceNote(); + + static const std::int32_t ID = -808850058; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVoiceNote final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 progress_; + + chatActionUploadingVoiceNote(); + + explicit chatActionUploadingVoiceNote(int32 progress_); + + static const std::int32_t ID = -613643666; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingPhoto final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 progress_; + + chatActionUploadingPhoto(); + + explicit chatActionUploadingPhoto(int32 progress_); + + static const std::int32_t ID = 654240583; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingDocument final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 progress_; + + chatActionUploadingDocument(); + + explicit chatActionUploadingDocument(int32 progress_); + + static const std::int32_t ID = 167884362; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingSticker final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionChoosingSticker(); + + static const std::int32_t ID = 372753697; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingLocation final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionChoosingLocation(); + + static const std::int32_t ID = -2017893596; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingContact final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionChoosingContact(); + + static const std::int32_t ID = -1222507496; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionStartPlayingGame final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionStartPlayingGame(); + + static const std::int32_t ID = -865884164; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVideoNote final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionRecordingVideoNote(); + + static const std::int32_t ID = 16523393; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVideoNote final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 progress_; + + chatActionUploadingVideoNote(); + + explicit chatActionUploadingVideoNote(int32 progress_); + + static const std::int32_t ID = 1172364918; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionWatchingAnimations final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + string emoji_; + + chatActionWatchingAnimations(); + + explicit chatActionWatchingAnimations(string const &emoji_); + + static const std::int32_t ID = 2052990641; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionCancel final : public ChatAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionCancel(); + + static const std::int32_t ID = 1160523958; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class accountInfo; + +class ChatActionBar: public Object { + public: +}; + +class chatActionBarReportSpam final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + bool can_unarchive_; + + chatActionBarReportSpam(); + + explicit chatActionBarReportSpam(bool can_unarchive_); + + static const std::int32_t ID = -1312758246; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarInviteMembers final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionBarInviteMembers(); + + static const std::int32_t ID = 1985313904; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarReportAddBlock final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + bool can_unarchive_; + object_ptr account_info_; + + chatActionBarReportAddBlock(); + + chatActionBarReportAddBlock(bool can_unarchive_, object_ptr &&account_info_); + + static const std::int32_t ID = -1476817269; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarAddContact final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionBarAddContact(); + + static const std::int32_t ID = -733325295; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarSharePhoneNumber final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatActionBarSharePhoneNumber(); + + static const std::int32_t ID = 35188697; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarJoinRequest final : public ChatActionBar { + std::int32_t get_id() const final { + return ID; + } + + public: + string title_; + bool is_channel_; + int32 request_date_; + + chatActionBarJoinRequest(); + + chatActionBarJoinRequest(string const &title_, bool is_channel_, int32 request_date_); + + static const std::int32_t ID = 1037140744; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StoryList; + +class storyInfo; + +class chatActiveStories final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + object_ptr list_; + int53 order_; + int32 max_read_story_id_; + array> stories_; + + chatActiveStories(); + + chatActiveStories(int53 chat_id_, object_ptr &&list_, int53 order_, int32 max_read_story_id_, array> &&stories_); + + static const std::int32_t ID = -1398869529; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministrator final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + string custom_title_; + bool is_owner_; + + chatAdministrator(); + + chatAdministrator(int53 user_id_, string const &custom_title_, bool is_owner_); + + static const std::int32_t ID = 1920449836; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministratorRights final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool can_manage_chat_; + bool can_change_info_; + bool can_post_messages_; + bool can_edit_messages_; + bool can_delete_messages_; + bool can_invite_users_; + bool can_restrict_members_; + bool can_pin_messages_; + bool can_manage_topics_; + bool can_promote_members_; + bool can_manage_video_chats_; + bool can_post_stories_; + bool can_edit_stories_; + bool can_delete_stories_; + bool is_anonymous_; + + chatAdministratorRights(); + + chatAdministratorRights(bool can_manage_chat_, bool can_change_info_, bool can_post_messages_, bool can_edit_messages_, bool can_delete_messages_, bool can_invite_users_, bool can_restrict_members_, bool can_pin_messages_, bool can_manage_topics_, bool can_promote_members_, bool can_manage_video_chats_, bool can_post_stories_, bool can_edit_stories_, bool can_delete_stories_, bool is_anonymous_); + + static const std::int32_t ID = 1599049796; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministrator; + +class chatAdministrators final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> administrators_; + + chatAdministrators(); + + explicit chatAdministrators(array> &&administrators_); + + static const std::int32_t ID = -2126186435; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReactionType; + +class ChatAvailableReactions: public Object { + public: +}; + +class chatAvailableReactionsAll final : public ChatAvailableReactions { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 max_reaction_count_; + + chatAvailableReactionsAll(); + + explicit chatAvailableReactionsAll(int32 max_reaction_count_); + + static const std::int32_t ID = 694160279; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAvailableReactionsSome final : public ChatAvailableReactions { + std::int32_t get_id() const final { + return ID; + } + + public: + array> reactions_; + int32 max_reaction_count_; + + chatAvailableReactionsSome(); + + chatAvailableReactionsSome(array> &&reactions_, int32 max_reaction_count_); + + static const std::int32_t ID = 152513153; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class background; + +class chatBackground final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr background_; + int32 dark_theme_dimming_; + + chatBackground(); + + chatBackground(object_ptr &&background_, int32 dark_theme_dimming_); + + static const std::int32_t ID = 1653152104; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatBoostSource; + +class chatBoost final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + int32 count_; + object_ptr source_; + int32 start_date_; + int32 expiration_date_; + + chatBoost(); + + chatBoost(string const &id_, int32 count_, object_ptr &&source_, int32 start_date_, int32 expiration_date_); + + static const std::int32_t ID = -1765815118; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostLevelFeatures; + +class chatBoostFeatures final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> features_; + int32 min_profile_background_custom_emoji_boost_level_; + int32 min_background_custom_emoji_boost_level_; + int32 min_emoji_status_boost_level_; + int32 min_chat_theme_background_boost_level_; + int32 min_custom_background_boost_level_; + int32 min_custom_emoji_sticker_set_boost_level_; + int32 min_speech_recognition_boost_level_; + int32 min_sponsored_message_disable_boost_level_; + + chatBoostFeatures(); + + chatBoostFeatures(array> &&features_, int32 min_profile_background_custom_emoji_boost_level_, int32 min_background_custom_emoji_boost_level_, int32 min_emoji_status_boost_level_, int32 min_chat_theme_background_boost_level_, int32 min_custom_background_boost_level_, int32 min_custom_emoji_sticker_set_boost_level_, int32 min_speech_recognition_boost_level_, int32 min_sponsored_message_disable_boost_level_); + + static const std::int32_t ID = 866182642; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostLevelFeatures final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 level_; + int32 story_per_day_count_; + int32 custom_emoji_reaction_count_; + int32 title_color_count_; + int32 profile_accent_color_count_; + bool can_set_profile_background_custom_emoji_; + int32 accent_color_count_; + bool can_set_background_custom_emoji_; + bool can_set_emoji_status_; + int32 chat_theme_background_count_; + bool can_set_custom_background_; + bool can_set_custom_emoji_sticker_set_; + bool can_recognize_speech_; + bool can_disable_sponsored_messages_; + + chatBoostLevelFeatures(); + + chatBoostLevelFeatures(int32 level_, int32 story_per_day_count_, int32 custom_emoji_reaction_count_, int32 title_color_count_, int32 profile_accent_color_count_, bool can_set_profile_background_custom_emoji_, int32 accent_color_count_, bool can_set_background_custom_emoji_, bool can_set_emoji_status_, int32 chat_theme_background_count_, bool can_set_custom_background_, bool can_set_custom_emoji_sticker_set_, bool can_recognize_speech_, bool can_disable_sponsored_messages_); + + static const std::int32_t ID = -189458156; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostLink final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string link_; + bool is_public_; + + chatBoostLink(); + + chatBoostLink(string const &link_, bool is_public_); + + static const std::int32_t ID = -1253999503; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostLinkInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_public_; + int53 chat_id_; + + chatBoostLinkInfo(); + + chatBoostLinkInfo(bool is_public_, int53 chat_id_); + + static const std::int32_t ID = -602785660; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostSlot final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 slot_id_; + int53 currently_boosted_chat_id_; + int32 start_date_; + int32 expiration_date_; + int32 cooldown_until_date_; + + chatBoostSlot(); + + chatBoostSlot(int32 slot_id_, int53 currently_boosted_chat_id_, int32 start_date_, int32 expiration_date_, int32 cooldown_until_date_); + + static const std::int32_t ID = 123206343; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostSlot; + +class chatBoostSlots final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> slots_; + + chatBoostSlots(); + + explicit chatBoostSlots(array> &&slots_); + + static const std::int32_t ID = 1014966293; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatBoostSource: public Object { + public: +}; + +class chatBoostSourceGiftCode final : public ChatBoostSource { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + string gift_code_; + + chatBoostSourceGiftCode(); + + chatBoostSourceGiftCode(int53 user_id_, string const &gift_code_); + + static const std::int32_t ID = -98299206; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostSourceGiveaway final : public ChatBoostSource { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + string gift_code_; + int53 star_count_; + int53 giveaway_message_id_; + bool is_unclaimed_; + + chatBoostSourceGiveaway(); + + chatBoostSourceGiveaway(int53 user_id_, string const &gift_code_, int53 star_count_, int53 giveaway_message_id_, bool is_unclaimed_); + + static const std::int32_t ID = 1918145690; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoostSourcePremium final : public ChatBoostSource { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + + chatBoostSourcePremium(); + + explicit chatBoostSourcePremium(int53 user_id_); + + static const std::int32_t ID = 972011; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class prepaidGiveaway; + +class chatBoostStatus final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string boost_url_; + array applied_slot_ids_; + int32 level_; + int32 gift_code_boost_count_; + int32 boost_count_; + int32 current_level_boost_count_; + int32 next_level_boost_count_; + int32 premium_member_count_; + double premium_member_percentage_; + array> prepaid_giveaways_; + + chatBoostStatus(); + + chatBoostStatus(string const &boost_url_, array &&applied_slot_ids_, int32 level_, int32 gift_code_boost_count_, int32 boost_count_, int32 current_level_boost_count_, int32 next_level_boost_count_, int32 premium_member_count_, double premium_member_percentage_, array> &&prepaid_giveaways_); + + static const std::int32_t ID = -1050332618; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatEventAction; + +class MessageSender; + +class chatEvent final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + int32 date_; + object_ptr member_id_; + object_ptr action_; + + chatEvent(); + + chatEvent(int64 id_, int32 date_, object_ptr &&member_id_, object_ptr &&action_); + + static const std::int32_t ID = -652102704; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatAvailableReactions; + +class ChatMemberStatus; + +class MessageSender; + +class chatBackground; + +class chatInviteLink; + +class chatLocation; + +class chatPermissions; + +class chatPhoto; + +class emojiStatus; + +class forumTopicInfo; + +class message; + +class ChatEventAction: public Object { + public: +}; + +class chatEventMessageEdited final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_message_; + object_ptr new_message_; + + chatEventMessageEdited(); + + chatEventMessageEdited(object_ptr &&old_message_, object_ptr &&new_message_); + + static const std::int32_t ID = -430967304; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageDeleted final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr message_; + bool can_report_anti_spam_false_positive_; + + chatEventMessageDeleted(); + + chatEventMessageDeleted(object_ptr &&message_, bool can_report_anti_spam_false_positive_); + + static const std::int32_t ID = 935316851; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessagePinned final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr message_; + + chatEventMessagePinned(); + + explicit chatEventMessagePinned(object_ptr &&message_); + + static const std::int32_t ID = 438742298; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageUnpinned final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr message_; + + chatEventMessageUnpinned(); + + explicit chatEventMessageUnpinned(object_ptr &&message_); + + static const std::int32_t ID = -376161513; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPollStopped final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr message_; + + chatEventPollStopped(); + + explicit chatEventPollStopped(object_ptr &&message_); + + static const std::int32_t ID = 2009893861; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoined final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatEventMemberJoined(); + + static const std::int32_t ID = -235468508; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoinedByInviteLink final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr invite_link_; + bool via_chat_folder_invite_link_; + + chatEventMemberJoinedByInviteLink(); + + chatEventMemberJoinedByInviteLink(object_ptr &&invite_link_, bool via_chat_folder_invite_link_); + + static const std::int32_t ID = -1445536390; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoinedByRequest final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 approver_user_id_; + object_ptr invite_link_; + + chatEventMemberJoinedByRequest(); + + chatEventMemberJoinedByRequest(int53 approver_user_id_, object_ptr &&invite_link_); + + static const std::int32_t ID = -1647804865; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberInvited final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + object_ptr status_; + + chatEventMemberInvited(); + + chatEventMemberInvited(int53 user_id_, object_ptr &&status_); + + static const std::int32_t ID = 953663433; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberLeft final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatEventMemberLeft(); + + static const std::int32_t ID = -948420593; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberPromoted final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + object_ptr old_status_; + object_ptr new_status_; + + chatEventMemberPromoted(); + + chatEventMemberPromoted(int53 user_id_, object_ptr &&old_status_, object_ptr &&new_status_); + + static const std::int32_t ID = 525297761; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberRestricted final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr member_id_; + object_ptr old_status_; + object_ptr new_status_; + + chatEventMemberRestricted(); + + chatEventMemberRestricted(object_ptr &&member_id_, object_ptr &&old_status_, object_ptr &&new_status_); + + static const std::int32_t ID = 1603608069; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberSubscriptionExtended final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + object_ptr old_status_; + object_ptr new_status_; + + chatEventMemberSubscriptionExtended(); + + chatEventMemberSubscriptionExtended(int53 user_id_, object_ptr &&old_status_, object_ptr &&new_status_); + + static const std::int32_t ID = -1141198846; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventAvailableReactionsChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_available_reactions_; + object_ptr new_available_reactions_; + + chatEventAvailableReactionsChanged(); + + chatEventAvailableReactionsChanged(object_ptr &&old_available_reactions_, object_ptr &&new_available_reactions_); + + static const std::int32_t ID = -1749491521; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventBackgroundChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_background_; + object_ptr new_background_; + + chatEventBackgroundChanged(); + + chatEventBackgroundChanged(object_ptr &&old_background_, object_ptr &&new_background_); + + static const std::int32_t ID = -1225953992; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventDescriptionChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + string old_description_; + string new_description_; + + chatEventDescriptionChanged(); + + chatEventDescriptionChanged(string const &old_description_, string const &new_description_); + + static const std::int32_t ID = 39112478; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventEmojiStatusChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_emoji_status_; + object_ptr new_emoji_status_; + + chatEventEmojiStatusChanged(); + + chatEventEmojiStatusChanged(object_ptr &&old_emoji_status_, object_ptr &&new_emoji_status_); + + static const std::int32_t ID = -2081850594; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLinkedChatChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 old_linked_chat_id_; + int53 new_linked_chat_id_; + + chatEventLinkedChatChanged(); + + chatEventLinkedChatChanged(int53 old_linked_chat_id_, int53 new_linked_chat_id_); + + static const std::int32_t ID = 1797419439; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLocationChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_location_; + object_ptr new_location_; + + chatEventLocationChanged(); + + chatEventLocationChanged(object_ptr &&old_location_, object_ptr &&new_location_); + + static const std::int32_t ID = -405930674; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageAutoDeleteTimeChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 old_message_auto_delete_time_; + int32 new_message_auto_delete_time_; + + chatEventMessageAutoDeleteTimeChanged(); + + chatEventMessageAutoDeleteTimeChanged(int32 old_message_auto_delete_time_, int32 new_message_auto_delete_time_); + + static const std::int32_t ID = 17317668; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPermissionsChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_permissions_; + object_ptr new_permissions_; + + chatEventPermissionsChanged(); + + chatEventPermissionsChanged(object_ptr &&old_permissions_, object_ptr &&new_permissions_); + + static const std::int32_t ID = -1311557720; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPhotoChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_photo_; + object_ptr new_photo_; + + chatEventPhotoChanged(); + + chatEventPhotoChanged(object_ptr &&old_photo_, object_ptr &&new_photo_); + + static const std::int32_t ID = -811572541; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventSlowModeDelayChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 old_slow_mode_delay_; + int32 new_slow_mode_delay_; + + chatEventSlowModeDelayChanged(); + + chatEventSlowModeDelayChanged(int32 old_slow_mode_delay_, int32 new_slow_mode_delay_); + + static const std::int32_t ID = -1653195765; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventStickerSetChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 old_sticker_set_id_; + int64 new_sticker_set_id_; + + chatEventStickerSetChanged(); + + chatEventStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_); + + static const std::int32_t ID = -1243130481; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventCustomEmojiStickerSetChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 old_sticker_set_id_; + int64 new_sticker_set_id_; + + chatEventCustomEmojiStickerSetChanged(); + + chatEventCustomEmojiStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_); + + static const std::int32_t ID = 118244123; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventTitleChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + string old_title_; + string new_title_; + + chatEventTitleChanged(); + + chatEventTitleChanged(string const &old_title_, string const &new_title_); + + static const std::int32_t ID = 1134103250; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventUsernameChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + string old_username_; + string new_username_; + + chatEventUsernameChanged(); + + chatEventUsernameChanged(string const &old_username_, string const &new_username_); + + static const std::int32_t ID = 1728558443; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventActiveUsernamesChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + array old_usernames_; + array new_usernames_; + + chatEventActiveUsernamesChanged(); + + chatEventActiveUsernamesChanged(array &&old_usernames_, array &&new_usernames_); + + static const std::int32_t ID = -1508790810; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventAccentColorChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 old_accent_color_id_; + int64 old_background_custom_emoji_id_; + int32 new_accent_color_id_; + int64 new_background_custom_emoji_id_; + + chatEventAccentColorChanged(); + + chatEventAccentColorChanged(int32 old_accent_color_id_, int64 old_background_custom_emoji_id_, int32 new_accent_color_id_, int64 new_background_custom_emoji_id_); + + static const std::int32_t ID = -427591885; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventProfileAccentColorChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 old_profile_accent_color_id_; + int64 old_profile_background_custom_emoji_id_; + int32 new_profile_accent_color_id_; + int64 new_profile_background_custom_emoji_id_; + + chatEventProfileAccentColorChanged(); + + chatEventProfileAccentColorChanged(int32 old_profile_accent_color_id_, int64 old_profile_background_custom_emoji_id_, int32 new_profile_accent_color_id_, int64 new_profile_background_custom_emoji_id_); + + static const std::int32_t ID = -1514612124; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventHasProtectedContentToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool has_protected_content_; + + chatEventHasProtectedContentToggled(); + + explicit chatEventHasProtectedContentToggled(bool has_protected_content_); + + static const std::int32_t ID = -184270335; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInvitesToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool can_invite_users_; + + chatEventInvitesToggled(); + + explicit chatEventInvitesToggled(bool can_invite_users_); + + static const std::int32_t ID = -62548373; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventIsAllHistoryAvailableToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_all_history_available_; + + chatEventIsAllHistoryAvailableToggled(); + + explicit chatEventIsAllHistoryAvailableToggled(bool is_all_history_available_); + + static const std::int32_t ID = -1599063019; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventHasAggressiveAntiSpamEnabledToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool has_aggressive_anti_spam_enabled_; + + chatEventHasAggressiveAntiSpamEnabledToggled(); + + explicit chatEventHasAggressiveAntiSpamEnabledToggled(bool has_aggressive_anti_spam_enabled_); + + static const std::int32_t ID = -125348094; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventSignMessagesToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool sign_messages_; + + chatEventSignMessagesToggled(); + + explicit chatEventSignMessagesToggled(bool sign_messages_); + + static const std::int32_t ID = -1313265634; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventShowMessageSenderToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool show_message_sender_; + + chatEventShowMessageSenderToggled(); + + explicit chatEventShowMessageSenderToggled(bool show_message_sender_); + + static const std::int32_t ID = -794343453; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkEdited final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_invite_link_; + object_ptr new_invite_link_; + + chatEventInviteLinkEdited(); + + chatEventInviteLinkEdited(object_ptr &&old_invite_link_, object_ptr &&new_invite_link_); + + static const std::int32_t ID = -460190366; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkRevoked final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr invite_link_; + + chatEventInviteLinkRevoked(); + + explicit chatEventInviteLinkRevoked(object_ptr &&invite_link_); + + static const std::int32_t ID = -1579417629; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkDeleted final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr invite_link_; + + chatEventInviteLinkDeleted(); + + explicit chatEventInviteLinkDeleted(object_ptr &&invite_link_); + + static const std::int32_t ID = -1394974361; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatCreated final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 group_call_id_; + + chatEventVideoChatCreated(); + + explicit chatEventVideoChatCreated(int32 group_call_id_); + + static const std::int32_t ID = 1822853755; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatEnded final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 group_call_id_; + + chatEventVideoChatEnded(); + + explicit chatEventVideoChatEnded(int32 group_call_id_); + + static const std::int32_t ID = 1630039112; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatMuteNewParticipantsToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool mute_new_participants_; + + chatEventVideoChatMuteNewParticipantsToggled(); + + explicit chatEventVideoChatMuteNewParticipantsToggled(bool mute_new_participants_); + + static const std::int32_t ID = -126547970; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatParticipantIsMutedToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr participant_id_; + bool is_muted_; + + chatEventVideoChatParticipantIsMutedToggled(); + + chatEventVideoChatParticipantIsMutedToggled(object_ptr &&participant_id_, bool is_muted_); + + static const std::int32_t ID = 521165047; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatParticipantVolumeLevelChanged final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr participant_id_; + int32 volume_level_; + + chatEventVideoChatParticipantVolumeLevelChanged(); + + chatEventVideoChatParticipantVolumeLevelChanged(object_ptr &&participant_id_, int32 volume_level_); + + static const std::int32_t ID = 1131385534; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventIsForumToggled final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_forum_; + + chatEventIsForumToggled(); + + explicit chatEventIsForumToggled(bool is_forum_); + + static const std::int32_t ID = 1516491033; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicCreated final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr topic_info_; + + chatEventForumTopicCreated(); + + explicit chatEventForumTopicCreated(object_ptr &&topic_info_); + + static const std::int32_t ID = 2005269314; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicEdited final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_topic_info_; + object_ptr new_topic_info_; + + chatEventForumTopicEdited(); + + chatEventForumTopicEdited(object_ptr &&old_topic_info_, object_ptr &&new_topic_info_); + + static const std::int32_t ID = 1624910860; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicToggleIsClosed final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr topic_info_; + + chatEventForumTopicToggleIsClosed(); + + explicit chatEventForumTopicToggleIsClosed(object_ptr &&topic_info_); + + static const std::int32_t ID = -962704070; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicToggleIsHidden final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr topic_info_; + + chatEventForumTopicToggleIsHidden(); + + explicit chatEventForumTopicToggleIsHidden(object_ptr &&topic_info_); + + static const std::int32_t ID = -1609175250; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicDeleted final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr topic_info_; + + chatEventForumTopicDeleted(); + + explicit chatEventForumTopicDeleted(object_ptr &&topic_info_); + + static const std::int32_t ID = -1332795123; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicPinned final : public ChatEventAction { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr old_topic_info_; + object_ptr new_topic_info_; + + chatEventForumTopicPinned(); + + chatEventForumTopicPinned(object_ptr &&old_topic_info_, object_ptr &&new_topic_info_); + + static const std::int32_t ID = 2143626222; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLogFilters final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool message_edits_; + bool message_deletions_; + bool message_pins_; + bool member_joins_; + bool member_leaves_; + bool member_invites_; + bool member_promotions_; + bool member_restrictions_; + bool info_changes_; + bool setting_changes_; + bool invite_link_changes_; + bool video_chat_changes_; + bool forum_changes_; + bool subscription_extensions_; + + chatEventLogFilters(); + + chatEventLogFilters(bool message_edits_, bool message_deletions_, bool message_pins_, bool member_joins_, bool member_leaves_, bool member_invites_, bool member_promotions_, bool member_restrictions_, bool info_changes_, bool setting_changes_, bool invite_link_changes_, bool video_chat_changes_, bool forum_changes_, bool subscription_extensions_); + + static const std::int32_t ID = -1032965711; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEvent; + +class chatEvents final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> events_; + + chatEvents(); + + explicit chatEvents(array> &&events_); + + static const std::int32_t ID = -585329664; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderIcon; + +class chatFolderName; + +class chatFolder final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr name_; + object_ptr icon_; + int32 color_id_; + bool is_shareable_; + array pinned_chat_ids_; + array included_chat_ids_; + array excluded_chat_ids_; + bool exclude_muted_; + bool exclude_read_; + bool exclude_archived_; + bool include_contacts_; + bool include_non_contacts_; + bool include_bots_; + bool include_groups_; + bool include_channels_; + + chatFolder(); + + chatFolder(object_ptr &&name_, object_ptr &&icon_, int32 color_id_, bool is_shareable_, array &&pinned_chat_ids_, array &&included_chat_ids_, array &&excluded_chat_ids_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, bool include_contacts_, bool include_non_contacts_, bool include_bots_, bool include_groups_, bool include_channels_); + + static const std::int32_t ID = 1596164696; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderIcon final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string name_; + + chatFolderIcon(); + + explicit chatFolderIcon(string const &name_); + + static const std::int32_t ID = -146104090; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderIcon; + +class chatFolderName; + +class chatFolderInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + object_ptr name_; + object_ptr icon_; + int32 color_id_; + bool is_shareable_; + bool has_my_invite_links_; + + chatFolderInfo(); + + chatFolderInfo(int32 id_, object_ptr &&name_, object_ptr &&icon_, int32 color_id_, bool is_shareable_, bool has_my_invite_links_); + + static const std::int32_t ID = 815535117; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderInviteLink final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string invite_link_; + string name_; + array chat_ids_; + + chatFolderInviteLink(); + + chatFolderInviteLink(string const &invite_link_, string const &name_, array &&chat_ids_); + + static const std::int32_t ID = 493969661; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderInfo; + +class chatFolderInviteLinkInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr chat_folder_info_; + array missing_chat_ids_; + array added_chat_ids_; + + chatFolderInviteLinkInfo(); + + chatFolderInviteLinkInfo(object_ptr &&chat_folder_info_, array &&missing_chat_ids_, array &&added_chat_ids_); + + static const std::int32_t ID = 1119450395; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFolderInviteLink; + +class chatFolderInviteLinks final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> invite_links_; + + chatFolderInviteLinks(); + + explicit chatFolderInviteLinks(array> &&invite_links_); + + static const std::int32_t ID = 1853351525; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class chatFolderName final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr text_; + bool animate_custom_emoji_; + + chatFolderName(); + + chatFolderName(object_ptr &&text_, bool animate_custom_emoji_); + + static const std::int32_t ID = -330482274; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class starSubscriptionPricing; + +class chatInviteLink final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string invite_link_; + string name_; + int53 creator_user_id_; + int32 date_; + int32 edit_date_; + int32 expiration_date_; + object_ptr subscription_pricing_; + int32 member_limit_; + int32 member_count_; + int32 expired_member_count_; + int32 pending_join_request_count_; + bool creates_join_request_; + bool is_primary_; + bool is_revoked_; + + chatInviteLink(); + + chatInviteLink(string const &invite_link_, string const &name_, int53 creator_user_id_, int32 date_, int32 edit_date_, int32 expiration_date_, object_ptr &&subscription_pricing_, int32 member_limit_, int32 member_count_, int32 expired_member_count_, int32 pending_join_request_count_, bool creates_join_request_, bool is_primary_, bool is_revoked_); + + static const std::int32_t ID = -957651664; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkCount final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 invite_link_count_; + int32 revoked_invite_link_count_; + + chatInviteLinkCount(); + + chatInviteLinkCount(int53 user_id_, int32 invite_link_count_, int32 revoked_invite_link_count_); + + static const std::int32_t ID = -1021999210; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkCount; + +class chatInviteLinkCounts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> invite_link_counts_; + + chatInviteLinkCounts(); + + explicit chatInviteLinkCounts(array> &&invite_link_counts_); + + static const std::int32_t ID = 920326637; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InviteLinkChatType; + +class chatInviteLinkSubscriptionInfo; + +class chatPhotoInfo; + +class verificationStatus; + +class chatInviteLinkInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + int32 accessible_for_; + object_ptr type_; + string title_; + object_ptr photo_; + int32 accent_color_id_; + string description_; + int32 member_count_; + array member_user_ids_; + object_ptr subscription_info_; + bool creates_join_request_; + bool is_public_; + object_ptr verification_status_; + + chatInviteLinkInfo(); + + chatInviteLinkInfo(int53 chat_id_, int32 accessible_for_, object_ptr &&type_, string const &title_, object_ptr &&photo_, int32 accent_color_id_, string const &description_, int32 member_count_, array &&member_user_ids_, object_ptr &&subscription_info_, bool creates_join_request_, bool is_public_, object_ptr &&verification_status_); + + static const std::int32_t ID = -1145310535; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkMember final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 joined_chat_date_; + bool via_chat_folder_invite_link_; + int53 approver_user_id_; + + chatInviteLinkMember(); + + chatInviteLinkMember(int53 user_id_, int32 joined_chat_date_, bool via_chat_folder_invite_link_, int53 approver_user_id_); + + static const std::int32_t ID = 29156795; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkMember; + +class chatInviteLinkMembers final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> members_; + + chatInviteLinkMembers(); + + chatInviteLinkMembers(int32 total_count_, array> &&members_); + + static const std::int32_t ID = 315635051; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class starSubscriptionPricing; + +class chatInviteLinkSubscriptionInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr pricing_; + bool can_reuse_; + int64 form_id_; + + chatInviteLinkSubscriptionInfo(); + + chatInviteLinkSubscriptionInfo(object_ptr &&pricing_, bool can_reuse_, int64 form_id_); + + static const std::int32_t ID = 953119592; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLink; + +class chatInviteLinks final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> invite_links_; + + chatInviteLinks(); + + chatInviteLinks(int32 total_count_, array> &&invite_links_); + + static const std::int32_t ID = 112891427; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequest final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 date_; + string bio_; + + chatJoinRequest(); + + chatJoinRequest(int53 user_id_, int32 date_, string const &bio_); + + static const std::int32_t ID = 59341416; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequest; + +class chatJoinRequests final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> requests_; + + chatJoinRequests(); + + chatJoinRequests(int32 total_count_, array> &&requests_); + + static const std::int32_t ID = 1291680519; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequestsInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array user_ids_; + + chatJoinRequestsInfo(); + + chatJoinRequestsInfo(int32 total_count_, array &&user_ids_); + + static const std::int32_t ID = 888534463; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatList: public Object { + public: +}; + +class chatListMain final : public ChatList { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatListMain(); + + static const std::int32_t ID = -400991316; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatListArchive final : public ChatList { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatListArchive(); + + static const std::int32_t ID = 362770115; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatListFolder final : public ChatList { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 chat_folder_id_; + + chatListFolder(); + + explicit chatListFolder(int32 chat_folder_id_); + + static const std::int32_t ID = 385760856; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatList; + +class chatLists final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> chat_lists_; + + chatLists(); + + explicit chatLists(array> &&chat_lists_); + + static const std::int32_t ID = -258292771; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class location; + +class chatLocation final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr location_; + string address_; + + chatLocation(); + + chatLocation(object_ptr &&location_, string const &address_); + + static const std::int32_t ID = -1566863583; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatMemberStatus; + +class MessageSender; + +class chatMember final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr member_id_; + int53 inviter_user_id_; + int32 joined_chat_date_; + object_ptr status_; + + chatMember(); + + chatMember(object_ptr &&member_id_, int53 inviter_user_id_, int32 joined_chat_date_, object_ptr &&status_); + + static const std::int32_t ID = 1829953909; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministratorRights; + +class chatPermissions; + +class ChatMemberStatus: public Object { + public: +}; + +class chatMemberStatusCreator final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + string custom_title_; + bool is_anonymous_; + bool is_member_; + + chatMemberStatusCreator(); + + chatMemberStatusCreator(string const &custom_title_, bool is_anonymous_, bool is_member_); + + static const std::int32_t ID = -160019714; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusAdministrator final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + string custom_title_; + bool can_be_edited_; + object_ptr rights_; + + chatMemberStatusAdministrator(); + + chatMemberStatusAdministrator(string const &custom_title_, bool can_be_edited_, object_ptr &&rights_); + + static const std::int32_t ID = -70024163; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusMember final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 member_until_date_; + + chatMemberStatusMember(); + + explicit chatMemberStatusMember(int32 member_until_date_); + + static const std::int32_t ID = -32707562; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusRestricted final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + bool is_member_; + int32 restricted_until_date_; + object_ptr permissions_; + + chatMemberStatusRestricted(); + + chatMemberStatusRestricted(bool is_member_, int32 restricted_until_date_, object_ptr &&permissions_); + + static const std::int32_t ID = 1661432998; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusLeft final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMemberStatusLeft(); + + static const std::int32_t ID = -5815259; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusBanned final : public ChatMemberStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 banned_until_date_; + + chatMemberStatusBanned(); + + explicit chatMemberStatusBanned(int32 banned_until_date_); + + static const std::int32_t ID = -1653518666; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMember; + +class chatMembers final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> members_; + + chatMembers(); + + chatMembers(int32 total_count_, array> &&members_); + + static const std::int32_t ID = -497558622; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatMembersFilter: public Object { + public: +}; + +class chatMembersFilterContacts final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterContacts(); + + static const std::int32_t ID = 1774485671; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterAdministrators final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterAdministrators(); + + static const std::int32_t ID = -1266893796; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterMembers final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterMembers(); + + static const std::int32_t ID = 670504342; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterMention final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 message_thread_id_; + + chatMembersFilterMention(); + + explicit chatMembersFilterMention(int53 message_thread_id_); + + static const std::int32_t ID = 856419831; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterRestricted final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterRestricted(); + + static const std::int32_t ID = 1256282813; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterBanned final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterBanned(); + + static const std::int32_t ID = -1863102648; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterBots final : public ChatMembersFilter { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatMembersFilterBots(); + + static const std::int32_t ID = -1422567288; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class chatMessageSender final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr sender_; + bool needs_premium_; + + chatMessageSender(); + + chatMessageSender(object_ptr &&sender_, bool needs_premium_); + + static const std::int32_t ID = 760590010; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMessageSender; + +class chatMessageSenders final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> senders_; + + chatMessageSenders(); + + explicit chatMessageSenders(array> &&senders_); + + static const std::int32_t ID = -1866230970; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatNotificationSettings final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool use_default_mute_for_; + int32 mute_for_; + bool use_default_sound_; + int64 sound_id_; + bool use_default_show_preview_; + bool show_preview_; + bool use_default_mute_stories_; + bool mute_stories_; + bool use_default_story_sound_; + int64 story_sound_id_; + bool use_default_show_story_sender_; + bool show_story_sender_; + bool use_default_disable_pinned_message_notifications_; + bool disable_pinned_message_notifications_; + bool use_default_disable_mention_notifications_; + bool disable_mention_notifications_; + + chatNotificationSettings(); + + chatNotificationSettings(bool use_default_mute_for_, int32 mute_for_, bool use_default_sound_, int64 sound_id_, bool use_default_show_preview_, bool show_preview_, bool use_default_mute_stories_, bool mute_stories_, bool use_default_story_sound_, int64 story_sound_id_, bool use_default_show_story_sender_, bool show_story_sender_, bool use_default_disable_pinned_message_notifications_, bool disable_pinned_message_notifications_, bool use_default_disable_mention_notifications_, bool disable_mention_notifications_); + + static const std::int32_t ID = -572779825; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPermissions final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bool can_send_basic_messages_; + bool can_send_audios_; + bool can_send_documents_; + bool can_send_photos_; + bool can_send_videos_; + bool can_send_video_notes_; + bool can_send_voice_notes_; + bool can_send_polls_; + bool can_send_other_messages_; + bool can_add_link_previews_; + bool can_change_info_; + bool can_invite_users_; + bool can_pin_messages_; + bool can_create_topics_; + + chatPermissions(); + + chatPermissions(bool can_send_basic_messages_, bool can_send_audios_, bool can_send_documents_, bool can_send_photos_, bool can_send_videos_, bool can_send_video_notes_, bool can_send_voice_notes_, bool can_send_polls_, bool can_send_other_messages_, bool can_add_link_previews_, bool can_change_info_, bool can_invite_users_, bool can_pin_messages_, bool can_create_topics_); + + static const std::int32_t ID = -118334855; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animatedChatPhoto; + +class chatPhotoSticker; + +class minithumbnail; + +class photoSize; + +class chatPhoto final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + int32 added_date_; + object_ptr minithumbnail_; + array> sizes_; + object_ptr animation_; + object_ptr small_animation_; + object_ptr sticker_; + + chatPhoto(); + + chatPhoto(int64 id_, int32 added_date_, object_ptr &&minithumbnail_, array> &&sizes_, object_ptr &&animation_, object_ptr &&small_animation_, object_ptr &&sticker_); + + static const std::int32_t ID = -1430870201; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class minithumbnail; + +class chatPhotoInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr small_; + object_ptr big_; + object_ptr minithumbnail_; + bool has_animation_; + bool is_personal_; + + chatPhotoInfo(); + + chatPhotoInfo(object_ptr &&small_, object_ptr &&big_, object_ptr &&minithumbnail_, bool has_animation_, bool is_personal_); + + static const std::int32_t ID = 281195686; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundFill; + +class ChatPhotoStickerType; + +class chatPhotoSticker final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr type_; + object_ptr background_fill_; + + chatPhotoSticker(); + + chatPhotoSticker(object_ptr &&type_, object_ptr &&background_fill_); + + static const std::int32_t ID = -1459387485; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatPhotoStickerType: public Object { + public: +}; + +class chatPhotoStickerTypeRegularOrMask final : public ChatPhotoStickerType { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 sticker_set_id_; + int64 sticker_id_; + + chatPhotoStickerTypeRegularOrMask(); + + chatPhotoStickerTypeRegularOrMask(int64 sticker_set_id_, int64 sticker_id_); + + static const std::int32_t ID = -415147620; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhotoStickerTypeCustomEmoji final : public ChatPhotoStickerType { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 custom_emoji_id_; + + chatPhotoStickerTypeCustomEmoji(); + + explicit chatPhotoStickerTypeCustomEmoji(int64 custom_emoji_id_); + + static const std::int32_t ID = -266224943; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhoto; + +class chatPhotos final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> photos_; + + chatPhotos(); + + chatPhotos(int32 total_count_, array> &&photos_); + + static const std::int32_t ID = -1510699180; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatList; + +class ChatSource; + +class chatPosition final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr list_; + int64 order_; + bool is_pinned_; + object_ptr source_; + + chatPosition(); + + chatPosition(object_ptr &&list_, int64 order_, bool is_pinned_, object_ptr &&source_); + + static const std::int32_t ID = -622557355; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatRevenueAmount final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string cryptocurrency_; + int64 total_amount_; + int64 balance_amount_; + int64 available_amount_; + bool withdrawal_enabled_; + + chatRevenueAmount(); + + chatRevenueAmount(string const &cryptocurrency_, int64 total_amount_, int64 balance_amount_, int64 available_amount_, bool withdrawal_enabled_); + + static const std::int32_t ID = -1505178024; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StatisticalGraph; + +class chatRevenueAmount; + +class chatRevenueStatistics final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr revenue_by_hour_graph_; + object_ptr revenue_graph_; + object_ptr revenue_amount_; + double usd_rate_; + + chatRevenueStatistics(); + + chatRevenueStatistics(object_ptr &&revenue_by_hour_graph_, object_ptr &&revenue_graph_, object_ptr &&revenue_amount_, double usd_rate_); + + static const std::int32_t ID = 1667438779; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatRevenueTransactionType; + +class chatRevenueTransaction final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string cryptocurrency_; + int64 cryptocurrency_amount_; + object_ptr type_; + + chatRevenueTransaction(); + + chatRevenueTransaction(string const &cryptocurrency_, int64 cryptocurrency_amount_, object_ptr &&type_); + + static const std::int32_t ID = 80192767; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RevenueWithdrawalState; + +class ChatRevenueTransactionType: public Object { + public: +}; + +class chatRevenueTransactionTypeEarnings final : public ChatRevenueTransactionType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 start_date_; + int32 end_date_; + + chatRevenueTransactionTypeEarnings(); + + chatRevenueTransactionTypeEarnings(int32 start_date_, int32 end_date_); + + static const std::int32_t ID = -400776056; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatRevenueTransactionTypeWithdrawal final : public ChatRevenueTransactionType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 withdrawal_date_; + string provider_; + object_ptr state_; + + chatRevenueTransactionTypeWithdrawal(); + + chatRevenueTransactionTypeWithdrawal(int32 withdrawal_date_, string const &provider_, object_ptr &&state_); + + static const std::int32_t ID = 252939755; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatRevenueTransactionTypeRefund final : public ChatRevenueTransactionType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 refund_date_; + string provider_; + + chatRevenueTransactionTypeRefund(); + + chatRevenueTransactionTypeRefund(int32 refund_date_, string const &provider_); + + static const std::int32_t ID = 302430279; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatRevenueTransaction; + +class chatRevenueTransactions final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> transactions_; + + chatRevenueTransactions(); + + chatRevenueTransactions(int32 total_count_, array> &&transactions_); + + static const std::int32_t ID = -553258171; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatSource: public Object { + public: +}; + +class chatSourceMtprotoProxy final : public ChatSource { + std::int32_t get_id() const final { + return ID; + } + + public: + + chatSourceMtprotoProxy(); + + static const std::int32_t ID = 394074115; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatSourcePublicServiceAnnouncement final : public ChatSource { + std::int32_t get_id() const final { + return ID; + } + + public: + string type_; + string text_; + + chatSourcePublicServiceAnnouncement(); + + chatSourcePublicServiceAnnouncement(string const &type_, string const &text_); + + static const std::int32_t ID = -328571244; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StatisticalGraph; + +class chatStatisticsAdministratorActionsInfo; + +class chatStatisticsInteractionInfo; + +class chatStatisticsInviterInfo; + +class chatStatisticsMessageSenderInfo; + +class dateRange; + +class statisticalValue; + +class ChatStatistics: public Object { + public: +}; + +class chatStatisticsSupergroup final : public ChatStatistics { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr period_; + object_ptr member_count_; + object_ptr message_count_; + object_ptr viewer_count_; + object_ptr sender_count_; + object_ptr member_count_graph_; + object_ptr join_graph_; + object_ptr join_by_source_graph_; + object_ptr language_graph_; + object_ptr message_content_graph_; + object_ptr action_graph_; + object_ptr day_graph_; + object_ptr week_graph_; + array> top_senders_; + array> top_administrators_; + array> top_inviters_; + + chatStatisticsSupergroup(); + + chatStatisticsSupergroup(object_ptr &&period_, object_ptr &&member_count_, object_ptr &&message_count_, object_ptr &&viewer_count_, object_ptr &&sender_count_, object_ptr &&member_count_graph_, object_ptr &&join_graph_, object_ptr &&join_by_source_graph_, object_ptr &&language_graph_, object_ptr &&message_content_graph_, object_ptr &&action_graph_, object_ptr &&day_graph_, object_ptr &&week_graph_, array> &&top_senders_, array> &&top_administrators_, array> &&top_inviters_); + + static const std::int32_t ID = -17244633; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsChannel final : public ChatStatistics { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr period_; + object_ptr member_count_; + object_ptr mean_message_view_count_; + object_ptr mean_message_share_count_; + object_ptr mean_message_reaction_count_; + object_ptr mean_story_view_count_; + object_ptr mean_story_share_count_; + object_ptr mean_story_reaction_count_; + double enabled_notifications_percentage_; + object_ptr member_count_graph_; + object_ptr join_graph_; + object_ptr mute_graph_; + object_ptr view_count_by_hour_graph_; + object_ptr view_count_by_source_graph_; + object_ptr join_by_source_graph_; + object_ptr language_graph_; + object_ptr message_interaction_graph_; + object_ptr message_reaction_graph_; + object_ptr story_interaction_graph_; + object_ptr story_reaction_graph_; + object_ptr instant_view_interaction_graph_; + array> recent_interactions_; + + chatStatisticsChannel(); + + chatStatisticsChannel(object_ptr &&period_, object_ptr &&member_count_, object_ptr &&mean_message_view_count_, object_ptr &&mean_message_share_count_, object_ptr &&mean_message_reaction_count_, object_ptr &&mean_story_view_count_, object_ptr &&mean_story_share_count_, object_ptr &&mean_story_reaction_count_, double enabled_notifications_percentage_, object_ptr &&member_count_graph_, object_ptr &&join_graph_, object_ptr &&mute_graph_, object_ptr &&view_count_by_hour_graph_, object_ptr &&view_count_by_source_graph_, object_ptr &&join_by_source_graph_, object_ptr &&language_graph_, object_ptr &&message_interaction_graph_, object_ptr &&message_reaction_graph_, object_ptr &&story_interaction_graph_, object_ptr &&story_reaction_graph_, object_ptr &&instant_view_interaction_graph_, array> &&recent_interactions_); + + static const std::int32_t ID = -1375151660; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsAdministratorActionsInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 deleted_message_count_; + int32 banned_user_count_; + int32 restricted_user_count_; + + chatStatisticsAdministratorActionsInfo(); + + chatStatisticsAdministratorActionsInfo(int53 user_id_, int32 deleted_message_count_, int32 banned_user_count_, int32 restricted_user_count_); + + static const std::int32_t ID = -406467202; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatStatisticsObjectType; + +class chatStatisticsInteractionInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr object_type_; + int32 view_count_; + int32 forward_count_; + int32 reaction_count_; + + chatStatisticsInteractionInfo(); + + chatStatisticsInteractionInfo(object_ptr &&object_type_, int32 view_count_, int32 forward_count_, int32 reaction_count_); + + static const std::int32_t ID = 1766496909; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsInviterInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 added_member_count_; + + chatStatisticsInviterInfo(); + + chatStatisticsInviterInfo(int53 user_id_, int32 added_member_count_); + + static const std::int32_t ID = 629396619; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsMessageSenderInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + int32 sent_message_count_; + int32 average_character_count_; + + chatStatisticsMessageSenderInfo(); + + chatStatisticsMessageSenderInfo(int53 user_id_, int32 sent_message_count_, int32 average_character_count_); + + static const std::int32_t ID = 1762295371; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatStatisticsObjectType: public Object { + public: +}; + +class chatStatisticsObjectTypeMessage final : public ChatStatisticsObjectType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 message_id_; + + chatStatisticsObjectTypeMessage(); + + explicit chatStatisticsObjectTypeMessage(int53 message_id_); + + static const std::int32_t ID = 1872700662; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsObjectTypeStory final : public ChatStatisticsObjectType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 story_id_; + + chatStatisticsObjectTypeStory(); + + explicit chatStatisticsObjectTypeStory(int32 story_id_); + + static const std::int32_t ID = 364575152; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class themeSettings; + +class chatTheme final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string name_; + object_ptr light_settings_; + object_ptr dark_settings_; + + chatTheme(); + + chatTheme(string const &name_, object_ptr &&light_settings_, object_ptr &&dark_settings_); + + static const std::int32_t ID = -113218503; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatType: public Object { + public: +}; + +class chatTypePrivate final : public ChatType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + + chatTypePrivate(); + + explicit chatTypePrivate(int53 user_id_); + + static const std::int32_t ID = 1579049844; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeBasicGroup final : public ChatType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 basic_group_id_; + + chatTypeBasicGroup(); + + explicit chatTypeBasicGroup(int53 basic_group_id_); + + static const std::int32_t ID = 973884508; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeSupergroup final : public ChatType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 supergroup_id_; + bool is_channel_; + + chatTypeSupergroup(); + + chatTypeSupergroup(int53 supergroup_id_, bool is_channel_); + + static const std::int32_t ID = -1472570774; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeSecret final : public ChatType { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 secret_chat_id_; + int53 user_id_; + + chatTypeSecret(); + + chatTypeSecret(int32 secret_chat_id_, int53 user_id_); + + static const std::int32_t ID = 862366513; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chats final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array chat_ids_; + + chats(); + + chats(int32 total_count_, array &&chat_ids_); + + static const std::int32_t ID = 1809654812; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CheckChatUsernameResult: public Object { + public: +}; + +class checkChatUsernameResultOk final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultOk(); + + static const std::int32_t ID = -1498956964; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultUsernameInvalid final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultUsernameInvalid(); + + static const std::int32_t ID = -636979370; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultUsernameOccupied final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultUsernameOccupied(); + + static const std::int32_t ID = 1320892201; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultUsernamePurchasable final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultUsernamePurchasable(); + + static const std::int32_t ID = 5885529; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultPublicChatsTooMany final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultPublicChatsTooMany(); + + static const std::int32_t ID = -659264388; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultPublicGroupsUnavailable final : public CheckChatUsernameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkChatUsernameResultPublicGroupsUnavailable(); + + static const std::int32_t ID = -51833641; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CheckStickerSetNameResult: public Object { + public: +}; + +class checkStickerSetNameResultOk final : public CheckStickerSetNameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkStickerSetNameResultOk(); + + static const std::int32_t ID = -1404308904; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkStickerSetNameResultNameInvalid final : public CheckStickerSetNameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkStickerSetNameResultNameInvalid(); + + static const std::int32_t ID = 177992244; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkStickerSetNameResultNameOccupied final : public CheckStickerSetNameResult { + std::int32_t get_id() const final { + return ID; + } + + public: + + checkStickerSetNameResultNameOccupied(); + + static const std::int32_t ID = 1012980872; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class birthdate; + +class closeBirthdayUser final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + object_ptr birthdate_; + + closeBirthdayUser(); + + closeBirthdayUser(int53 user_id_, object_ptr &&birthdate_); + + static const std::int32_t ID = -2147067410; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class VectorPathCommand; + +class closedVectorPath final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> commands_; + + closedVectorPath(); + + explicit closedVectorPath(array> &&commands_); + + static const std::int32_t ID = 589951657; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class collectibleItemInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 purchase_date_; + string currency_; + int53 amount_; + string cryptocurrency_; + int64 cryptocurrency_amount_; + string url_; + + collectibleItemInfo(); + + collectibleItemInfo(int32 purchase_date_, string const ¤cy_, int53 amount_, string const &cryptocurrency_, int64 cryptocurrency_amount_, string const &url_); + + static const std::int32_t ID = 1460640717; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CollectibleItemType: public Object { + public: +}; + +class collectibleItemTypeUsername final : public CollectibleItemType { + std::int32_t get_id() const final { + return ID; + } + + public: + string username_; + + collectibleItemTypeUsername(); + + explicit collectibleItemTypeUsername(string const &username_); + + static const std::int32_t ID = 458680273; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class collectibleItemTypePhoneNumber final : public CollectibleItemType { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_; + + collectibleItemTypePhoneNumber(); + + explicit collectibleItemTypePhoneNumber(string const &phone_number_); + + static const std::int32_t ID = 1256251714; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramParameters; + +class connectedAffiliateProgram final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + int53 bot_user_id_; + object_ptr parameters_; + int32 connection_date_; + bool is_disconnected_; + int64 user_count_; + int64 revenue_star_count_; + + connectedAffiliateProgram(); + + connectedAffiliateProgram(string const &url_, int53 bot_user_id_, object_ptr &¶meters_, int32 connection_date_, bool is_disconnected_, int64 user_count_, int64 revenue_star_count_); + + static const std::int32_t ID = 1488942101; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectedAffiliateProgram; + +class connectedAffiliatePrograms final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> programs_; + string next_offset_; + + connectedAffiliatePrograms(); + + connectedAffiliatePrograms(int32 total_count_, array> &&programs_, string const &next_offset_); + + static const std::int32_t ID = 1505880847; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectedWebsite final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + string domain_name_; + int53 bot_user_id_; + string browser_; + string platform_; + int32 log_in_date_; + int32 last_active_date_; + string ip_address_; + string location_; + + connectedWebsite(); + + connectedWebsite(int64 id_, string const &domain_name_, int53 bot_user_id_, string const &browser_, string const &platform_, int32 log_in_date_, int32 last_active_date_, string const &ip_address_, string const &location_); + + static const std::int32_t ID = 1978115978; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectedWebsite; + +class connectedWebsites final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> websites_; + + connectedWebsites(); + + explicit connectedWebsites(array> &&websites_); + + static const std::int32_t ID = -1727949694; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ConnectionState: public Object { + public: +}; + +class connectionStateWaitingForNetwork final : public ConnectionState { + std::int32_t get_id() const final { + return ID; + } + + public: + + connectionStateWaitingForNetwork(); + + static const std::int32_t ID = 1695405912; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateConnectingToProxy final : public ConnectionState { + std::int32_t get_id() const final { + return ID; + } + + public: + + connectionStateConnectingToProxy(); + + static const std::int32_t ID = -93187239; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateConnecting final : public ConnectionState { + std::int32_t get_id() const final { + return ID; + } + + public: + + connectionStateConnecting(); + + static const std::int32_t ID = -1298400670; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateUpdating final : public ConnectionState { + std::int32_t get_id() const final { + return ID; + } + + public: + + connectionStateUpdating(); + + static const std::int32_t ID = -188104009; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateReady final : public ConnectionState { + std::int32_t get_id() const final { + return ID; + } + + public: + + connectionStateReady(); + + static const std::int32_t ID = 48608492; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contact final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + int53 user_id_; + + contact(); + + contact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, int53 user_id_); + + static const std::int32_t ID = -1993844876; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class count final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 count_; + + count(); + + explicit count(int32 count_); + + static const std::int32_t ID = 1295577348; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class countryInfo; + +class countries final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> countries_; + + countries(); + + explicit countries(array> &&countries_); + + static const std::int32_t ID = 1854211813; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class countryInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string country_code_; + string name_; + string english_name_; + bool is_hidden_; + array calling_codes_; + + countryInfo(); + + countryInfo(string const &country_code_, string const &name_, string const &english_name_, bool is_hidden_, array &&calling_codes_); + + static const std::int32_t ID = 1617195722; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class failedToAddMembers; + +class createdBasicGroupChat final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + object_ptr failed_to_add_members_; + + createdBasicGroupChat(); + + createdBasicGroupChat(int53 chat_id_, object_ptr &&failed_to_add_members_); + + static const std::int32_t ID = -20417068; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class currentWeather final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + double temperature_; + string emoji_; + + currentWeather(); + + currentWeather(double temperature_, string const &emoji_); + + static const std::int32_t ID = -355555136; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class customRequestResult final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string result_; + + customRequestResult(); + + explicit customRequestResult(string const &result_); + + static const std::int32_t ID = -2009960452; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class databaseStatistics final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string statistics_; + + databaseStatistics(); + + explicit databaseStatistics(string const &statistics_); + + static const std::int32_t ID = -1123912880; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class date final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 day_; + int32 month_; + int32 year_; + + date(); + + date(int32 day_, int32 month_, int32 year_); + + static const std::int32_t ID = -277956960; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dateRange final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 start_date_; + int32 end_date_; + + dateRange(); + + dateRange(int32 start_date_, int32 end_date_); + + static const std::int32_t ID = 1360333926; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class datedFile final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr file_; + int32 date_; + + datedFile(); + + datedFile(object_ptr &&file_, int32 date_); + + static const std::int32_t ID = -1840795491; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class deepLinkInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr text_; + bool need_update_application_; + + deepLinkInfo(); + + deepLinkInfo(object_ptr &&text_, bool need_update_application_); + + static const std::int32_t ID = 1864081662; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DeviceToken: public Object { + public: +}; + +class deviceTokenFirebaseCloudMessaging final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + bool encrypt_; + + deviceTokenFirebaseCloudMessaging(); + + deviceTokenFirebaseCloudMessaging(string const &token_, bool encrypt_); + + static const std::int32_t ID = -797881849; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenApplePush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string device_token_; + bool is_app_sandbox_; + + deviceTokenApplePush(); + + deviceTokenApplePush(string const &device_token_, bool is_app_sandbox_); + + static const std::int32_t ID = 387541955; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenApplePushVoIP final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string device_token_; + bool is_app_sandbox_; + bool encrypt_; + + deviceTokenApplePushVoIP(); + + deviceTokenApplePushVoIP(string const &device_token_, bool is_app_sandbox_, bool encrypt_); + + static const std::int32_t ID = 804275689; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenWindowsPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string access_token_; + + deviceTokenWindowsPush(); + + explicit deviceTokenWindowsPush(string const &access_token_); + + static const std::int32_t ID = -1410514289; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenMicrosoftPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string channel_uri_; + + deviceTokenMicrosoftPush(); + + explicit deviceTokenMicrosoftPush(string const &channel_uri_); + + static const std::int32_t ID = 1224269900; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenMicrosoftPushVoIP final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string channel_uri_; + + deviceTokenMicrosoftPushVoIP(); + + explicit deviceTokenMicrosoftPushVoIP(string const &channel_uri_); + + static const std::int32_t ID = -785603759; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenWebPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string endpoint_; + string p256dh_base64url_; + string auth_base64url_; + + deviceTokenWebPush(); + + deviceTokenWebPush(string const &endpoint_, string const &p256dh_base64url_, string const &auth_base64url_); + + static const std::int32_t ID = -1694507273; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenSimplePush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string endpoint_; + + deviceTokenSimplePush(); + + explicit deviceTokenSimplePush(string const &endpoint_); + + static const std::int32_t ID = 49584736; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenUbuntuPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + + deviceTokenUbuntuPush(); + + explicit deviceTokenUbuntuPush(string const &token_); + + static const std::int32_t ID = 1782320422; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenBlackBerryPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + + deviceTokenBlackBerryPush(); + + explicit deviceTokenBlackBerryPush(string const &token_); + + static const std::int32_t ID = 1559167234; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenTizenPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string reg_id_; + + deviceTokenTizenPush(); + + explicit deviceTokenTizenPush(string const ®_id_); + + static const std::int32_t ID = -1359947213; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenHuaweiPush final : public DeviceToken { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + bool encrypt_; + + deviceTokenHuaweiPush(); + + deviceTokenHuaweiPush(string const &token_, bool encrypt_); + + static const std::int32_t ID = 1989103142; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sticker; + +class DiceStickers: public Object { + public: +}; + +class diceStickersRegular final : public DiceStickers { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr sticker_; + + diceStickersRegular(); + + explicit diceStickersRegular(object_ptr &&sticker_); + + static const std::int32_t ID = -740299570; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class diceStickersSlotMachine final : public DiceStickers { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr background_; + object_ptr lever_; + object_ptr left_reel_; + object_ptr center_reel_; + object_ptr right_reel_; + + diceStickersSlotMachine(); + + diceStickersSlotMachine(object_ptr &&background_, object_ptr &&lever_, object_ptr &&left_reel_, object_ptr &¢er_reel_, object_ptr &&right_reel_); + + static const std::int32_t ID = -375223124; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file; + +class minithumbnail; + +class thumbnail; + +class document final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string file_name_; + string mime_type_; + object_ptr minithumbnail_; + object_ptr thumbnail_; + object_ptr document_; + + document(); + + document(string const &file_name_, string const &mime_type_, object_ptr &&minithumbnail_, object_ptr &&thumbnail_, object_ptr &&document_); + + static const std::int32_t ID = -1357271080; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class downloadedFileCounts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 active_count_; + int32 paused_count_; + int32 completed_count_; + + downloadedFileCounts(); + + downloadedFileCounts(int32 active_count_, int32 paused_count_, int32 completed_count_); + + static const std::int32_t ID = -1973999550; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputMessageContent; + +class InputMessageReplyTo; + +class draftMessage final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr reply_to_; + int32 date_; + object_ptr input_message_text_; + int64 effect_id_; + + draftMessage(); + + draftMessage(object_ptr &&reply_to_, int32 date_, object_ptr &&input_message_text_, int64 effect_id_); + + static const std::int32_t ID = 1125328749; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailAddressAuthentication: public Object { + public: +}; + +class emailAddressAuthenticationCode final : public EmailAddressAuthentication { + std::int32_t get_id() const final { + return ID; + } + + public: + string code_; + + emailAddressAuthenticationCode(); + + explicit emailAddressAuthenticationCode(string const &code_); + + static const std::int32_t ID = -993257022; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationAppleId final : public EmailAddressAuthentication { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + + emailAddressAuthenticationAppleId(); + + explicit emailAddressAuthenticationAppleId(string const &token_); + + static const std::int32_t ID = 633948265; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationGoogleId final : public EmailAddressAuthentication { + std::int32_t get_id() const final { + return ID; + } + + public: + string token_; + + emailAddressAuthenticationGoogleId(); + + explicit emailAddressAuthenticationGoogleId(string const &token_); + + static const std::int32_t ID = -19142846; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationCodeInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string email_address_pattern_; + int32 length_; + + emailAddressAuthenticationCodeInfo(); + + emailAddressAuthenticationCodeInfo(string const &email_address_pattern_, int32 length_); + + static const std::int32_t ID = 1151066659; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailAddressResetState: public Object { + public: +}; + +class emailAddressResetStateAvailable final : public EmailAddressResetState { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 wait_period_; + + emailAddressResetStateAvailable(); + + explicit emailAddressResetStateAvailable(int32 wait_period_); + + static const std::int32_t ID = -1917177600; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressResetStatePending final : public EmailAddressResetState { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 reset_in_; + + emailAddressResetStatePending(); + + explicit emailAddressResetStatePending(int32 reset_in_); + + static const std::int32_t ID = -1885966805; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiCategory; + +class emojiCategories final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> categories_; + + emojiCategories(); + + explicit emojiCategories(array> &&categories_); + + static const std::int32_t ID = -1455387824; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiCategorySource; + +class sticker; + +class emojiCategory final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string name_; + object_ptr icon_; + object_ptr source_; + bool is_greeting_; + + emojiCategory(); + + emojiCategory(string const &name_, object_ptr &&icon_, object_ptr &&source_, bool is_greeting_); + + static const std::int32_t ID = 571335919; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiCategorySource: public Object { + public: +}; + +class emojiCategorySourceSearch final : public EmojiCategorySource { + std::int32_t get_id() const final { + return ID; + } + + public: + array emojis_; + + emojiCategorySourceSearch(); + + explicit emojiCategorySourceSearch(array &&emojis_); + + static const std::int32_t ID = -453260262; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiCategorySourcePremium final : public EmojiCategorySource { + std::int32_t get_id() const final { + return ID; + } + + public: + + emojiCategorySourcePremium(); + + static const std::int32_t ID = -1932358388; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiCategoryType: public Object { + public: +}; + +class emojiCategoryTypeDefault final : public EmojiCategoryType { + std::int32_t get_id() const final { + return ID; + } + + public: + + emojiCategoryTypeDefault(); + + static const std::int32_t ID = 1188782699; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiCategoryTypeRegularStickers final : public EmojiCategoryType { + std::int32_t get_id() const final { + return ID; + } + + public: + + emojiCategoryTypeRegularStickers(); + + static const std::int32_t ID = -1337484846; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiCategoryTypeEmojiStatus final : public EmojiCategoryType { + std::int32_t get_id() const final { + return ID; + } + + public: + + emojiCategoryTypeEmojiStatus(); + + static const std::int32_t ID = 1381282631; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiCategoryTypeChatPhoto final : public EmojiCategoryType { + std::int32_t get_id() const final { + return ID; + } + + public: + + emojiCategoryTypeChatPhoto(); + + static const std::int32_t ID = 1059063081; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiKeyword final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string emoji_; + string keyword_; + + emojiKeyword(); + + emojiKeyword(string const &emoji_, string const &keyword_); + + static const std::int32_t ID = -2112285985; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiKeyword; + +class emojiKeywords final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> emoji_keywords_; + + emojiKeywords(); + + explicit emojiKeywords(array> &&emoji_keywords_); + + static const std::int32_t ID = 689723339; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sticker; + +class emojiReaction final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string emoji_; + string title_; + bool is_active_; + object_ptr static_icon_; + object_ptr appear_animation_; + object_ptr select_animation_; + object_ptr activate_animation_; + object_ptr effect_animation_; + object_ptr around_animation_; + object_ptr center_animation_; + + emojiReaction(); + + emojiReaction(string const &emoji_, string const &title_, bool is_active_, object_ptr &&static_icon_, object_ptr &&appear_animation_, object_ptr &&select_animation_, object_ptr &&activate_animation_, object_ptr &&effect_animation_, object_ptr &&around_animation_, object_ptr &¢er_animation_); + + static const std::int32_t ID = 1616063583; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiStatusType; + +class emojiStatus final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr type_; + int32 expiration_date_; + + emojiStatus(); + + emojiStatus(object_ptr &&type_, int32 expiration_date_); + + static const std::int32_t ID = 973424912; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatusCustomEmojis final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array custom_emoji_ids_; + + emojiStatusCustomEmojis(); + + explicit emojiStatusCustomEmojis(array &&custom_emoji_ids_); + + static const std::int32_t ID = 917123337; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upgradedGiftBackdropColors; + +class EmojiStatusType: public Object { + public: +}; + +class emojiStatusTypeCustomEmoji final : public EmojiStatusType { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 custom_emoji_id_; + + emojiStatusTypeCustomEmoji(); + + explicit emojiStatusTypeCustomEmoji(int64 custom_emoji_id_); + + static const std::int32_t ID = -1666780939; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatusTypeUpgradedGift final : public EmojiStatusType { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 upgraded_gift_id_; + string gift_title_; + string gift_name_; + int64 model_custom_emoji_id_; + int64 symbol_custom_emoji_id_; + object_ptr backdrop_colors_; + + emojiStatusTypeUpgradedGift(); + + emojiStatusTypeUpgradedGift(int64 upgraded_gift_id_, string const &gift_title_, string const &gift_name_, int64 model_custom_emoji_id_, int64 symbol_custom_emoji_id_, object_ptr &&backdrop_colors_); + + static const std::int32_t ID = -837921804; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatus; + +class emojiStatuses final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> emoji_statuses_; + + emojiStatuses(); + + explicit emojiStatuses(array> &&emoji_statuses_); + + static const std::int32_t ID = 1186104146; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojis final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array emojis_; + + emojis(); + + explicit emojis(array &&emojis_); + + static const std::int32_t ID = 950339552; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedCredentials final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes data_; + bytes hash_; + bytes secret_; + + encryptedCredentials(); + + encryptedCredentials(bytes const &data_, bytes const &hash_, bytes const &secret_); + + static const std::int32_t ID = 1331106766; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PassportElementType; + +class datedFile; + +class encryptedPassportElement final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr type_; + bytes data_; + object_ptr front_side_; + object_ptr reverse_side_; + object_ptr selfie_; + array> translation_; + array> files_; + string value_; + string hash_; + + encryptedPassportElement(); + + encryptedPassportElement(object_ptr &&type_, bytes const &data_, object_ptr &&front_side_, object_ptr &&reverse_side_, object_ptr &&selfie_, array> &&translation_, array> &&files_, string const &value_, string const &hash_); + + static const std::int32_t ID = 2002386193; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class error final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 code_; + string message_; + + error(); + + error(int32 code_, string const &message_); + + static const std::int32_t ID = -1679978726; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText; + +class factCheck final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr text_; + string country_code_; + + factCheck(); + + factCheck(object_ptr &&text_, string const &country_code_); + + static const std::int32_t ID = -1048184552; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class failedToAddMember final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + bool premium_would_allow_invite_; + bool premium_required_to_send_messages_; + + failedToAddMember(); + + failedToAddMember(int53 user_id_, bool premium_would_allow_invite_, bool premium_required_to_send_messages_); + + static const std::int32_t ID = -282891070; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class failedToAddMember; + +class failedToAddMembers final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> failed_to_add_members_; + + failedToAddMembers(); + + explicit failedToAddMembers(array> &&failed_to_add_members_); + + static const std::int32_t ID = -272587152; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class localFile; + +class remoteFile; + +class file final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + int53 size_; + int53 expected_size_; + object_ptr local_; + object_ptr remote_; + + file(); + + file(int32 id_, int53 size_, int53 expected_size_, object_ptr &&local_, object_ptr &&remote_); + + static const std::int32_t ID = 1263291956; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message; + +class fileDownload final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 file_id_; + object_ptr message_; + int32 add_date_; + int32 complete_date_; + bool is_paused_; + + fileDownload(); + + fileDownload(int32 file_id_, object_ptr &&message_, int32 add_date_, int32 complete_date_, bool is_paused_); + + static const std::int32_t ID = -2092100780; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileDownloadedPrefixSize final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 size_; + + fileDownloadedPrefixSize(); + + explicit fileDownloadedPrefixSize(int53 size_); + + static const std::int32_t ID = -2015205381; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class filePart final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes data_; + + filePart(); + + explicit filePart(bytes const &data_); + + static const std::int32_t ID = 911821878; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FileType: public Object { + public: +}; + +class fileTypeNone final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeNone(); + + static const std::int32_t ID = 2003009189; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeAnimation final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeAnimation(); + + static const std::int32_t ID = -290816582; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeAudio final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeAudio(); + + static const std::int32_t ID = -709112160; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeDocument final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeDocument(); + + static const std::int32_t ID = -564722929; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeNotificationSound final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeNotificationSound(); + + static const std::int32_t ID = -1020289271; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypePhoto final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypePhoto(); + + static const std::int32_t ID = -1718914651; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypePhotoStory final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypePhotoStory(); + + static const std::int32_t ID = 2018995956; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeProfilePhoto final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeProfilePhoto(); + + static const std::int32_t ID = 1795089315; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecret final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSecret(); + + static const std::int32_t ID = -1871899401; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecretThumbnail final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSecretThumbnail(); + + static const std::int32_t ID = -1401326026; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecure final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSecure(); + + static const std::int32_t ID = -1419133146; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSelfDestructingPhoto final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSelfDestructingPhoto(); + + static const std::int32_t ID = 2077176475; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSelfDestructingVideo final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSelfDestructingVideo(); + + static const std::int32_t ID = -1223900123; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSelfDestructingVideoNote final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSelfDestructingVideoNote(); + + static const std::int32_t ID = 1495274177; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSelfDestructingVoiceNote final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSelfDestructingVoiceNote(); + + static const std::int32_t ID = 1691409181; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSticker final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeSticker(); + + static const std::int32_t ID = 475233385; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeThumbnail final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeThumbnail(); + + static const std::int32_t ID = -12443298; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeUnknown final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeUnknown(); + + static const std::int32_t ID = -2011566768; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVideo final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeVideo(); + + static const std::int32_t ID = 1430816539; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVideoNote final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeVideoNote(); + + static const std::int32_t ID = -518412385; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVideoStory final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeVideoStory(); + + static const std::int32_t ID = -2146754143; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVoiceNote final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeVoiceNote(); + + static const std::int32_t ID = -588681661; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeWallpaper final : public FileType { + std::int32_t get_id() const final { + return ID; + } + + public: + + fileTypeWallpaper(); + + static const std::int32_t ID = 1854930076; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FirebaseAuthenticationSettings: public Object { + public: +}; + +class firebaseAuthenticationSettingsAndroid final : public FirebaseAuthenticationSettings { + std::int32_t get_id() const final { + return ID; + } + + public: + + firebaseAuthenticationSettingsAndroid(); + + static const std::int32_t ID = -1771112932; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class firebaseAuthenticationSettingsIos final : public FirebaseAuthenticationSettings { + std::int32_t get_id() const final { + return ID; + } + + public: + string device_token_; + bool is_app_sandbox_; + + firebaseAuthenticationSettingsIos(); + + firebaseAuthenticationSettingsIos(string const &device_token_, bool is_app_sandbox_); + + static const std::int32_t ID = 222930116; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FirebaseDeviceVerificationParameters: public Object { + public: +}; + +class firebaseDeviceVerificationParametersSafetyNet final : public FirebaseDeviceVerificationParameters { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes nonce_; + + firebaseDeviceVerificationParametersSafetyNet(); + + explicit firebaseDeviceVerificationParametersSafetyNet(bytes const &nonce_); + + static const std::int32_t ID = 731296497; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class firebaseDeviceVerificationParametersPlayIntegrity final : public FirebaseDeviceVerificationParameters { + std::int32_t get_id() const final { + return ID; + } + + public: + string nonce_; + int64 cloud_project_number_; + + firebaseDeviceVerificationParametersPlayIntegrity(); + + firebaseDeviceVerificationParametersPlayIntegrity(string const &nonce_, int64 cloud_project_number_); + + static const std::int32_t ID = -889936502; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntity; + +class formattedText final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + array> entities_; + + formattedText(); + + formattedText(string const &text_, array> &&entities_); + + static const std::int32_t ID = -252624564; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatNotificationSettings; + +class draftMessage; + +class forumTopicInfo; + +class message; + +class forumTopic final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr info_; + object_ptr last_message_; + bool is_pinned_; + int32 unread_count_; + int53 last_read_inbox_message_id_; + int53 last_read_outbox_message_id_; + int32 unread_mention_count_; + int32 unread_reaction_count_; + object_ptr notification_settings_; + object_ptr draft_message_; + + forumTopic(); + + forumTopic(object_ptr &&info_, object_ptr &&last_message_, bool is_pinned_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr &¬ification_settings_, object_ptr &&draft_message_); + + static const std::int32_t ID = 303279334; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopicIcon final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 color_; + int64 custom_emoji_id_; + + forumTopicIcon(); + + forumTopicIcon(int32 color_, int64 custom_emoji_id_); + + static const std::int32_t ID = -818765421; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class forumTopicIcon; + +class forumTopicInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 message_thread_id_; + string name_; + object_ptr icon_; + int32 creation_date_; + object_ptr creator_id_; + bool is_general_; + bool is_outgoing_; + bool is_closed_; + bool is_hidden_; + + forumTopicInfo(); + + forumTopicInfo(int53 message_thread_id_, string const &name_, object_ptr &&icon_, int32 creation_date_, object_ptr &&creator_id_, bool is_general_, bool is_outgoing_, bool is_closed_, bool is_hidden_); + + static const std::int32_t ID = -1879842914; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopic; + +class forumTopics final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> topics_; + int32 next_offset_date_; + int53 next_offset_message_id_; + int53 next_offset_message_thread_id_; + + forumTopics(); + + forumTopics(int32 total_count_, array> &&topics_, int32 next_offset_date_, int53 next_offset_message_id_, int53 next_offset_message_thread_id_); + + static const std::int32_t ID = 732819537; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class forwardSource final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + int53 message_id_; + object_ptr sender_id_; + string sender_name_; + int32 date_; + bool is_outgoing_; + + forwardSource(); + + forwardSource(int53 chat_id_, int53 message_id_, object_ptr &&sender_id_, string const &sender_name_, int32 date_, bool is_outgoing_); + + static const std::int32_t ID = 1795337929; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class affiliateProgramInfo; + +class foundAffiliateProgram final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 bot_user_id_; + object_ptr info_; + + foundAffiliateProgram(); + + foundAffiliateProgram(int53 bot_user_id_, object_ptr &&info_); + + static const std::int32_t ID = -966565242; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundAffiliateProgram; + +class foundAffiliatePrograms final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> programs_; + string next_offset_; + + foundAffiliatePrograms(); + + foundAffiliatePrograms(int32 total_count_, array> &&programs_, string const &next_offset_); + + static const std::int32_t ID = 186317057; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBoost; + +class foundChatBoosts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> boosts_; + string next_offset_; + + foundChatBoosts(); + + foundChatBoosts(int32 total_count_, array> &&boosts_, string const &next_offset_); + + static const std::int32_t ID = 51457680; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message; + +class foundChatMessages final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> messages_; + int53 next_from_message_id_; + + foundChatMessages(); + + foundChatMessages(int32 total_count_, array> &&messages_, int53 next_from_message_id_); + + static const std::int32_t ID = 427484196; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class downloadedFileCounts; + +class fileDownload; + +class foundFileDownloads final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr total_counts_; + array> files_; + string next_offset_; + + foundFileDownloads(); + + foundFileDownloads(object_ptr &&total_counts_, array> &&files_, string const &next_offset_); + + static const std::int32_t ID = 1395890392; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message; + +class foundMessages final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> messages_; + string next_offset_; + + foundMessages(); + + foundMessages(int32 total_count_, array> &&messages_, string const &next_offset_); + + static const std::int32_t ID = -529809608; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundPosition final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 position_; + + foundPosition(); + + explicit foundPosition(int32 position_); + + static const std::int32_t ID = -1886724216; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundPositions final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array positions_; + + foundPositions(); + + foundPositions(int32 total_count_, array &&positions_); + + static const std::int32_t ID = -80518368; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class story; + +class foundStories final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 total_count_; + array> stories_; + string next_offset_; + + foundStories(); + + foundStories(int32 total_count_, array> &&stories_, string const &next_offset_); + + static const std::int32_t ID = 1678513512; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundUsers final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array user_ids_; + string next_offset_; + + foundUsers(); + + foundUsers(array &&user_ids_, string const &next_offset_); + + static const std::int32_t ID = 1150570075; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webApp; + +class foundWebApp final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr web_app_; + bool request_write_access_; + bool skip_confirmation_; + + foundWebApp(); + + foundWebApp(object_ptr &&web_app_, bool request_write_access_, bool skip_confirmation_); + + static const std::int32_t ID = -290926562; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animation; + +class formattedText; + +class photo; + +class game final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + string short_name_; + string title_; + object_ptr text_; + string description_; + object_ptr photo_; + object_ptr animation_; + + game(); + + game(int64 id_, string const &short_name_, string const &title_, object_ptr &&text_, string const &description_, object_ptr &&photo_, object_ptr &&animation_); + + static const std::int32_t ID = -1565597752; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gameHighScore final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 position_; + int53 user_id_; + int32 score_; + + gameHighScore(); + + gameHighScore(int32 position_, int53 user_id_, int32 score_); + + static const std::int32_t ID = 342871838; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gameHighScore; + +class gameHighScores final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> scores_; + + gameHighScores(); + + explicit gameHighScores(array> &&scores_); + + static const std::int32_t ID = -725770727; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sticker; + +class gift final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int64 id_; + object_ptr sticker_; + int53 star_count_; + int53 default_sell_star_count_; + int53 upgrade_star_count_; + bool is_for_birthday_; + int32 remaining_count_; + int32 total_count_; + int32 first_send_date_; + int32 last_send_date_; + + gift(); + + gift(int64 id_, object_ptr &&sticker_, int53 star_count_, int53 default_sell_star_count_, int53 upgrade_star_count_, bool is_for_birthday_, int32 remaining_count_, int32 total_count_, int32 first_send_date_, int32 last_send_date_); + + static const std::int32_t ID = 2096710701; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upgradedGiftBackdrop; + +class upgradedGiftModel; + +class upgradedGiftSymbol; + +class giftUpgradePreview final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> models_; + array> symbols_; + array> backdrops_; + + giftUpgradePreview(); + + giftUpgradePreview(array> &&models_, array> &&symbols_, array> &&backdrops_); + + static const std::int32_t ID = 729908218; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gift; + +class gifts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> gifts_; + + gifts(); + + explicit gifts(array> &&gifts_); + + static const std::int32_t ID = 1652323382; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GiveawayParticipantStatus; + +class GiveawayInfo: public Object { + public: +}; + +class giveawayInfoOngoing final : public GiveawayInfo { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 creation_date_; + object_ptr status_; + bool is_ended_; + + giveawayInfoOngoing(); + + giveawayInfoOngoing(int32 creation_date_, object_ptr &&status_, bool is_ended_); + + static const std::int32_t ID = 1649336400; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayInfoCompleted final : public GiveawayInfo { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 creation_date_; + int32 actual_winners_selection_date_; + bool was_refunded_; + bool is_winner_; + int32 winner_count_; + int32 activation_count_; + string gift_code_; + int53 won_star_count_; + + giveawayInfoCompleted(); + + giveawayInfoCompleted(int32 creation_date_, int32 actual_winners_selection_date_, bool was_refunded_, bool is_winner_, int32 winner_count_, int32 activation_count_, string const &gift_code_, int53 won_star_count_); + + static const std::int32_t ID = 848085852; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayParameters final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 boosted_chat_id_; + array additional_chat_ids_; + int32 winners_selection_date_; + bool only_new_members_; + bool has_public_winners_; + array country_codes_; + string prize_description_; + + giveawayParameters(); + + giveawayParameters(int53 boosted_chat_id_, array &&additional_chat_ids_, int32 winners_selection_date_, bool only_new_members_, bool has_public_winners_, array &&country_codes_, string const &prize_description_); + + static const std::int32_t ID = 1171549354; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GiveawayParticipantStatus: public Object { + public: +}; + +class giveawayParticipantStatusEligible final : public GiveawayParticipantStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + + giveawayParticipantStatusEligible(); + + static const std::int32_t ID = 304799383; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayParticipantStatusParticipating final : public GiveawayParticipantStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + + giveawayParticipantStatusParticipating(); + + static const std::int32_t ID = 492036975; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayParticipantStatusAlreadyWasMember final : public GiveawayParticipantStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 joined_chat_date_; + + giveawayParticipantStatusAlreadyWasMember(); + + explicit giveawayParticipantStatusAlreadyWasMember(int32 joined_chat_date_); + + static const std::int32_t ID = 301577632; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayParticipantStatusAdministrator final : public GiveawayParticipantStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 chat_id_; + + giveawayParticipantStatusAdministrator(); + + explicit giveawayParticipantStatusAdministrator(int53 chat_id_); + + static const std::int32_t ID = -934593931; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayParticipantStatusDisallowedCountry final : public GiveawayParticipantStatus { + std::int32_t get_id() const final { + return ID; + } + + public: + string user_country_code_; + + giveawayParticipantStatusDisallowedCountry(); + + explicit giveawayParticipantStatusDisallowedCountry(string const &user_country_code_); + + static const std::int32_t ID = 1879794779; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GiveawayPrize: public Object { + public: +}; + +class giveawayPrizePremium final : public GiveawayPrize { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 month_count_; + + giveawayPrizePremium(); + + explicit giveawayPrizePremium(int32 month_count_); + + static const std::int32_t ID = 454224248; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class giveawayPrizeStars final : public GiveawayPrize { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 star_count_; + + giveawayPrizeStars(); + + explicit giveawayPrizeStars(int53 star_count_); + + static const std::int32_t ID = -1790173276; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallRecentSpeaker; + +class groupCall final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + int32 from_call_id_; + string title_; + int32 scheduled_start_date_; + bool enabled_start_notification_; + bool is_active_; + bool is_rtmp_stream_; + bool is_joined_; + bool need_rejoin_; + bool can_be_managed_; + int32 participant_count_; + bool has_hidden_listeners_; + bool loaded_all_participants_; + array> recent_speakers_; + bool is_my_video_enabled_; + bool is_my_video_paused_; + bool can_enable_video_; + bool mute_new_participants_; + bool can_toggle_mute_new_participants_; + int32 record_duration_; + bool is_video_recorded_; + int32 duration_; + + groupCall(); + + groupCall(int32 id_, int32 from_call_id_, string const &title_, int32 scheduled_start_date_, bool enabled_start_notification_, bool is_active_, bool is_rtmp_stream_, bool is_joined_, bool need_rejoin_, bool can_be_managed_, int32 participant_count_, bool has_hidden_listeners_, bool loaded_all_participants_, array> &&recent_speakers_, bool is_my_video_enabled_, bool is_my_video_paused_, bool can_enable_video_, bool mute_new_participants_, bool can_toggle_mute_new_participants_, int32 record_duration_, bool is_video_recorded_, int32 duration_); + + static const std::int32_t ID = 186241327; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallId final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 id_; + + groupCallId(); + + explicit groupCallId(int32 id_); + + static const std::int32_t ID = 350534469; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class groupCallParticipantVideoInfo; + +class groupCallParticipant final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr participant_id_; + int32 audio_source_id_; + int32 screen_sharing_audio_source_id_; + object_ptr video_info_; + object_ptr screen_sharing_video_info_; + string bio_; + bool is_current_user_; + bool is_speaking_; + bool is_hand_raised_; + bool can_be_muted_for_all_users_; + bool can_be_unmuted_for_all_users_; + bool can_be_muted_for_current_user_; + bool can_be_unmuted_for_current_user_; + bool is_muted_for_all_users_; + bool is_muted_for_current_user_; + bool can_unmute_self_; + int32 volume_level_; + string order_; + + groupCallParticipant(); + + groupCallParticipant(object_ptr &&participant_id_, int32 audio_source_id_, int32 screen_sharing_audio_source_id_, object_ptr &&video_info_, object_ptr &&screen_sharing_video_info_, string const &bio_, bool is_current_user_, bool is_speaking_, bool is_hand_raised_, bool can_be_muted_for_all_users_, bool can_be_unmuted_for_all_users_, bool can_be_muted_for_current_user_, bool can_be_unmuted_for_current_user_, bool is_muted_for_all_users_, bool is_muted_for_current_user_, bool can_unmute_self_, int32 volume_level_, string const &order_); + + static const std::int32_t ID = 2059182571; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoSourceGroup; + +class groupCallParticipantVideoInfo final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> source_groups_; + string endpoint_id_; + bool is_paused_; + + groupCallParticipantVideoInfo(); + + groupCallParticipantVideoInfo(array> &&source_groups_, string const &endpoint_id_, bool is_paused_); + + static const std::int32_t ID = -14294645; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender; + +class groupCallRecentSpeaker final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + object_ptr participant_id_; + bool is_speaking_; + + groupCallRecentSpeaker(); + + groupCallRecentSpeaker(object_ptr &&participant_id_, bool is_speaking_); + + static const std::int32_t ID = 1819519436; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallStream final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + int32 channel_id_; + int32 scale_; + int53 time_offset_; + + groupCallStream(); + + groupCallStream(int32 channel_id_, int32 scale_, int53 time_offset_); + + static const std::int32_t ID = -264564795; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallStream; + +class groupCallStreams final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array> streams_; + + groupCallStreams(); + + explicit groupCallStreams(array> &&streams_); + + static const std::int32_t ID = -1032959578; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GroupCallVideoQuality: public Object { + public: +}; + +class groupCallVideoQualityThumbnail final : public GroupCallVideoQuality { + std::int32_t get_id() const final { + return ID; + } + + public: + + groupCallVideoQualityThumbnail(); + + static const std::int32_t ID = -379186304; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoQualityMedium final : public GroupCallVideoQuality { + std::int32_t get_id() const final { + return ID; + } + + public: + + groupCallVideoQualityMedium(); + + static const std::int32_t ID = 394968234; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoQualityFull final : public GroupCallVideoQuality { + std::int32_t get_id() const final { + return ID; + } + + public: + + groupCallVideoQualityFull(); + + static const std::int32_t ID = -2125916617; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoSourceGroup final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string semantics_; + array source_ids_; + + groupCallVideoSourceGroup(); + + groupCallVideoSourceGroup(string const &semantics_, array &&source_ids_); + + static const std::int32_t ID = -1190900785; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class hashtags final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array hashtags_; + + hashtags(); + + explicit hashtags(array &&hashtags_); + + static const std::int32_t ID = 676798885; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class httpUrl final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + + httpUrl(); + + explicit httpUrl(string const &url_); + + static const std::int32_t ID = -2018019930; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class date; + +class datedFile; + +class identityDocument final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string number_; + object_ptr expiration_date_; + object_ptr front_side_; + object_ptr reverse_side_; + object_ptr selfie_; + array> translation_; + + identityDocument(); + + identityDocument(string const &number_, object_ptr &&expiration_date_, object_ptr &&front_side_, object_ptr &&reverse_side_, object_ptr &&selfie_, array> &&translation_); + + static const std::int32_t ID = 1001703606; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class importedContacts final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + array user_ids_; + array importer_count_; + + importedContacts(); + + importedContacts(array &&user_ids_, array &&importer_count_); + + static const std::int32_t ID = 2068432290; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InlineKeyboardButtonType; + +class inlineKeyboardButton final : public Object { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + object_ptr type_; + + inlineKeyboardButton(); + + inlineKeyboardButton(string const &text_, object_ptr &&type_); + + static const std::int32_t ID = -372105704; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TargetChat; + +class InlineKeyboardButtonType: public Object { + public: +}; + +class inlineKeyboardButtonTypeUrl final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + + inlineKeyboardButtonTypeUrl(); + + explicit inlineKeyboardButtonTypeUrl(string const &url_); + + static const std::int32_t ID = 1130741420; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeLoginUrl final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + int53 id_; + string forward_text_; + + inlineKeyboardButtonTypeLoginUrl(); + + inlineKeyboardButtonTypeLoginUrl(string const &url_, int53 id_, string const &forward_text_); + + static const std::int32_t ID = -1203413081; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeWebApp final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + string url_; + + inlineKeyboardButtonTypeWebApp(); + + explicit inlineKeyboardButtonTypeWebApp(string const &url_); + + static const std::int32_t ID = -1767471672; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallback final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes data_; + + inlineKeyboardButtonTypeCallback(); + + explicit inlineKeyboardButtonTypeCallback(bytes const &data_); + + static const std::int32_t ID = -1127515139; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallbackWithPassword final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + bytes data_; + + inlineKeyboardButtonTypeCallbackWithPassword(); + + explicit inlineKeyboardButtonTypeCallbackWithPassword(bytes const &data_); + + static const std::int32_t ID = 908018248; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallbackGame final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + + inlineKeyboardButtonTypeCallbackGame(); + + static const std::int32_t ID = -383429528; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeSwitchInline final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + string query_; + object_ptr target_chat_; + + inlineKeyboardButtonTypeSwitchInline(); + + inlineKeyboardButtonTypeSwitchInline(string const &query_, object_ptr &&target_chat_); + + static const std::int32_t ID = 544906485; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeBuy final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + + inlineKeyboardButtonTypeBuy(); + + static const std::int32_t ID = 1360739440; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeUser final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + int53 user_id_; + + inlineKeyboardButtonTypeUser(); + + explicit inlineKeyboardButtonTypeUser(int53 user_id_); + + static const std::int32_t ID = 1836574114; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCopyText final : public InlineKeyboardButtonType { + std::int32_t get_id() const final { + return ID; + } + + public: + string text_; + + inlineKeyboardButtonTypeCopyText(); + + explicit inlineKeyboardButtonTypeCopyText(string const &text_); + + static const std::int32_t ID = 68883206; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animation; + +class audio; + +class contact; + +class document; + +class game; + +class location; + +class photo; + +class sticker; + +class thumbnail; + +class venue; + +class video; + +class voiceNote; + +class InlineQueryResult: public Object { + public: +}; + +class inlineQueryResultArticle final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + string url_; + string title_; + string description_; + object_ptr thumbnail_; + + inlineQueryResultArticle(); + + inlineQueryResultArticle(string const &id_, string const &url_, string const &title_, string const &description_, object_ptr &&thumbnail_); + + static const std::int32_t ID = 269930522; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultContact final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr contact_; + object_ptr thumbnail_; + + inlineQueryResultContact(); + + inlineQueryResultContact(string const &id_, object_ptr &&contact_, object_ptr &&thumbnail_); + + static const std::int32_t ID = -181960174; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultLocation final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr location_; + string title_; + object_ptr thumbnail_; + + inlineQueryResultLocation(); + + inlineQueryResultLocation(string const &id_, object_ptr &&location_, string const &title_, object_ptr &&thumbnail_); + + static const std::int32_t ID = 466004752; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultVenue final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr venue_; + object_ptr thumbnail_; + + inlineQueryResultVenue(); + + inlineQueryResultVenue(string const &id_, object_ptr &&venue_, object_ptr &&thumbnail_); + + static const std::int32_t ID = 1281036382; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultGame final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr game_; + + inlineQueryResultGame(); + + inlineQueryResultGame(string const &id_, object_ptr &&game_); + + static const std::int32_t ID = 1706916987; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultAnimation final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr animation_; + string title_; + + inlineQueryResultAnimation(); + + inlineQueryResultAnimation(string const &id_, object_ptr &&animation_, string const &title_); + + static const std::int32_t ID = 2009984267; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultAudio final : public InlineQueryResult { + std::int32_t get_id() const final { + return ID; + } + + public: + string id_; + object_ptr