From 55d26718d159d0a8093a59a0f45bf51a1080d364 Mon Sep 17 00:00:00 2001 From: Alex Semin Date: Sat, 15 Jul 2023 11:27:27 +0200 Subject: [PATCH] Add files --- .editorconfig | 14 + .gitattributes | 11 + .github/workflows/.ci-java-version | 1 + .github/workflows/check.yml | 28 + .github/workflows/release.yml | 35 + .gitignore | 16 + LICENSE | 21 + README.md | 62 + api-spec/telegram-bot-api.html | 11424 +++++++++++++++ api/tbot-api.api | 11671 ++++++++++++++++ build.gradle.kts | 169 + buildSrc/build.gradle.kts | 27 + buildSrc/settings.gradle.kts | 1 + .../main/kotlin/GenerateTelegramBotApiTask.kt | 33 + .../tbot/apigen/BotApiDefinitionParser.kt | 401 + .../me/alllex/tbot/apigen/BotApiGenerator.kt | 985 ++ .../main/kotlin/me/alllex/tbot/apigen/util.kt | 35 + gradle.properties | 3 + gradle/libs.versions.toml | 45 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 63721 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 249 + gradlew.bat | 92 + settings.gradle.kts | 14 + .../me/alllex/tbot/api/model/Methods.kt | 2170 +++ .../me/alllex/tbot/api/model/RequestTypes.kt | 2122 +++ .../me/alllex/tbot/api/model/TryMethods.kt | 2019 +++ .../tbot/api/model/TryRequestMethods.kt | 2069 +++ .../tbot/api/model/TryWithContextMethods.kt | 2170 +++ .../me/alllex/tbot/api/model/Types.kt | 3492 +++++ .../tbot/api/model/WithContextMethods.kt | 3092 ++++ .../tbot/api/client/TelegramBotApiClient.kt | 95 + .../tbot/api/client/TelegramBotApiContext.kt | 5 + .../api/client/TelegramBotApiException.kt | 10 + .../tbot/api/client/TelegramBotApiPoller.kt | 205 + .../api/client/TelegramBotUpdateListener.kt | 151 + .../tbot/api/client/TelegramResponse.kt | 23 + .../me/alllex/tbot/api/model/Helpers.kt | 64 + .../api/model/InlineKeyboardMarkupBuilder.kt | 158 + .../me/alllex/tbot/api/model/ParseMode.kt | 24 + .../kotlin/me/alllex/tbot/api/model/util.kt | 32 + .../api/client/TelegramBotApiClientTest.kt | 202 + .../api/client/TelegramBotApiPollerTest.kt | 112 + .../kotlin/me/alllex/tbot/demo/EchoBot.kt | 52 + src/test/resources/log4j2-test.properties | 8 + version.txt | 1 + 46 files changed, 43620 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .github/workflows/.ci-java-version create mode 100644 .github/workflows/check.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 api-spec/telegram-bot-api.html create mode 100644 api/tbot-api.api create mode 100644 build.gradle.kts create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/settings.gradle.kts create mode 100644 buildSrc/src/main/kotlin/GenerateTelegramBotApiTask.kt create mode 100644 buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiDefinitionParser.kt create mode 100644 buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiGenerator.kt create mode 100644 buildSrc/src/main/kotlin/me/alllex/tbot/apigen/util.kt create mode 100644 gradle.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/Methods.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/RequestTypes.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/TryMethods.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/TryRequestMethods.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/TryWithContextMethods.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/Types.kt create mode 100644 src/main/generated-kotlin/me/alllex/tbot/api/model/WithContextMethods.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiClient.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiContext.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiException.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiPoller.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramBotUpdateListener.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/client/TelegramResponse.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/model/Helpers.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/model/ParseMode.kt create mode 100644 src/main/kotlin/me/alllex/tbot/api/model/util.kt create mode 100644 src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiClientTest.kt create mode 100644 src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiPollerTest.kt create mode 100644 src/test/kotlin/me/alllex/tbot/demo/EchoBot.kt create mode 100644 src/test/resources/log4j2-test.properties create mode 100644 version.txt diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..9a8adfe --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +indent_size = 4 +indent_style = space +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[gradlew.bat] +end_of_line = crlf + +[{*.yaml,*.yml}] +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fbfdb69 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,11 @@ + +* text eol=lf + +# These are explicitly windows files and should use crlf +*.bat text eol=crlf + +# These files are text and should be normalized (Convert crlf => lf) +*.sh text eol=lf + +# Mark Gradle wrapper as a binary +gradle/wrapper/gradle-wrapper.jar binary diff --git a/.github/workflows/.ci-java-version b/.github/workflows/.ci-java-version new file mode 100644 index 0000000..98d9bcb --- /dev/null +++ b/.github/workflows/.ci-java-version @@ -0,0 +1 @@ +17 diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..fd938b1 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,28 @@ +name: Check + +on: + workflow_dispatch: {} + pull_request: {} + push: + branches: [ main ] + tags: [ 'v*' ] + +concurrency: + group: "${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" + cancel-in-progress: true + +jobs: + gradle: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + distribution: zulu + java-version-file: .github/workflows/.ci-java-version + + - uses: gradle/gradle-build-action@v2 + with: + gradle-home-cache-cleanup: true + arguments: check diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..535cba6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,35 @@ +name: Release + +on: + workflow_dispatch: {} + push: + tags: + - 'v*' + +concurrency: + group: "release" + cancel-in-progress: false + +jobs: + gradle: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-java@v3 + with: + distribution: zulu + java-version-file: .github/workflows/.ci-java-version + + - uses: gradle/gradle-build-action@v2 + with: + gradle-home-cache-cleanup: true + + - name: Publish artifacts + run: ./gradlew :publishToSonatype :closeAndReleaseSonatypeStagingRepository --no-configuration-cache + env: + ORG_GRADLE_PROJECT_signingKeyId: ${{secrets.SIGNING_KEY_ID}} + ORG_GRADLE_PROJECT_signingKey: ${{secrets.SIGNING_KEY}} + ORG_GRADLE_PROJECT_signingPassword: ${{secrets.SIGNING_PASSWORD}} + ORG_GRADLE_PROJECT_sonatypeUsername: ${{secrets.SONATYPE_USERNAME}} + ORG_GRADLE_PROJECT_sonatypePassword: ${{secrets.SONATYPE_PASSWORD}} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0e77962 --- /dev/null +++ b/.gitignore @@ -0,0 +1,16 @@ + +# Gradle +.gradle +build + +# IDEA +.idea +*.iml +out + +# Platform-specific +# MacOS +.DS_Store + +# Custom development files +/dev diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..cfca3af --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Aleksei Semin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..9ee64bf --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# Telegram Bot API in Kotlin + +Idiomatic, fluent and type-safe Kotlin bindings for [Telegram Bot API](https://core.telegram.org/bots/api). + +```kotlin +val poller = TelegramBotApiPoller(TelegramBotApiClient(botApiToken)) +poller.start(TelegramBotUpdateListener( + onMessage = { message -> + message.reply( + text = "Hello, *${message.from?.firstName ?: "stranger"}*!", + parseMode = ParseMode.MARKDOWN, + replyMarkup = inlineKeyboard { + buttonLink("Telegram", "https://telegram.org") + row { + button("Bot", "bot") + button("API", "api") + } + } + ) + }, + onCallbackQuery = { callbackQuery -> + when (callbackQuery.data) { + "bot" -> callbackQuery.answer("🤖") + "api" -> callbackQuery.answer("🚀") + else -> callbackQuery.answer("🤷") + } + } +)) +``` + +## Compatibility + +The bindings are generated directly from the source-of-truth [Bot API spec](https://core.telegram.org/bots/api). + +| Telegram Bot API | tbot-api library | +|------------------|------------------| +| 6.9 | 0.4.0 | + + +## Developing + +### Updating API to a new version of Telegram Bot API + +``` +./gradlew :buildSrc:updateApiSpec --no-configuration-cache +./gradlew generateTelegramBotApi +./gradlew apiDump +./gradlew check +``` + +## Roadmap + +### Alpha + +- [ ] Error handling + +### Beta + +- [ ] Cleaner package structure +- [ ] Strict library member visibility +- [ ] Forward compatibility: published versions of the library should not break with new API versions (union types and enums) +- [ ] Support for integration tests bots diff --git a/api-spec/telegram-bot-api.html b/api-spec/telegram-bot-api.html new file mode 100644 index 0000000..fc87b38 --- /dev/null +++ b/api-spec/telegram-bot-api.html @@ -0,0 +1,11424 @@ + + + + + Telegram Bot API + + + + + + + + + + + + + + + + +
+ +
+
+
+ +

Telegram Bot API

+ +
+ +
+

The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram.
To learn how to create and set up a bot, please consult our Introduction to Bots and Bot FAQ.

+
+

Recent changes

+
+

Subscribe to @BotNews to be the first to know about the latest updates and join the discussion in @BotTalk

+
+

September 22, 2023

+

Bot API 6.9

+
    +
  • Added the new administrator privileges can_post_stories, can_edit_stories and can_delete_stories to the classes ChatMemberAdministrator and ChatAdministratorRights.
  • +
  • Added the parameters can_post_stories, can_edit_stories and can_delete_stories to the method promoteChatMember. Currently, bots have no use for these privileges besides assigning them to other administrators.
  • +
  • Added the ability to set any header color for Web App using the method setHeaderColor.
  • +
  • Added the field CloudStorage to the class WebApp.
  • +
  • Added the methods requestWriteAccess and requestContact to the class WebApp.
  • +
  • Added Web App events writeAccessRequested and contactRequested.
  • +
  • Added the fields from_request and from_attachment_menu to the class WriteAccessAllowed.
  • +
  • Added the fields added_to_attachment_menu and allows_write_to_pm to the class WebAppUser.
  • +
+

August 18, 2023

+

Bot API 6.8

+
    +
  • Added the field story to the class Message for messages with forwarded stories. Currently, it holds no information.
  • +
  • Added the field voter_chat to the class PollAnswer, to contain channel chat voters in Polls. For backward compatibility, the field user in such objects will contain the user 136817688 (@Channel_Bot).
  • +
  • Added the field emoji_status_expiration_date to the class Chat.
  • +
  • Added the method unpinAllGeneralForumTopicMessages.
  • +
  • Increased to 512 characters the maximum length of the startapp parameter in direct Web App links.
  • +
+

April 21, 2023

+

Bot API 6.7

+
    +
  • Added support for launching Web Apps from inline query results by replacing the parameters switch_pm_text and switch_pm_parameter of the method answerInlineQuery with the parameter button of type InlineQueryResultsButton.
  • +
  • Added the field web_app_name to the class WriteAccessAllowed.
  • +
  • Added the field switch_inline_query_chosen_chat of the type SwitchInlineQueryChosenChat to the class InlineKeyboardButton, which allows bots to switch to inline mode in a chosen chat of the given type.
  • +
  • Added the field via_chat_folder_invite_link to the class ChatMemberUpdated.
  • +
  • Added the ability to set different bot names for different user languages using the method setMyName.
  • +
  • Added the ability to get the current bot name in the given language as the class BotName using the method getMyName.
  • +
  • Added the ability to change bot settings from the bot's profile in official Telegram apps, including the ability to set animated profile photos.
  • +
  • Added the ability to specify custom emoji entities using HTML and MarkdownV2 formatting options for bots that purchased additional usernames on Fragment.
  • +
+

See earlier changes »

+

Authorizing your bot

+

Each bot is given a unique authentication token when it is created. The token looks something like 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11, but we'll use simply <token> in this document instead. You can learn about obtaining tokens and generating new ones in this document.

+

Making requests

+

All queries to the Telegram Bot API must be served over HTTPS and need to be presented in this form: https://api.telegram.org/bot<token>/METHOD_NAME. Like this for example:

+
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe
+

We support GET and POST HTTP methods. We support four ways of passing parameters in Bot API requests:

+
    +
  • URL query string
  • +
  • application/x-www-form-urlencoded
  • +
  • application/json (except for uploading files)
  • +
  • multipart/form-data (use to upload files)
  • +
+

The response contains a JSON object, which always has a Boolean field 'ok' and may have an optional String field 'description' with a human-readable description of the result. If 'ok' equals True, the request was successful and the result of the query can be found in the 'result' field. In case of an unsuccessful request, 'ok' equals false and the error is explained in the 'description'. An Integer 'error_code' field is also returned, but its contents are subject to change in the future. Some errors may also have an optional field 'parameters' of the type ResponseParameters, which can help to automatically handle the error.

+
    +
  • All methods in the Bot API are case-insensitive.
  • +
  • All queries must be made using UTF-8.
  • +
+

Making requests when getting updates

+

If you're using webhooks, you can perform a request to the Bot API while sending an answer to the webhook. Use either application/json or application/x-www-form-urlencoded or multipart/form-data response content type for passing parameters. Specify the method to be invoked in the method parameter of the request. It's not possible to know that such a request was successful or get its result.

+
+

Please see our FAQ for examples.

+
+

Using a Local Bot API Server

+

The Bot API server source code is available at telegram-bot-api. You can run it locally and send the requests to your own server instead of https://api.telegram.org. If you switch to a local Bot API server, your bot will be able to:

+
    +
  • Download files without a size limit.
  • +
  • Upload files up to 2000 MB.
  • +
  • Upload files using their local path and the file URI scheme.
  • +
  • Use an HTTP URL for the webhook.
  • +
  • Use any local IP address for the webhook.
  • +
  • Use any port for the webhook.
  • +
  • Set max_webhook_connections up to 100000.
  • +
  • Receive the absolute local path as a value of the file_path field without the need to download the file after a getFile request.
  • +
+

Do I need a Local Bot API Server

+

The majority of bots will be OK with the default configuration, running on our servers. But if you feel that you need one of these features, you're welcome to switch to your own at any time.

+

Getting updates

+

There are two mutually exclusive ways of receiving updates for your bot - the getUpdates method on one hand and webhooks on the other. Incoming updates are stored on the server until the bot receives them either way, but they will not be kept longer than 24 hours.

+

Regardless of which option you choose, you will receive JSON-serialized Update objects as a result.

+

Update

+

This object represents an incoming update.
At most one of the optional parameters can be present in any given update.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
update_idIntegerThe update's unique identifier. Update identifiers start from a certain positive number and increase sequentially. This ID becomes especially handy if you're using webhooks, since it allows you to ignore repeated updates or to restore the correct update sequence, should they get out of order. If there are no new updates for at least a week, then identifier of the next update will be chosen randomly instead of sequentially.
messageMessageOptional. New incoming message of any kind - text, photo, sticker, etc.
edited_messageMessageOptional. New version of a message that is known to the bot and was edited
channel_postMessageOptional. New incoming channel post of any kind - text, photo, sticker, etc.
edited_channel_postMessageOptional. New version of a channel post that is known to the bot and was edited
inline_queryInlineQueryOptional. New incoming inline query
chosen_inline_resultChosenInlineResultOptional. The result of an inline query that was chosen by a user and sent to their chat partner. Please see our documentation on the feedback collecting for details on how to enable these updates for your bot.
callback_queryCallbackQueryOptional. New incoming callback query
shipping_queryShippingQueryOptional. New incoming shipping query. Only for invoices with flexible price
pre_checkout_queryPreCheckoutQueryOptional. New incoming pre-checkout query. Contains full information about checkout
pollPollOptional. New poll state. Bots receive only updates about stopped polls and polls, which are sent by the bot
poll_answerPollAnswerOptional. A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself.
my_chat_memberChatMemberUpdatedOptional. The bot's chat member status was updated in a chat. For private chats, this update is received only when the bot is blocked or unblocked by the user.
chat_memberChatMemberUpdatedOptional. A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify “chat_member” in the list of allowed_updates to receive these updates.
chat_join_requestChatJoinRequestOptional. A request to join the chat has been sent. The bot must have the can_invite_users administrator right in the chat to receive these updates.
+

getUpdates

+

Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
offsetIntegerOptionalIdentifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten.
limitIntegerOptionalLimits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100.
timeoutIntegerOptionalTimeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only.
allowed_updatesArray of StringOptionalA JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.

Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time.
+
+

Notes
1. This method will not work if an outgoing webhook is set up.
2. In order to avoid getting duplicate updates, recalculate offset after each server response.

+
+

setWebhook

+

Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success.

+

If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
urlStringYesHTTPS URL to send updates to. Use an empty string to remove webhook integration
certificateInputFileOptionalUpload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details.
ip_addressStringOptionalThe fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS
max_connectionsIntegerOptionalThe maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput.
allowed_updatesArray of StringOptionalA JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used.
Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time.
drop_pending_updatesBooleanOptionalPass True to drop all pending updates
secret_tokenStringOptionalA secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you.
+
+

Notes
1. You will not be able to receive updates using getUpdates for as long as an outgoing webhook is set up.
2. To use a self-signed certificate, you need to upload your public key certificate using certificate parameter. Please upload as InputFile, sending a String will not work.
3. Ports currently supported for webhooks: 443, 80, 88, 8443.

+

If you're having any trouble setting up webhooks, please check out this amazing guide to webhooks.

+
+

deleteWebhook

+

Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
drop_pending_updatesBooleanOptionalPass True to drop all pending updates
+

getWebhookInfo

+

Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the url field empty.

+

WebhookInfo

+

Describes the current status of a webhook.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
urlStringWebhook URL, may be empty if webhook is not set up
has_custom_certificateBooleanTrue, if a custom certificate was provided for webhook certificate checks
pending_update_countIntegerNumber of updates awaiting delivery
ip_addressStringOptional. Currently used webhook IP address
last_error_dateIntegerOptional. Unix time for the most recent error that happened when trying to deliver an update via webhook
last_error_messageStringOptional. Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook
last_synchronization_error_dateIntegerOptional. Unix time of the most recent error that happened when trying to synchronize available updates with Telegram datacenters
max_connectionsIntegerOptional. The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery
allowed_updatesArray of StringOptional. A list of update types the bot is subscribed to. Defaults to all update types except chat_member
+

Available types

+

All types used in the Bot API responses are represented as JSON-objects.

+

It is safe to use 32-bit signed integers for storing all Integer fields unless otherwise noted.

+
+

Optional fields may be not returned when irrelevant.

+
+

User

+

This object represents a Telegram user or bot.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idIntegerUnique identifier for this user or bot. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier.
is_botBooleanTrue, if this user is a bot
first_nameStringUser's or bot's first name
last_nameStringOptional. User's or bot's last name
usernameStringOptional. User's or bot's username
language_codeStringOptional. IETF language tag of the user's language
is_premiumTrueOptional. True, if this user is a Telegram Premium user
added_to_attachment_menuTrueOptional. True, if this user added the bot to the attachment menu
can_join_groupsBooleanOptional. True, if the bot can be invited to groups. Returned only in getMe.
can_read_all_group_messagesBooleanOptional. True, if privacy mode is disabled for the bot. Returned only in getMe.
supports_inline_queriesBooleanOptional. True, if the bot supports inline queries. Returned only in getMe.
+

Chat

+

This object represents a chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idIntegerUnique identifier for this chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.
typeStringType of chat, can be either “private”, “group”, “supergroup” or “channel”
titleStringOptional. Title, for supergroups, channels and group chats
usernameStringOptional. Username, for private chats, supergroups and channels if available
first_nameStringOptional. First name of the other party in a private chat
last_nameStringOptional. Last name of the other party in a private chat
is_forumTrueOptional. True, if the supergroup chat is a forum (has topics enabled)
photoChatPhotoOptional. Chat photo. Returned only in getChat.
active_usernamesArray of StringOptional. If non-empty, the list of all active chat usernames; for private chats, supergroups and channels. Returned only in getChat.
emoji_status_custom_emoji_idStringOptional. Custom emoji identifier of emoji status of the other party in a private chat. Returned only in getChat.
emoji_status_expiration_dateIntegerOptional. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat.
bioStringOptional. Bio of the other party in a private chat. Returned only in getChat.
has_private_forwardsTrueOptional. True, if privacy settings of the other party in the private chat allows to use tg://user?id=<user_id> links only in chats with the user. Returned only in getChat.
has_restricted_voice_and_video_messagesTrueOptional. True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat. Returned only in getChat.
join_to_send_messagesTrueOptional. True, if users need to join the supergroup before they can send messages. Returned only in getChat.
join_by_requestTrueOptional. True, if all users directly joining the supergroup need to be approved by supergroup administrators. Returned only in getChat.
descriptionStringOptional. Description, for groups, supergroups and channel chats. Returned only in getChat.
invite_linkStringOptional. Primary invite link, for groups, supergroups and channel chats. Returned only in getChat.
pinned_messageMessageOptional. The most recent pinned message (by sending date). Returned only in getChat.
permissionsChatPermissionsOptional. Default chat member permissions, for groups and supergroups. Returned only in getChat.
slow_mode_delayIntegerOptional. For supergroups, the minimum allowed delay between consecutive messages sent by each unpriviledged user; in seconds. Returned only in getChat.
message_auto_delete_timeIntegerOptional. The time after which all messages sent to the chat will be automatically deleted; in seconds. Returned only in getChat.
has_aggressive_anti_spam_enabledTrueOptional. True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. Returned only in getChat.
has_hidden_membersTrueOptional. True, if non-administrators can only get the list of bots and administrators in the chat. Returned only in getChat.
has_protected_contentTrueOptional. True, if messages from the chat can't be forwarded to other chats. Returned only in getChat.
sticker_set_nameStringOptional. For supergroups, name of group sticker set. Returned only in getChat.
can_set_sticker_setTrueOptional. True, if the bot can change the group sticker set. Returned only in getChat.
linked_chat_idIntegerOptional. Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. This identifier may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier. Returned only in getChat.
locationChatLocationOptional. For supergroups, the location to which the supergroup is connected. Returned only in getChat.
+

Message

+

This object represents a message.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
message_idIntegerUnique message identifier inside this chat
message_thread_idIntegerOptional. Unique identifier of a message thread to which the message belongs; for supergroups only
fromUserOptional. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.
sender_chatChatOptional. Sender of the message, sent on behalf of a chat. For example, the channel itself for channel posts, the supergroup itself for messages from anonymous group administrators, the linked channel for messages automatically forwarded to the discussion group. For backward compatibility, the field from contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat.
dateIntegerDate the message was sent in Unix time
chatChatConversation the message belongs to
forward_fromUserOptional. For forwarded messages, sender of the original message
forward_from_chatChatOptional. For messages forwarded from channels or from anonymous administrators, information about the original sender chat
forward_from_message_idIntegerOptional. For messages forwarded from channels, identifier of the original message in the channel
forward_signatureStringOptional. For forwarded messages that were originally sent in channels or by an anonymous chat administrator, signature of the message sender if present
forward_sender_nameStringOptional. Sender's name for messages forwarded from users who disallow adding a link to their account in forwarded messages
forward_dateIntegerOptional. For forwarded messages, date the original message was sent in Unix time
is_topic_messageTrueOptional. True, if the message is sent to a forum topic
is_automatic_forwardTrueOptional. True, if the message is a channel post that was automatically forwarded to the connected discussion group
reply_to_messageMessageOptional. For replies, the original message. Note that the Message object in this field will not contain further reply_to_message fields even if it itself is a reply.
via_botUserOptional. Bot through which the message was sent
edit_dateIntegerOptional. Date the message was last edited in Unix time
has_protected_contentTrueOptional. True, if the message can't be forwarded
media_group_idStringOptional. The unique identifier of a media message group this message belongs to
author_signatureStringOptional. Signature of the post author for messages in channels, or the custom title of an anonymous group administrator
textStringOptional. For text messages, the actual UTF-8 text of the message
entitiesArray of MessageEntityOptional. For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the text
animationAnimationOptional. Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set
audioAudioOptional. Message is an audio file, information about the file
documentDocumentOptional. Message is a general file, information about the file
photoArray of PhotoSizeOptional. Message is a photo, available sizes of the photo
stickerStickerOptional. Message is a sticker, information about the sticker
storyStoryOptional. Message is a forwarded story
videoVideoOptional. Message is a video, information about the video
video_noteVideoNoteOptional. Message is a video note, information about the video message
voiceVoiceOptional. Message is a voice message, information about the file
captionStringOptional. Caption for the animation, audio, document, photo, video or voice
caption_entitiesArray of MessageEntityOptional. For messages with a caption, special entities like usernames, URLs, bot commands, etc. that appear in the caption
has_media_spoilerTrueOptional. True, if the message media is covered by a spoiler animation
contactContactOptional. Message is a shared contact, information about the contact
diceDiceOptional. Message is a dice with random value
gameGameOptional. Message is a game, information about the game. More about games »
pollPollOptional. Message is a native poll, information about the poll
venueVenueOptional. Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set
locationLocationOptional. Message is a shared location, information about the location
new_chat_membersArray of UserOptional. New members that were added to the group or supergroup and information about them (the bot itself may be one of these members)
left_chat_memberUserOptional. A member was removed from the group, information about them (this member may be the bot itself)
new_chat_titleStringOptional. A chat title was changed to this value
new_chat_photoArray of PhotoSizeOptional. A chat photo was change to this value
delete_chat_photoTrueOptional. Service message: the chat photo was deleted
group_chat_createdTrueOptional. Service message: the group has been created
supergroup_chat_createdTrueOptional. Service message: the supergroup has been created. This field can't be received in a message coming through updates, because bot can't be a member of a supergroup when it is created. It can only be found in reply_to_message if someone replies to a very first message in a directly created supergroup.
channel_chat_createdTrueOptional. Service message: the channel has been created. This field can't be received in a message coming through updates, because bot can't be a member of a channel when it is created. It can only be found in reply_to_message if someone replies to a very first message in a channel.
message_auto_delete_timer_changedMessageAutoDeleteTimerChangedOptional. Service message: auto-delete timer settings changed in the chat
migrate_to_chat_idIntegerOptional. The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.
migrate_from_chat_idIntegerOptional. The supergroup has been migrated from a group with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.
pinned_messageMessageOptional. Specified message was pinned. Note that the Message object in this field will not contain further reply_to_message fields even if it is itself a reply.
invoiceInvoiceOptional. Message is an invoice for a payment, information about the invoice. More about payments »
successful_paymentSuccessfulPaymentOptional. Message is a service message about a successful payment, information about the payment. More about payments »
user_sharedUserSharedOptional. Service message: a user was shared with the bot
chat_sharedChatSharedOptional. Service message: a chat was shared with the bot
connected_websiteStringOptional. The domain name of the website on which the user has logged in. More about Telegram Login »
write_access_allowedWriteAccessAllowedOptional. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess
passport_dataPassportDataOptional. Telegram Passport data
proximity_alert_triggeredProximityAlertTriggeredOptional. Service message. A user in the chat triggered another user's proximity alert while sharing Live Location.
forum_topic_createdForumTopicCreatedOptional. Service message: forum topic created
forum_topic_editedForumTopicEditedOptional. Service message: forum topic edited
forum_topic_closedForumTopicClosedOptional. Service message: forum topic closed
forum_topic_reopenedForumTopicReopenedOptional. Service message: forum topic reopened
general_forum_topic_hiddenGeneralForumTopicHiddenOptional. Service message: the 'General' forum topic hidden
general_forum_topic_unhiddenGeneralForumTopicUnhiddenOptional. Service message: the 'General' forum topic unhidden
video_chat_scheduledVideoChatScheduledOptional. Service message: video chat scheduled
video_chat_startedVideoChatStartedOptional. Service message: video chat started
video_chat_endedVideoChatEndedOptional. Service message: video chat ended
video_chat_participants_invitedVideoChatParticipantsInvitedOptional. Service message: new participants invited to a video chat
web_app_dataWebAppDataOptional. Service message: data sent by a Web App
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message. login_url buttons are represented as ordinary url buttons.
+

MessageId

+

This object represents a unique message identifier.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
message_idIntegerUnique message identifier
+

MessageEntity

+

This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag), “cashtag” ($USD), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers)
offsetIntegerOffset in UTF-16 code units to the start of the entity
lengthIntegerLength of the entity in UTF-16 code units
urlStringOptional. For “text_link” only, URL that will be opened after user taps on the text
userUserOptional. For “text_mention” only, the mentioned user
languageStringOptional. For “pre” only, the programming language of the entity text
custom_emoji_idStringOptional. For “custom_emoji” only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker
+

PhotoSize

+

This object represents one size of a photo or a file / sticker thumbnail.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
widthIntegerPhoto width
heightIntegerPhoto height
file_sizeIntegerOptional. File size in bytes
+

Animation

+

This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
widthIntegerVideo width as defined by sender
heightIntegerVideo height as defined by sender
durationIntegerDuration of the video in seconds as defined by sender
thumbnailPhotoSizeOptional. Animation thumbnail as defined by sender
file_nameStringOptional. Original animation filename as defined by sender
mime_typeStringOptional. MIME type of the file as defined by sender
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
+

Audio

+

This object represents an audio file to be treated as music by the Telegram clients.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
durationIntegerDuration of the audio in seconds as defined by sender
performerStringOptional. Performer of the audio as defined by sender or by audio tags
titleStringOptional. Title of the audio as defined by sender or by audio tags
file_nameStringOptional. Original filename as defined by sender
mime_typeStringOptional. MIME type of the file as defined by sender
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
thumbnailPhotoSizeOptional. Thumbnail of the album cover to which the music file belongs
+

Document

+

This object represents a general file (as opposed to photos, voice messages and audio files).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
thumbnailPhotoSizeOptional. Document thumbnail as defined by sender
file_nameStringOptional. Original filename as defined by sender
mime_typeStringOptional. MIME type of the file as defined by sender
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
+

Story

+

This object represents a message about a forwarded story in the chat. Currently holds no information.

+

Video

+

This object represents a video file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
widthIntegerVideo width as defined by sender
heightIntegerVideo height as defined by sender
durationIntegerDuration of the video in seconds as defined by sender
thumbnailPhotoSizeOptional. Video thumbnail
file_nameStringOptional. Original filename as defined by sender
mime_typeStringOptional. MIME type of the file as defined by sender
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
+

VideoNote

+

This object represents a video message (available in Telegram apps as of v.4.0).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
lengthIntegerVideo width and height (diameter of the video message) as defined by sender
durationIntegerDuration of the video in seconds as defined by sender
thumbnailPhotoSizeOptional. Video thumbnail
file_sizeIntegerOptional. File size in bytes
+

Voice

+

This object represents a voice note.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
durationIntegerDuration of the audio in seconds as defined by sender
mime_typeStringOptional. MIME type of the file as defined by sender
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
+

Contact

+

This object represents a phone contact.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
phone_numberStringContact's phone number
first_nameStringContact's first name
last_nameStringOptional. Contact's last name
user_idIntegerOptional. Contact's user identifier in Telegram. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier.
vcardStringOptional. Additional data about the contact in the form of a vCard
+

Dice

+

This object represents an animated emoji that displays a random value.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
emojiStringEmoji on which the dice throw animation is based
valueIntegerValue of the dice, 1-6 for “🎲”, “🎯” and “🎳” base emoji, 1-5 for “🏀” and “⚽” base emoji, 1-64 for “🎰” base emoji
+

PollOption

+

This object contains information about one answer option in a poll.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
textStringOption text, 1-100 characters
voter_countIntegerNumber of users that voted for this option
+

PollAnswer

+

This object represents an answer of a user in a non-anonymous poll.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
poll_idStringUnique poll identifier
voter_chatChatOptional. The chat that changed the answer to the poll, if the voter is anonymous
userUserOptional. The user that changed the answer to the poll, if the voter isn't anonymous
option_idsArray of Integer0-based identifiers of chosen answer options. May be empty if the vote was retracted.
+

Poll

+

This object contains information about a poll.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringUnique poll identifier
questionStringPoll question, 1-300 characters
optionsArray of PollOptionList of poll options
total_voter_countIntegerTotal number of users that voted in the poll
is_closedBooleanTrue, if the poll is closed
is_anonymousBooleanTrue, if the poll is anonymous
typeStringPoll type, currently can be “regular” or “quiz”
allows_multiple_answersBooleanTrue, if the poll allows multiple answers
correct_option_idIntegerOptional. 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot.
explanationStringOptional. Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters
explanation_entitiesArray of MessageEntityOptional. Special entities like usernames, URLs, bot commands, etc. that appear in the explanation
open_periodIntegerOptional. Amount of time in seconds the poll will be active after creation
close_dateIntegerOptional. Point in time (Unix timestamp) when the poll will be automatically closed
+

Location

+

This object represents a point on the map.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
longitudeFloatLongitude as defined by sender
latitudeFloatLatitude as defined by sender
horizontal_accuracyFloat numberOptional. The radius of uncertainty for the location, measured in meters; 0-1500
live_periodIntegerOptional. Time relative to the message sending date, during which the location can be updated; in seconds. For active live locations only.
headingIntegerOptional. The direction in which user is moving, in degrees; 1-360. For active live locations only.
proximity_alert_radiusIntegerOptional. The maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only.
+

Venue

+

This object represents a venue.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
locationLocationVenue location. Can't be a live location
titleStringName of the venue
addressStringAddress of the venue
foursquare_idStringOptional. Foursquare identifier of the venue
foursquare_typeStringOptional. Foursquare type of the venue. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)
google_place_idStringOptional. Google Places identifier of the venue
google_place_typeStringOptional. Google Places type of the venue. (See supported types.)
+

WebAppData

+

Describes data sent from a Web App to the bot.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
dataStringThe data. Be aware that a bad client can send arbitrary data in this field.
button_textStringText of the web_app keyboard button from which the Web App was opened. Be aware that a bad client can send arbitrary data in this field.
+

ProximityAlertTriggered

+

This object represents the content of a service message, sent whenever a user in the chat triggers a proximity alert set by another user.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
travelerUserUser that triggered the alert
watcherUserUser that set the alert
distanceIntegerThe distance between the users
+

MessageAutoDeleteTimerChanged

+

This object represents a service message about a change in auto-delete timer settings.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
message_auto_delete_timeIntegerNew auto-delete time for messages in the chat; in seconds
+

ForumTopicCreated

+

This object represents a service message about a new forum topic created in the chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
nameStringName of the topic
icon_colorIntegerColor of the topic icon in RGB format
icon_custom_emoji_idStringOptional. Unique identifier of the custom emoji shown as the topic icon
+

ForumTopicClosed

+

This object represents a service message about a forum topic closed in the chat. Currently holds no information.

+

ForumTopicEdited

+

This object represents a service message about an edited forum topic.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
nameStringOptional. New name of the topic, if it was edited
icon_custom_emoji_idStringOptional. New identifier of the custom emoji shown as the topic icon, if it was edited; an empty string if the icon was removed
+

ForumTopicReopened

+

This object represents a service message about a forum topic reopened in the chat. Currently holds no information.

+

GeneralForumTopicHidden

+

This object represents a service message about General forum topic hidden in the chat. Currently holds no information.

+

GeneralForumTopicUnhidden

+

This object represents a service message about General forum topic unhidden in the chat. Currently holds no information.

+

UserShared

+

This object contains information about the user whose identifier was shared with the bot using a KeyboardButtonRequestUser button.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
request_idIntegerIdentifier of the request
user_idIntegerIdentifier of the shared user. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the user and could be unable to use this identifier, unless the user is already known to the bot by some other means.
+

ChatShared

+

This object contains information about the chat whose identifier was shared with the bot using a KeyboardButtonRequestChat button.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
request_idIntegerIdentifier of the request
chat_idIntegerIdentifier of the shared chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the chat and could be unable to use this identifier, unless the chat is already known to the bot by some other means.
+

WriteAccessAllowed

+

This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
from_requestBooleanOptional. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess
web_app_nameStringOptional. Name of the Web App, if the access was granted when the Web App was launched from a link
from_attachment_menuBooleanOptional. True, if the access was granted when the bot was added to the attachment or side menu
+

VideoChatScheduled

+

This object represents a service message about a video chat scheduled in the chat.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
start_dateIntegerPoint in time (Unix timestamp) when the video chat is supposed to be started by a chat administrator
+

VideoChatStarted

+

This object represents a service message about a video chat started in the chat. Currently holds no information.

+

VideoChatEnded

+

This object represents a service message about a video chat ended in the chat.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
durationIntegerVideo chat duration in seconds
+

VideoChatParticipantsInvited

+

This object represents a service message about new members invited to a video chat.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
usersArray of UserNew members that were invited to the video chat
+

UserProfilePhotos

+

This object represent a user's profile pictures.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
total_countIntegerTotal number of profile pictures the target user has
photosArray of Array of PhotoSizeRequested profile pictures (in up to 4 sizes each)
+

File

+

This object represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile.

+
+

The maximum file size to download is 20 MB

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
file_sizeIntegerOptional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value.
file_pathStringOptional. File path. Use https://api.telegram.org/file/bot<token>/<file_path> to get the file.
+

WebAppInfo

+

Describes a Web App.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
urlStringAn HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps
+

ReplyKeyboardMarkup

+

This object represents a custom keyboard with reply options (see Introduction to bots for details and examples).

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
keyboardArray of Array of KeyboardButtonArray of button rows, each represented by an Array of KeyboardButton objects
is_persistentBooleanOptional. Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to false, in which case the custom keyboard can be hidden and opened with a keyboard icon.
resize_keyboardBooleanOptional. Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to false, in which case the custom keyboard is always of the same height as the app's standard keyboard.
one_time_keyboardBooleanOptional. Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to false.
input_field_placeholderStringOptional. The placeholder to be shown in the input field when the keyboard is active; 1-64 characters
selectiveBooleanOptional. Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.

Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard.
+

KeyboardButton

+

This object represents one button of the reply keyboard. For simple text buttons, String can be used instead of this object to specify the button text. The optional fields web_app, request_user, request_chat, request_contact, request_location, and request_poll are mutually exclusive.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
textStringText of the button. If none of the optional fields are used, it will be sent as a message when the button is pressed
request_userKeyboardButtonRequestUserOptional. If specified, pressing the button will open a list of suitable users. Tapping on any user will send their identifier to the bot in a “user_shared” service message. Available in private chats only.
request_chatKeyboardButtonRequestChatOptional. If specified, pressing the button will open a list of suitable chats. Tapping on a chat will send its identifier to the bot in a “chat_shared” service message. Available in private chats only.
request_contactBooleanOptional. If True, the user's phone number will be sent as a contact when the button is pressed. Available in private chats only.
request_locationBooleanOptional. If True, the user's current location will be sent when the button is pressed. Available in private chats only.
request_pollKeyboardButtonPollTypeOptional. If specified, the user will be asked to create a poll and send it to the bot when the button is pressed. Available in private chats only.
web_appWebAppInfoOptional. If specified, the described Web App will be launched when the button is pressed. The Web App will be able to send a “web_app_data” service message. Available in private chats only.
+

Note: request_contact and request_location options will only work in Telegram versions released after 9 April, 2016. Older clients will display unsupported message.
Note: request_poll option will only work in Telegram versions released after 23 January, 2020. Older clients will display unsupported message.
Note: web_app option will only work in Telegram versions released after 16 April, 2022. Older clients will display unsupported message.
Note: request_user and request_chat options will only work in Telegram versions released after 3 February, 2023. Older clients will display unsupported message.

+

KeyboardButtonRequestUser

+

This object defines the criteria used to request a suitable user. The identifier of the selected user will be shared with the bot when the corresponding button is pressed. More about requesting users »

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
request_idIntegerSigned 32-bit identifier of the request, which will be received back in the UserShared object. Must be unique within the message
user_is_botBooleanOptional. Pass True to request a bot, pass False to request a regular user. If not specified, no additional restrictions are applied.
user_is_premiumBooleanOptional. Pass True to request a premium user, pass False to request a non-premium user. If not specified, no additional restrictions are applied.
+

KeyboardButtonRequestChat

+

This object defines the criteria used to request a suitable chat. The identifier of the selected chat will be shared with the bot when the corresponding button is pressed. More about requesting chats »

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
request_idIntegerSigned 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message
chat_is_channelBooleanPass True to request a channel chat, pass False to request a group or a supergroup chat.
chat_is_forumBooleanOptional. Pass True to request a forum supergroup, pass False to request a non-forum chat. If not specified, no additional restrictions are applied.
chat_has_usernameBooleanOptional. Pass True to request a supergroup or a channel with a username, pass False to request a chat without a username. If not specified, no additional restrictions are applied.
chat_is_createdBooleanOptional. Pass True to request a chat owned by the user. Otherwise, no additional restrictions are applied.
user_administrator_rightsChatAdministratorRightsOptional. A JSON-serialized object listing the required administrator rights of the user in the chat. The rights must be a superset of bot_administrator_rights. If not specified, no additional restrictions are applied.
bot_administrator_rightsChatAdministratorRightsOptional. A JSON-serialized object listing the required administrator rights of the bot in the chat. The rights must be a subset of user_administrator_rights. If not specified, no additional restrictions are applied.
bot_is_memberBooleanOptional. Pass True to request a chat with the bot as a member. Otherwise, no additional restrictions are applied.
+

KeyboardButtonPollType

+

This object represents type of a poll, which is allowed to be created and sent when the corresponding button is pressed.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringOptional. If quiz is passed, the user will be allowed to create only polls in the quiz mode. If regular is passed, only regular polls will be allowed. Otherwise, the user will be allowed to create a poll of any type.
+

ReplyKeyboardRemove

+

Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup).

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
remove_keyboardTrueRequests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want to hide the keyboard from sight but keep it accessible, use one_time_keyboard in ReplyKeyboardMarkup)
selectiveBooleanOptional. Use this parameter if you want to remove the keyboard for specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.

Example: A user votes in a poll, bot returns confirmation message in reply to the vote and removes the keyboard for that user, while still showing the keyboard with poll options to users who haven't voted yet.
+

InlineKeyboardMarkup

+

This object represents an inline keyboard that appears right next to the message it belongs to.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
inline_keyboardArray of Array of InlineKeyboardButtonArray of button rows, each represented by an Array of InlineKeyboardButton objects
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will display unsupported message.

+

InlineKeyboardButton

+

This object represents one button of an inline keyboard. You must use exactly one of the optional fields.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
textStringLabel text on the button
urlStringOptional. HTTP or tg:// URL to be opened when the button is pressed. Links tg://user?id=<user_id> can be used to mention a user by their ID without using a username, if this is allowed by their privacy settings.
callback_dataStringOptional. Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes
web_appWebAppInfoOptional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot.
login_urlLoginUrlOptional. An HTTPS URL used to automatically authorize the user. Can be used as a replacement for the Telegram Login Widget.
switch_inline_queryStringOptional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted.
switch_inline_query_current_chatStringOptional. If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field. May be empty, in which case only the bot's username will be inserted.

This offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options.
switch_inline_query_chosen_chatSwitchInlineQueryChosenChatOptional. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field
callback_gameCallbackGameOptional. Description of the game that will be launched when the user presses the button.

NOTE: This type of button must always be the first button in the first row.
payBooleanOptional. Specify True, to send a Pay button.

NOTE: This type of button must always be the first button in the first row and can only be used in invoice messages.
+

LoginUrl

+

This object represents a parameter of the inline keyboard button used to automatically authorize a user. Serves as a great replacement for the Telegram Login Widget when the user is coming from Telegram. All the user needs to do is tap/click a button and confirm that they want to log in:

+
+ TITLE +
+ +

Telegram apps support these buttons as of version 5.7.

+
+

Sample bot: @discussbot

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
urlStringAn HTTPS URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in Receiving authorization data.

NOTE: You must always check the hash of the received data to verify the authentication and the integrity of the data as described in Checking authorization.
forward_textStringOptional. New text of the button in forwarded messages.
bot_usernameStringOptional. Username of a bot, which will be used for user authorization. See Setting up a bot for more details. If not specified, the current bot's username will be assumed. The url's domain must be the same as the domain linked with the bot. See Linking your domain to the bot for more details.
request_write_accessBooleanOptional. Pass True to request the permission for your bot to send messages to the user.
+

SwitchInlineQueryChosenChat

+

This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
queryStringOptional. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted
allow_user_chatsBooleanOptional. True, if private chats with users can be chosen
allow_bot_chatsBooleanOptional. True, if private chats with bots can be chosen
allow_group_chatsBooleanOptional. True, if group and supergroup chats can be chosen
allow_channel_chatsBooleanOptional. True, if channel chats can be chosen
+

CallbackQuery

+

This object represents an incoming callback query from a callback button in an inline keyboard. If the button that originated the query was attached to a message sent by the bot, the field message will be present. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be present. Exactly one of the fields data or game_short_name will be present.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringUnique identifier for this query
fromUserSender
messageMessageOptional. Message with the callback button that originated the query. Note that message content and message date will not be available if the message is too old
inline_message_idStringOptional. Identifier of the message sent via the bot in inline mode, that originated the query.
chat_instanceStringGlobal identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games.
dataStringOptional. Data associated with the callback button. Be aware that the message originated the query can contain no callback buttons with this data.
game_short_nameStringOptional. Short name of a Game to be returned, serves as the unique identifier for the game
+
+

NOTE: After the user presses a callback button, Telegram clients will display a progress bar until you call answerCallbackQuery. It is, therefore, necessary to react by calling answerCallbackQuery even if no notification to the user is needed (e.g., without specifying any of the optional parameters).

+
+

ForceReply

+

Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
force_replyTrueShows reply interface to the user, as if they manually selected the bot's message and tapped 'Reply'
input_field_placeholderStringOptional. The placeholder to be shown in the input field when the reply is active; 1-64 characters
selectiveBooleanOptional. Use this parameter if you want to force reply from specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
+
+

Example: A poll bot for groups runs in privacy mode (only receives commands, replies to its messages and mentions). There could be two ways to create a new poll:

+
    +
  • Explain the user how to send a command with parameters (e.g. /newpoll question answer1 answer2). May be appealing for hardcore users but lacks modern day polish.
  • +
  • Guide the user through a step-by-step process. 'Please send me your question', 'Cool, now let's add the first answer option', 'Great. Keep adding answer options, then send /done when you're ready'.
  • +
+

The last option is definitely more attractive. And if you use ForceReply in your bot's questions, it will receive the user's answers even if it only receives replies, commands and mentions - without any extra work for the user.

+
+

ChatPhoto

+

This object represents a chat photo.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
small_file_idStringFile identifier of small (160x160) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed.
small_file_unique_idStringUnique file identifier of small (160x160) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
big_file_idStringFile identifier of big (640x640) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed.
big_file_unique_idStringUnique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
+

ChatInviteLink

+

Represents an invite link for a chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
invite_linkStringThe invite link. If the link was created by another chat administrator, then the second part of the link will be replaced with “…”.
creatorUserCreator of the link
creates_join_requestBooleanTrue, if users joining the chat via the link need to be approved by chat administrators
is_primaryBooleanTrue, if the link is primary
is_revokedBooleanTrue, if the link is revoked
nameStringOptional. Invite link name
expire_dateIntegerOptional. Point in time (Unix timestamp) when the link will expire or has been expired
member_limitIntegerOptional. The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999
pending_join_request_countIntegerOptional. Number of pending join requests created using this link
+

ChatAdministratorRights

+

Represents the rights of an administrator in a chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
is_anonymousBooleanTrue, if the user's presence in the chat is hidden
can_manage_chatBooleanTrue, if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege
can_delete_messagesBooleanTrue, if the administrator can delete messages of other users
can_manage_video_chatsBooleanTrue, if the administrator can manage video chats
can_restrict_membersBooleanTrue, if the administrator can restrict, ban or unban chat members
can_promote_membersBooleanTrue, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user)
can_change_infoBooleanTrue, if the user is allowed to change the chat title, photo and other settings
can_invite_usersBooleanTrue, if the user is allowed to invite new users to the chat
can_post_messagesBooleanOptional. True, if the administrator can post messages in the channel; channels only
can_edit_messagesBooleanOptional. True, if the administrator can edit messages of other users and can pin messages; channels only
can_pin_messagesBooleanOptional. True, if the user is allowed to pin messages; groups and supergroups only
can_post_storiesBooleanOptional. True, if the administrator can post stories in the channel; channels only
can_edit_storiesBooleanOptional. True, if the administrator can edit stories posted by other users; channels only
can_delete_storiesBooleanOptional. True, if the administrator can delete stories posted by other users; channels only
can_manage_topicsBooleanOptional. True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only
+

ChatMember

+

This object contains information about one member of a chat. Currently, the following 6 types of chat members are supported:

+ +

ChatMemberOwner

+

Represents a chat member that owns the chat and has all administrator privileges.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “creator”
userUserInformation about the user
is_anonymousBooleanTrue, if the user's presence in the chat is hidden
custom_titleStringOptional. Custom title for this user
+

ChatMemberAdministrator

+

Represents a chat member that has some additional privileges.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “administrator”
userUserInformation about the user
can_be_editedBooleanTrue, if the bot is allowed to edit administrator privileges of that user
is_anonymousBooleanTrue, if the user's presence in the chat is hidden
can_manage_chatBooleanTrue, if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege
can_delete_messagesBooleanTrue, if the administrator can delete messages of other users
can_manage_video_chatsBooleanTrue, if the administrator can manage video chats
can_restrict_membersBooleanTrue, if the administrator can restrict, ban or unban chat members
can_promote_membersBooleanTrue, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user)
can_change_infoBooleanTrue, if the user is allowed to change the chat title, photo and other settings
can_invite_usersBooleanTrue, if the user is allowed to invite new users to the chat
can_post_messagesBooleanOptional. True, if the administrator can post messages in the channel; channels only
can_edit_messagesBooleanOptional. True, if the administrator can edit messages of other users and can pin messages; channels only
can_pin_messagesBooleanOptional. True, if the user is allowed to pin messages; groups and supergroups only
can_post_storiesBooleanOptional. True, if the administrator can post stories in the channel; channels only
can_edit_storiesBooleanOptional. True, if the administrator can edit stories posted by other users; channels only
can_delete_storiesBooleanOptional. True, if the administrator can delete stories posted by other users; channels only
can_manage_topicsBooleanOptional. True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only
custom_titleStringOptional. Custom title for this user
+

ChatMemberMember

+

Represents a chat member that has no additional privileges or restrictions.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “member”
userUserInformation about the user
+

ChatMemberRestricted

+

Represents a chat member that is under certain restrictions in the chat. Supergroups only.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “restricted”
userUserInformation about the user
is_memberBooleanTrue, if the user is a member of the chat at the moment of the request
can_send_messagesBooleanTrue, if the user is allowed to send text messages, contacts, invoices, locations and venues
can_send_audiosBooleanTrue, if the user is allowed to send audios
can_send_documentsBooleanTrue, if the user is allowed to send documents
can_send_photosBooleanTrue, if the user is allowed to send photos
can_send_videosBooleanTrue, if the user is allowed to send videos
can_send_video_notesBooleanTrue, if the user is allowed to send video notes
can_send_voice_notesBooleanTrue, if the user is allowed to send voice notes
can_send_pollsBooleanTrue, if the user is allowed to send polls
can_send_other_messagesBooleanTrue, if the user is allowed to send animations, games, stickers and use inline bots
can_add_web_page_previewsBooleanTrue, if the user is allowed to add web page previews to their messages
can_change_infoBooleanTrue, if the user is allowed to change the chat title, photo and other settings
can_invite_usersBooleanTrue, if the user is allowed to invite new users to the chat
can_pin_messagesBooleanTrue, if the user is allowed to pin messages
can_manage_topicsBooleanTrue, if the user is allowed to create forum topics
until_dateIntegerDate when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever
+

ChatMemberLeft

+

Represents a chat member that isn't currently a member of the chat, but may join it themselves.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “left”
userUserInformation about the user
+

ChatMemberBanned

+

Represents a chat member that was banned in the chat and can't return to the chat or view chat messages.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
statusStringThe member's status in the chat, always “kicked”
userUserInformation about the user
until_dateIntegerDate when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever
+

ChatMemberUpdated

+

This object represents changes in the status of a chat member.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
chatChatChat the user belongs to
fromUserPerformer of the action, which resulted in the change
dateIntegerDate the change was done in Unix time
old_chat_memberChatMemberPrevious information about the chat member
new_chat_memberChatMemberNew information about the chat member
invite_linkChatInviteLinkOptional. Chat invite link, which was used by the user to join the chat; for joining by invite link events only.
via_chat_folder_invite_linkBooleanOptional. True, if the user joined the chat via a chat folder invite link
+

ChatJoinRequest

+

Represents a join request sent to a chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
chatChatChat to which the request was sent
fromUserUser that sent the join request
user_chat_idIntegerIdentifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user.
dateIntegerDate the request was sent in Unix time
bioStringOptional. Bio of the user.
invite_linkChatInviteLinkOptional. Chat invite link that was used by the user to send the join request
+

ChatPermissions

+

Describes actions that a non-administrator user is allowed to take in a chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
can_send_messagesBooleanOptional. True, if the user is allowed to send text messages, contacts, invoices, locations and venues
can_send_audiosBooleanOptional. True, if the user is allowed to send audios
can_send_documentsBooleanOptional. True, if the user is allowed to send documents
can_send_photosBooleanOptional. True, if the user is allowed to send photos
can_send_videosBooleanOptional. True, if the user is allowed to send videos
can_send_video_notesBooleanOptional. True, if the user is allowed to send video notes
can_send_voice_notesBooleanOptional. True, if the user is allowed to send voice notes
can_send_pollsBooleanOptional. True, if the user is allowed to send polls
can_send_other_messagesBooleanOptional. True, if the user is allowed to send animations, games, stickers and use inline bots
can_add_web_page_previewsBooleanOptional. True, if the user is allowed to add web page previews to their messages
can_change_infoBooleanOptional. True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups
can_invite_usersBooleanOptional. True, if the user is allowed to invite new users to the chat
can_pin_messagesBooleanOptional. True, if the user is allowed to pin messages. Ignored in public supergroups
can_manage_topicsBooleanOptional. True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages
+

ChatLocation

+

Represents a location to which a chat is connected.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
locationLocationThe location to which the supergroup is connected. Can't be a live location.
addressStringLocation address; 1-64 characters, as defined by the chat owner
+

ForumTopic

+

This object represents a forum topic.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
message_thread_idIntegerUnique identifier of the forum topic
nameStringName of the topic
icon_colorIntegerColor of the topic icon in RGB format
icon_custom_emoji_idStringOptional. Unique identifier of the custom emoji shown as the topic icon
+

BotCommand

+

This object represents a bot command.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
commandStringText of the command; 1-32 characters. Can contain only lowercase English letters, digits and underscores.
descriptionStringDescription of the command; 1-256 characters.
+

BotCommandScope

+

This object represents the scope to which bot commands are applied. Currently, the following 7 scopes are supported:

+ +

Determining list of commands

+

The following algorithm is used to determine the list of commands for a particular user viewing the bot menu. The first list of commands which is set is returned:

+

Commands in the chat with the bot

+
    +
  • botCommandScopeChat + language_code
  • +
  • botCommandScopeChat
  • +
  • botCommandScopeAllPrivateChats + language_code
  • +
  • botCommandScopeAllPrivateChats
  • +
  • botCommandScopeDefault + language_code
  • +
  • botCommandScopeDefault
  • +
+

Commands in group and supergroup chats

+
    +
  • botCommandScopeChatMember + language_code
  • +
  • botCommandScopeChatMember
  • +
  • botCommandScopeChatAdministrators + language_code (administrators only)
  • +
  • botCommandScopeChatAdministrators (administrators only)
  • +
  • botCommandScopeChat + language_code
  • +
  • botCommandScopeChat
  • +
  • botCommandScopeAllChatAdministrators + language_code (administrators only)
  • +
  • botCommandScopeAllChatAdministrators (administrators only)
  • +
  • botCommandScopeAllGroupChats + language_code
  • +
  • botCommandScopeAllGroupChats
  • +
  • botCommandScopeDefault + language_code
  • +
  • botCommandScopeDefault
  • +
+

BotCommandScopeDefault

+

Represents the default scope of bot commands. Default commands are used if no commands with a narrower scope are specified for the user.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be default
+

BotCommandScopeAllPrivateChats

+

Represents the scope of bot commands, covering all private chats.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be all_private_chats
+

BotCommandScopeAllGroupChats

+

Represents the scope of bot commands, covering all group and supergroup chats.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be all_group_chats
+

BotCommandScopeAllChatAdministrators

+

Represents the scope of bot commands, covering all group and supergroup chat administrators.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be all_chat_administrators
+

BotCommandScopeChat

+

Represents the scope of bot commands, covering a specific chat.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be chat
chat_idInteger or StringUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

BotCommandScopeChatAdministrators

+

Represents the scope of bot commands, covering all administrators of a specific group or supergroup chat.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be chat_administrators
chat_idInteger or StringUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

BotCommandScopeChatMember

+

Represents the scope of bot commands, covering a specific member of a group or supergroup chat.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringScope type, must be chat_member
chat_idInteger or StringUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
user_idIntegerUnique identifier of the target user
+

BotName

+

This object represents the bot's name.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
nameStringThe bot's name
+

BotDescription

+

This object represents the bot's description.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
descriptionStringThe bot's description
+

BotShortDescription

+

This object represents the bot's short description.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
short_descriptionStringThe bot's short description
+

MenuButton

+

This object describes the bot's menu button in a private chat. It should be one of

+ +

If a menu button other than MenuButtonDefault is set for a private chat, then it is applied in the chat. Otherwise the default menu button is applied. By default, the menu button opens the list of bot commands.

+

MenuButtonCommands

+

Represents a menu button, which opens the bot's list of commands.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the button, must be commands
+

MenuButtonWebApp

+

Represents a menu button, which launches a Web App.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the button, must be web_app
textStringText on the button
web_appWebAppInfoDescription of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery.
+

MenuButtonDefault

+

Describes that no specific value for the menu button was set.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the button, must be default
+

ResponseParameters

+

Describes why a request was unsuccessful.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
migrate_to_chat_idIntegerOptional. The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier.
retry_afterIntegerOptional. In case of exceeding flood control, the number of seconds left to wait before the request can be repeated
+

InputMedia

+

This object represents the content of a media message to be sent. It should be one of

+ +

InputMediaPhoto

+

Represents a photo to be sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be photo
mediaStringFile to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
captionStringOptional. Caption of the photo to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the photo caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
has_spoilerBooleanOptional. Pass True if the photo needs to be covered with a spoiler animation
+

InputMediaVideo

+

Represents a video to be sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be video
mediaStringFile to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
thumbnailInputFile or StringOptional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptional. Caption of the video to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the video caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
widthIntegerOptional. Video width
heightIntegerOptional. Video height
durationIntegerOptional. Video duration in seconds
supports_streamingBooleanOptional. Pass True if the uploaded video is suitable for streaming
has_spoilerBooleanOptional. Pass True if the video needs to be covered with a spoiler animation
+

InputMediaAnimation

+

Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be animation
mediaStringFile to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
thumbnailInputFile or StringOptional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptional. Caption of the animation to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the animation caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
widthIntegerOptional. Animation width
heightIntegerOptional. Animation height
durationIntegerOptional. Animation duration in seconds
has_spoilerBooleanOptional. Pass True if the animation needs to be covered with a spoiler animation
+

InputMediaAudio

+

Represents an audio file to be treated as music to be sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be audio
mediaStringFile to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
thumbnailInputFile or StringOptional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptional. Caption of the audio to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the audio caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
durationIntegerOptional. Duration of the audio in seconds
performerStringOptional. Performer of the audio
titleStringOptional. Title of the audio
+

InputMediaDocument

+

Represents a general file to be sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be document
mediaStringFile to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
thumbnailInputFile or StringOptional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptional. Caption of the document to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the document caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
disable_content_type_detectionBooleanOptional. Disables automatic server-side content type detection for files uploaded using multipart/form-data. Always True, if the document is sent as part of an album.
+

InputFile

+

This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.

+

Sending files

+

There are three ways to send files (photos, stickers, audio, media, etc.):

+
    +
  1. If the file is already stored somewhere on the Telegram servers, you don't need to reupload it: each file object has a file_id field, simply pass this file_id as a parameter instead of uploading. There are no limits for files sent this way.
  2. +
  3. Provide Telegram with an HTTP URL for the file to be sent. Telegram will download and send the file. 5 MB max size for photos and 20 MB max for other types of content.
  4. +
  5. Post the file using multipart/form-data in the usual way that files are uploaded via the browser. 10 MB max size for photos, 50 MB for other files.
  6. +
+

Sending by file_id

+
    +
  • It is not possible to change the file type when resending by file_id. I.e. a video can't be sent as a photo, a photo can't be sent as a document, etc.
  • +
  • It is not possible to resend thumbnails.
  • +
  • Resending a photo by file_id will send all of its sizes.
  • +
  • file_id is unique for each individual bot and can't be transferred from one bot to another.
  • +
  • file_id uniquely identifies a file, but a file can have different valid file_ids even for the same bot.
  • +
+

Sending by URL

+
    +
  • When sending by URL the target file must have the correct MIME type (e.g., audio/mpeg for sendAudio, etc.).
  • +
  • In sendDocument, sending by URL will currently only work for GIF, PDF and ZIP files.
  • +
  • To use sendVoice, the file must have the type audio/ogg and be no more than 1MB in size. 1-20MB voice notes will be sent as files.
  • +
  • Other configurations may work but we can't guarantee that they will.
  • +
+

Inline mode objects

+

Objects and methods used in the inline mode are described in the Inline mode section.

+

Available methods

+
+

All methods in the Bot API are case-insensitive. We support GET and POST HTTP methods. Use either URL query string or application/json or application/x-www-form-urlencoded or multipart/form-data for passing parameters in Bot API requests.
On successful call, a JSON-object containing the result will be returned.

+
+

getMe

+

A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object.

+

logOut

+

Use this method to log out from the cloud Bot API server before launching the bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. After a successful call, you can immediately log in on a local server, but will not be able to log in back to the cloud Bot API server for 10 minutes. Returns True on success. Requires no parameters.

+

close

+

Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart. The method will return error 429 in the first 10 minutes after the bot is launched. Returns True on success. Requires no parameters.

+

sendMessage

+

Use this method to send text messages. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
textStringYesText of the message to be sent, 1-4096 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the message text. See formatting options for more details.
entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode
disable_web_page_previewBooleanOptionalDisables link previews for links in this message
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

Formatting options

+

The Bot API supports basic formatting for messages. You can use bold, italic, underlined, strikethrough, and spoiler text, as well as inline links and pre-formatted code in your bots' messages. Telegram clients will render them accordingly. You can specify text entities directly, or use markdown-style or HTML-style formatting.

+

Note that Telegram clients will display an alert to the user before opening an inline link ('Open this link?' together with the full URL).

+

Message entities can be nested, providing following restrictions are met:
- If two entities have common characters, then one of them is fully contained inside another.
- bold, italic, underline, strikethrough, and spoiler entities can contain and can be part of any other entities, except pre and code.
- All other entities can't contain each other.

+

Links tg://user?id=<user_id> can be used to mention a user by their ID without using a username. Please note:

+
    +
  • These links will work only if they are used inside an inline link or in an inline keyboard button. For example, they will not work, when used in a message text.
  • +
  • Unless the user is a member of the chat where they were mentioned, these mentions are only guaranteed to work if the user has contacted the bot in private in the past or has sent a callback query to the bot via an inline button and doesn't have Forwarded Messages privacy enabled for the bot.
  • +
+
MarkdownV2 style
+

To use this mode, pass MarkdownV2 in the parse_mode field. Use the following syntax in your message:

+
*bold \*text*
+_italic \*text_
+__underline__
+~strikethrough~
+||spoiler||
+*bold _italic bold ~italic bold strikethrough ||italic bold strikethrough spoiler||~ __underline italic bold___ bold*
+[inline URL](http://www.example.com/)
+[inline mention of a user](tg://user?id=123456789)
+![đź‘Ť](tg://emoji?id=5368324170671202286)
+`inline fixed-width code`
+```
+pre-formatted fixed-width code block
+```
+```python
+pre-formatted fixed-width code block written in the Python programming language
+```
+

Please note:

+
    +
  • Any character with code between 1 and 126 inclusively can be escaped anywhere with a preceding '\' character, in which case it is treated as an ordinary character and not a part of the markup. This implies that '\' character usually must be escaped with a preceding '\' character.
  • +
  • Inside pre and code entities, all '`' and '\' characters must be escaped with a preceding '\' character.
  • +
  • Inside the (...) part of the inline link and custom emoji definition, all ')' and '\' must be escaped with a preceding '\' character.
  • +
  • In all other places characters '_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!' must be escaped with the preceding character '\'.
  • +
  • In case of ambiguity between italic and underline entities __ is always greadily treated from left to right as beginning or end of underline entity, so instead of ___italic underline___ use ___italic underline_\r__, where \r is a character with code 13, which will be ignored.
  • +
  • A valid emoji must be provided as an alternative value for the custom emoji. The emoji will be shown instead of the custom emoji in places where a custom emoji cannot be displayed (e.g., system notifications) or if the message is forwarded by a non-premium user. It is recommended to use the emoji from the emoji field of the custom emoji sticker.
  • +
  • Custom emoji entities can only be used by bots that purchased additional usernames on Fragment.
  • +
+
HTML style
+

To use this mode, pass HTML in the parse_mode field. The following tags are currently supported:

+
<b>bold</b>, <strong>bold</strong>
+<i>italic</i>, <em>italic</em>
+<u>underline</u>, <ins>underline</ins>
+<s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del>
+<span class="tg-spoiler">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>
+<b>bold <i>italic bold <s>italic bold strikethrough <span class="tg-spoiler">italic bold strikethrough spoiler</span></s> <u>underline italic bold</u></i> bold</b>
+<a href="http://www.example.com/">inline URL</a>
+<a href="tg://user?id=123456789">inline mention of a user</a>
+<tg-emoji emoji-id="5368324170671202286">đź‘Ť</tg-emoji>
+<code>inline fixed-width code</code>
+<pre>pre-formatted fixed-width code block</pre>
+<pre><code class="language-python">pre-formatted fixed-width code block written in the Python programming language</code></pre>
+

Please note:

+
    +
  • Only the tags mentioned above are currently supported.
  • +
  • All <, > and & symbols that are not a part of a tag or an HTML entity must be replaced with the corresponding HTML entities (< with &lt;, > with &gt; and & with &amp;).
  • +
  • All numerical HTML entities are supported.
  • +
  • The API currently supports only the following named HTML entities: &lt;, &gt;, &amp; and &quot;.
  • +
  • Use nested pre and code tags, to define programming language for pre entity.
  • +
  • Programming language can't be specified for standalone code tags.
  • +
  • A valid emoji must be used as the content of the tg-emoji tag. The emoji will be shown instead of the custom emoji in places where a custom emoji cannot be displayed (e.g., system notifications) or if the message is forwarded by a non-premium user. It is recommended to use the emoji from the emoji field of the custom emoji sticker.
  • +
  • Custom emoji entities can only be used by bots that purchased additional usernames on Fragment.
  • +
+
Markdown style
+

This is a legacy mode, retained for backward compatibility. To use this mode, pass Markdown in the parse_mode field. Use the following syntax in your message:

+
*bold text*
+_italic text_
+[inline URL](http://www.example.com/)
+[inline mention of a user](tg://user?id=123456789)
+`inline fixed-width code`
+```
+pre-formatted fixed-width code block
+```
+```python
+pre-formatted fixed-width code block written in the Python programming language
+```
+

Please note:

+
    +
  • Entities must not be nested, use parse mode MarkdownV2 instead.
  • +
  • There is no way to specify underline and strikethrough entities, use parse mode MarkdownV2 instead.
  • +
  • To escape characters '_', '*', '`', '[' outside of an entity, prepend the characters '\' before them.
  • +
  • Escaping inside entities is not allowed, so entity must be closed first and reopened again: use _snake_\__case_ for italic snake_case and *2*\**2=4* for bold 2*2=4.
  • +
+

forwardMessage

+

Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
from_chat_idInteger or StringYesUnique identifier for the chat where the original message was sent (or channel username in the format @channelusername)
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the forwarded message from forwarding and saving
message_idIntegerYesMessage identifier in the chat specified in from_chat_id
+

copyMessage

+

Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
from_chat_idInteger or StringYesUnique identifier for the chat where the original message was sent (or channel username in the format @channelusername)
message_idIntegerYesMessage identifier in the chat specified in from_chat_id
captionStringOptionalNew caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept
parse_modeStringOptionalMode for parsing entities in the new caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendPhoto

+

Use this method to send photos. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
photoInputFile or StringYesPhoto to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files »
captionStringOptionalPhoto caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the photo caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
has_spoilerBooleanOptionalPass True if the photo needs to be covered with a spoiler animation
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendAudio

+

Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future.

+

For sending voice messages, use the sendVoice method instead.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
audioInputFile or StringYesAudio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files »
captionStringOptionalAudio caption, 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the audio caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
durationIntegerOptionalDuration of the audio in seconds
performerStringOptionalPerformer
titleStringOptionalTrack name
thumbnailInputFile or StringOptionalThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendDocument

+

Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
documentInputFile or StringYesFile to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files »
thumbnailInputFile or StringOptionalThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptionalDocument caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the document caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
disable_content_type_detectionBooleanOptionalDisables automatic server-side content type detection for files uploaded using multipart/form-data
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendVideo

+

Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
videoInputFile or StringYesVideo to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files »
durationIntegerOptionalDuration of sent video in seconds
widthIntegerOptionalVideo width
heightIntegerOptionalVideo height
thumbnailInputFile or StringOptionalThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptionalVideo caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the video caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
has_spoilerBooleanOptionalPass True if the video needs to be covered with a spoiler animation
supports_streamingBooleanOptionalPass True if the uploaded video is suitable for streaming
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendAnimation

+

Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
animationInputFile or StringYesAnimation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files »
durationIntegerOptionalDuration of sent animation in seconds
widthIntegerOptionalAnimation width
heightIntegerOptionalAnimation height
thumbnailInputFile or StringOptionalThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
captionStringOptionalAnimation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the animation caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
has_spoilerBooleanOptionalPass True if the animation needs to be covered with a spoiler animation
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendVoice

+

Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
voiceInputFile or StringYesAudio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files »
captionStringOptionalVoice message caption, 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the voice message caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
durationIntegerOptionalDuration of the voice message in seconds
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendVideoNote

+

As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
video_noteInputFile or StringYesVideo note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported
durationIntegerOptionalDuration of sent video in seconds
lengthIntegerOptionalVideo width and height, i.e. diameter of the video message
thumbnailInputFile or StringOptionalThumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendMediaGroup

+

Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
mediaArray of InputMediaAudio, InputMediaDocument, InputMediaPhoto and InputMediaVideoYesA JSON-serialized array describing messages to be sent, must include 2-10 items
disable_notificationBooleanOptionalSends messages silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent messages from forwarding and saving
reply_to_message_idIntegerOptionalIf the messages are a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
+

sendLocation

+

Use this method to send point on the map. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
latitudeFloat numberYesLatitude of the location
longitudeFloat numberYesLongitude of the location
horizontal_accuracyFloat numberOptionalThe radius of uncertainty for the location, measured in meters; 0-1500
live_periodIntegerOptionalPeriod in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400.
headingIntegerOptionalFor live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.
proximity_alert_radiusIntegerOptionalFor live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendVenue

+

Use this method to send information about a venue. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
latitudeFloat numberYesLatitude of the venue
longitudeFloat numberYesLongitude of the venue
titleStringYesName of the venue
addressStringYesAddress of the venue
foursquare_idStringOptionalFoursquare identifier of the venue
foursquare_typeStringOptionalFoursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)
google_place_idStringOptionalGoogle Places identifier of the venue
google_place_typeStringOptionalGoogle Places type of the venue. (See supported types.)
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendContact

+

Use this method to send phone contacts. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
phone_numberStringYesContact's phone number
first_nameStringYesContact's first name
last_nameStringOptionalContact's last name
vcardStringOptionalAdditional data about the contact in the form of a vCard, 0-2048 bytes
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendPoll

+

Use this method to send a native poll. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
questionStringYesPoll question, 1-300 characters
optionsArray of StringYesA JSON-serialized list of answer options, 2-10 strings 1-100 characters each
is_anonymousBooleanOptionalTrue, if the poll needs to be anonymous, defaults to True
typeStringOptionalPoll type, “quiz” or “regular”, defaults to “regular”
allows_multiple_answersBooleanOptionalTrue, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False
correct_option_idIntegerOptional0-based identifier of the correct answer option, required for polls in quiz mode
explanationStringOptionalText that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing
explanation_parse_modeStringOptionalMode for parsing entities in the explanation. See formatting options for more details.
explanation_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode
open_periodIntegerOptionalAmount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date.
close_dateIntegerOptionalPoint in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period.
is_closedBooleanOptionalPass True if the poll needs to be immediately closed. This can be useful for poll preview.
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendDice

+

Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
emojiStringOptionalEmoji on which the dice throw animation is based. Currently, must be one of “🎲”, “🎯”, “🏀”, “⚽”, “🎳”, or “🎰”. Dice can have values 1-6 for “🎲”, “🎯” and “🎳”, values 1-5 for “🏀” and “⚽”, and values 1-64 for “🎰”. Defaults to “🎲”
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

sendChatAction

+

Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success.

+
+

Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot.

+
+

We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread; supergroups only
actionStringYesType of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes.
+

getUserProfilePhotos

+

Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUnique identifier of the target user
offsetIntegerOptionalSequential number of the first photo to be returned. By default, all photos are returned.
limitIntegerOptionalLimits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100.
+

getFile

+

Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>, where <file_path> is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
file_idStringYesFile identifier to get information about
+

Note: This function may not preserve the original file name and MIME type. You should save the file's MIME type and name (if available) when the File object is received.

+

banChatMember

+

Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target group or username of the target supergroup or channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
until_dateIntegerOptionalDate when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only.
revoke_messagesBooleanOptionalPass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels.
+

unbanChatMember

+

Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target group or username of the target supergroup or channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
only_if_bannedBooleanOptionalDo nothing if the user is not banned
+

restrictChatMember

+

Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
user_idIntegerYesUnique identifier of the target user
permissionsChatPermissionsYesA JSON-serialized object for new user permissions
use_independent_chat_permissionsBooleanOptionalPass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission.
until_dateIntegerOptionalDate when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever
+

promoteChatMember

+

Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
is_anonymousBooleanOptionalPass True if the administrator's presence in the chat is hidden
can_manage_chatBooleanOptionalPass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege
can_post_messagesBooleanOptionalPass True if the administrator can post messages in the channel; channels only
can_edit_messagesBooleanOptionalPass True if the administrator can edit messages of other users and can pin messages; channels only
can_delete_messagesBooleanOptionalPass True if the administrator can delete messages of other users
can_post_storiesBooleanOptionalPass True if the administrator can post stories in the channel; channels only
can_edit_storiesBooleanOptionalPass True if the administrator can edit stories posted by other users; channels only
can_delete_storiesBooleanOptionalPass True if the administrator can delete stories posted by other users; channels only
can_manage_video_chatsBooleanOptionalPass True if the administrator can manage video chats
can_restrict_membersBooleanOptionalPass True if the administrator can restrict, ban or unban chat members
can_promote_membersBooleanOptionalPass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him)
can_change_infoBooleanOptionalPass True if the administrator can change chat title, photo and other settings
can_invite_usersBooleanOptionalPass True if the administrator can invite new users to the chat
can_pin_messagesBooleanOptionalPass True if the administrator can pin messages, supergroups only
can_manage_topicsBooleanOptionalPass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only
+

setChatAdministratorCustomTitle

+

Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
user_idIntegerYesUnique identifier of the target user
custom_titleStringYesNew custom title for the administrator; 0-16 characters, emoji are not allowed
+

banChatSenderChat

+

Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
sender_chat_idIntegerYesUnique identifier of the target sender chat
+

unbanChatSenderChat

+

Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
sender_chat_idIntegerYesUnique identifier of the target sender chat
+

setChatPermissions

+

Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
permissionsChatPermissionsYesA JSON-serialized object for new default chat permissions
use_independent_chat_permissionsBooleanOptionalPass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission.
+

exportChatInviteLink

+

Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
+
+

Note: Each administrator in a chat generates their own invite links. Bots can't use invite links generated by other administrators. If you want your bot to work with invite links, it will need to generate its own link using exportChatInviteLink or by calling the getChat method. If your bot needs to generate a new primary invite link replacing its previous one, use exportChatInviteLink again.

+
+

createChatInviteLink

+

Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
nameStringOptionalInvite link name; 0-32 characters
expire_dateIntegerOptionalPoint in time (Unix timestamp) when the link will expire
member_limitIntegerOptionalThe maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999
creates_join_requestBooleanOptionalTrue, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified
+

editChatInviteLink

+

Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
invite_linkStringYesThe invite link to edit
nameStringOptionalInvite link name; 0-32 characters
expire_dateIntegerOptionalPoint in time (Unix timestamp) when the link will expire
member_limitIntegerOptionalThe maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999
creates_join_requestBooleanOptionalTrue, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified
+

revokeChatInviteLink

+

Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier of the target chat or username of the target channel (in the format @channelusername)
invite_linkStringYesThe invite link to revoke
+

approveChatJoinRequest

+

Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
+

declineChatJoinRequest

+

Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
+

setChatPhoto

+

Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
photoInputFileYesNew chat photo, uploaded using multipart/form-data
+

deleteChatPhoto

+

Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
+

setChatTitle

+

Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
titleStringYesNew chat title, 1-128 characters
+

setChatDescription

+

Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
descriptionStringOptionalNew chat description, 0-255 characters
+

pinChatMessage

+

Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerYesIdentifier of a message to pin
disable_notificationBooleanOptionalPass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats.
+

unpinChatMessage

+

Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalIdentifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned.
+

unpinAllChatMessages

+

Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
+

leaveChat

+

Use this method for your bot to leave a group, supergroup or channel. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
+

getChat

+

Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
+

getChatAdministrators

+

Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
+

getChatMemberCount

+

Use this method to get the number of members in a chat. Returns Int on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
+

getChatMember

+

Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername)
user_idIntegerYesUnique identifier of the target user
+

setChatStickerSet

+

Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
sticker_set_nameStringYesName of the sticker set to be set as the group sticker set
+

deleteChatStickerSet

+

Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

getForumTopicIconStickers

+

Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects.

+

createForumTopic

+

Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
nameStringYesTopic name, 1-128 characters
icon_colorIntegerOptionalColor of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F)
icon_custom_emoji_idStringOptionalUnique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers.
+

editForumTopic

+

Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
message_thread_idIntegerYesUnique identifier for the target message thread of the forum topic
nameStringOptionalNew topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept
icon_custom_emoji_idStringOptionalNew unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept
+

closeForumTopic

+

Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
message_thread_idIntegerYesUnique identifier for the target message thread of the forum topic
+

reopenForumTopic

+

Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
message_thread_idIntegerYesUnique identifier for the target message thread of the forum topic
+

deleteForumTopic

+

Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
message_thread_idIntegerYesUnique identifier for the target message thread of the forum topic
+

unpinAllForumTopicMessages

+

Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
message_thread_idIntegerYesUnique identifier for the target message thread of the forum topic
+

editGeneralForumTopic

+

Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
nameStringYesNew topic name, 1-128 characters
+

closeGeneralForumTopic

+

Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

reopenGeneralForumTopic

+

Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

hideGeneralForumTopic

+

Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

unhideGeneralForumTopic

+

Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

unpinAllGeneralForumTopicMessages

+

Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target supergroup (in the format @supergroupusername)
+

answerCallbackQuery

+

Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned.

+
+

Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
callback_query_idStringYesUnique identifier for the query to be answered
textStringOptionalText of the notification. If not specified, nothing will be shown to the user, 0-200 characters
show_alertBooleanOptionalIf True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false.
urlStringOptionalURL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button.

Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter.
cache_timeIntegerOptionalThe maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0.
+

setMyCommands

+

Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
commandsArray of BotCommandYesA JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified.
scopeBotCommandScopeOptionalA JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.
language_codeStringOptionalA two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands
+

deleteMyCommands

+

Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
scopeBotCommandScopeOptionalA JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault.
language_codeStringOptionalA two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands
+

getMyCommands

+

Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
scopeBotCommandScopeOptionalA JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault.
language_codeStringOptionalA two-letter ISO 639-1 language code or an empty string
+

setMyName

+

Use this method to change the bot's name. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringOptionalNew bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language.
language_codeStringOptionalA two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name.
+

getMyName

+

Use this method to get the current bot name for the given user language. Returns BotName on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
language_codeStringOptionalA two-letter ISO 639-1 language code or an empty string
+

setMyDescription

+

Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
descriptionStringOptionalNew bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language.
language_codeStringOptionalA two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description.
+

getMyDescription

+

Use this method to get the current bot description for the given user language. Returns BotDescription on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
language_codeStringOptionalA two-letter ISO 639-1 language code or an empty string
+

setMyShortDescription

+

Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
short_descriptionStringOptionalNew short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language.
language_codeStringOptionalA two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description.
+

getMyShortDescription

+

Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
language_codeStringOptionalA two-letter ISO 639-1 language code or an empty string
+

setChatMenuButton

+

Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idIntegerOptionalUnique identifier for the target private chat. If not specified, default bot's menu button will be changed
menu_buttonMenuButtonOptionalA JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault
+

getChatMenuButton

+

Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idIntegerOptionalUnique identifier for the target private chat. If not specified, default bot's menu button will be returned
+

setMyDefaultAdministratorRights

+

Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
rightsChatAdministratorRightsOptionalA JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared.
for_channelsBooleanOptionalPass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed.
+

getMyDefaultAdministratorRights

+

Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
for_channelsBooleanOptionalPass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned.
+

Inline mode methods

+

Methods and objects used in the inline mode are described in the Inline mode section.

+

Updating messages

+

The following methods allow you to change an existing message in the message history instead of sending a new one with a result of an action. This is most useful for messages with inline keyboards using callback queries, but can also help reduce clutter in conversations with regular chat bots.

+

Please note, that it is currently only possible to edit messages without reply_markup or with inline keyboards.

+

editMessageText

+

Use this method to edit text and game messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message to edit
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
textStringYesNew text of the message, 1-4096 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the message text. See formatting options for more details.
entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode
disable_web_page_previewBooleanOptionalDisables link previews for links in this message
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for an inline keyboard.
+

editMessageCaption

+

Use this method to edit captions of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message to edit
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
captionStringOptionalNew caption of the message, 0-1024 characters after entities parsing
parse_modeStringOptionalMode for parsing entities in the message caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptionalA JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for an inline keyboard.
+

editMessageMedia

+

Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message to edit
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
mediaInputMediaYesA JSON-serialized object for a new media content of the message
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for a new inline keyboard.
+

editMessageLiveLocation

+

Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message to edit
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
latitudeFloat numberYesLatitude of new location
longitudeFloat numberYesLongitude of new location
horizontal_accuracyFloat numberOptionalThe radius of uncertainty for the location, measured in meters; 0-1500
headingIntegerOptionalDirection in which the user is moving, in degrees. Must be between 1 and 360 if specified.
proximity_alert_radiusIntegerOptionalThe maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for a new inline keyboard.
+

stopMessageLiveLocation

+

Use this method to stop updating a live location message before live_period expires. On success, if the message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message with live location to stop
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for a new inline keyboard.
+

editMessageReplyMarkup

+

Use this method to edit only the reply markup of messages. On success, if the edited message is not an inline message, the edited Message is returned, otherwise True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the message to edit
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for an inline keyboard.
+

stopPoll

+

Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerYesIdentifier of the original message with the poll
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for a new message inline keyboard.
+

deleteMessage

+

Use this method to delete a message, including service messages, with the following limitations:
- A message can only be deleted if it was sent less than 48 hours ago.
- Service messages about a supergroup, channel, or forum topic creation can't be deleted.
- A dice message in a private chat can only be deleted if it was sent more than 24 hours ago.
- Bots can delete outgoing messages in private chats, groups, and supergroups.
- Bots can delete incoming messages in private chats.
- Bots granted can_post_messages permissions can delete outgoing messages in channels.
- If the bot is an administrator of a group, it can delete any message there.
- If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there.
Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_idIntegerYesIdentifier of the message to delete
+

Stickers

+

The following methods and objects allow your bot to handle stickers and sticker sets.

+

Sticker

+

This object represents a sticker.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
typeStringType of the sticker, currently one of “regular”, “mask”, “custom_emoji”. The type of the sticker is independent from its format, which is determined by the fields is_animated and is_video.
widthIntegerSticker width
heightIntegerSticker height
is_animatedBooleanTrue, if the sticker is animated
is_videoBooleanTrue, if the sticker is a video sticker
thumbnailPhotoSizeOptional. Sticker thumbnail in the .WEBP or .JPG format
emojiStringOptional. Emoji associated with the sticker
set_nameStringOptional. Name of the sticker set to which the sticker belongs
premium_animationFileOptional. For premium regular stickers, premium animation for the sticker
mask_positionMaskPositionOptional. For mask stickers, the position where the mask should be placed
custom_emoji_idStringOptional. For custom emoji stickers, unique identifier of the custom emoji
needs_repaintingTrueOptional. True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places
file_sizeIntegerOptional. File size in bytes
+

StickerSet

+

This object represents a sticker set.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
nameStringSticker set name
titleStringSticker set title
sticker_typeStringType of stickers in the set, currently one of “regular”, “mask”, “custom_emoji”
is_animatedBooleanTrue, if the sticker set contains animated stickers
is_videoBooleanTrue, if the sticker set contains video stickers
stickersArray of StickerList of all set stickers
thumbnailPhotoSizeOptional. Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format
+

MaskPosition

+

This object describes the position on faces where a mask should be placed by default.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
pointStringThe part of the face relative to which the mask should be placed. One of “forehead”, “eyes”, “mouth”, or “chin”.
x_shiftFloat numberShift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position.
y_shiftFloat numberShift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position.
scaleFloat numberMask scaling coefficient. For example, 2.0 means double size.
+

InputSticker

+

This object describes a sticker to be added to a sticker set.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
stickerInputFile or StringThe added sticker. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, upload a new one using multipart/form-data, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. Animated and video stickers can't be uploaded via HTTP URL. More information on Sending Files »
emoji_listArray of StringList of 1-20 emoji associated with the sticker
mask_positionMaskPositionOptional. Position where the mask should be placed on faces. For “mask” stickers only.
keywordsArray of StringOptional. List of 0-20 search keywords for the sticker with total length of up to 64 characters. For “regular” and “custom_emoji” stickers only.
+

sendSticker

+

Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
stickerInputFile or StringYesSticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL.
emojiStringOptionalEmoji associated with the sticker; only for just uploaded stickers
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOptionalAdditional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user.
+

getStickerSet

+

Use this method to get a sticker set. On success, a StickerSet object is returned.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringYesName of the sticker set
+

getCustomEmojiStickers

+

Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
custom_emoji_idsArray of StringYesList of custom emoji identifiers. At most 200 custom emoji identifiers can be specified.
+

uploadStickerFile

+

Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUser identifier of sticker file owner
stickerInputFileYesA file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files »
sticker_formatStringYesFormat of the sticker, must be one of “static”, “animated”, “video”
+

createNewStickerSet

+

Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUser identifier of created sticker set owner
nameStringYesShort name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_<bot_username>". <bot_username> is case insensitive. 1-64 characters.
titleStringYesSticker set title, 1-64 characters
stickersArray of InputStickerYesA JSON-serialized list of 1-50 initial stickers to be added to the sticker set
sticker_formatStringYesFormat of stickers in the set, must be one of “static”, “animated”, “video”
sticker_typeStringOptionalType of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created.
needs_repaintingBooleanOptionalPass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only
+

addStickerToSet

+

Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUser identifier of sticker set owner
nameStringYesSticker set name
stickerInputStickerYesA JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed.
+

setStickerPositionInSet

+

Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
stickerStringYesFile identifier of the sticker
positionIntegerYesNew sticker position in the set, zero-based
+

deleteStickerFromSet

+

Use this method to delete a sticker from a set created by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
stickerStringYesFile identifier of the sticker
+

setStickerEmojiList

+

Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
stickerStringYesFile identifier of the sticker
emoji_listArray of StringYesA JSON-serialized list of 1-20 emoji associated with the sticker
+

setStickerKeywords

+

Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
stickerStringYesFile identifier of the sticker
keywordsArray of StringOptionalA JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters
+

setStickerMaskPosition

+

Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
stickerStringYesFile identifier of the sticker
mask_positionMaskPositionOptionalA JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position.
+

setStickerSetTitle

+

Use this method to set the title of a created sticker set. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringYesSticker set name
titleStringYesSticker set title, 1-64 characters
+

setStickerSetThumbnail

+

Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringYesSticker set name
user_idIntegerYesUser identifier of the sticker set owner
thumbnailInputFile or StringOptionalA .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail.
+

setCustomEmojiStickerSetThumbnail

+

Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringYesSticker set name
custom_emoji_idStringOptionalCustom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail.
+

deleteStickerSet

+

Use this method to delete a sticker set that was created by the bot. Returns True on success.

+ + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
nameStringYesSticker set name
+

Inline mode

+

The following methods and objects allow your bot to work in inline mode.
Please see our Introduction to Inline bots for more details.

+

To enable this option, send the /setinline command to @BotFather and provide the placeholder text that the user will see in the input field after typing your bot's name.

+

InlineQuery

+

This object represents an incoming inline query. When the user sends an empty query, your bot could return some default or trending results.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringUnique identifier for this query
fromUserSender
queryStringText of the query (up to 256 characters)
offsetStringOffset of the results to be returned, can be controlled by the bot
chat_typeStringOptional. Type of the chat from which the inline query was sent. Can be either “sender” for a private chat with the inline query sender, “private”, “group”, “supergroup”, or “channel”. The chat type should be always known for requests sent from official clients and most third-party clients, unless the request was sent from a secret chat
locationLocationOptional. Sender location, only for bots that request user location
+

answerInlineQuery

+

Use this method to send answers to an inline query. On success, True is returned.
No more than 50 results per query are allowed.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
inline_query_idStringYesUnique identifier for the answered query
resultsArray of InlineQueryResultYesA JSON-serialized array of results for the inline query
cache_timeIntegerOptionalThe maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300.
is_personalBooleanOptionalPass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query.
next_offsetStringOptionalPass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes.
buttonInlineQueryResultsButtonOptionalA JSON-serialized object describing a button to be shown above inline query results
+

InlineQueryResultsButton

+

This object represents a button to be shown above inline query results. You must use exactly one of the optional fields.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
textStringLabel text on the button
web_appWebAppInfoOptional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App.
start_parameterStringOptional. Deep-linking parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed.

Example: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities.
+

InlineQueryResult

+

This object represents one result of an inline query. Telegram clients currently support results of the following 20 types:

+ +

Note: All URLs passed in inline query results will be available to end users and therefore must be assumed to be public.

+

InlineQueryResultArticle

+

Represents a link to an article or web page.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be article
idStringUnique identifier for this result, 1-64 Bytes
titleStringTitle of the result
input_message_contentInputMessageContentContent of the message to be sent
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
urlStringOptional. URL of the result
hide_urlBooleanOptional. Pass True if you don't want the URL to be shown in the message
descriptionStringOptional. Short description of the result
thumbnail_urlStringOptional. Url of the thumbnail for the result
thumbnail_widthIntegerOptional. Thumbnail width
thumbnail_heightIntegerOptional. Thumbnail height
+

InlineQueryResultPhoto

+

Represents a link to a photo. By default, this photo will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be photo
idStringUnique identifier for this result, 1-64 bytes
photo_urlStringA valid URL of the photo. Photo must be in JPEG format. Photo size must not exceed 5MB
thumbnail_urlStringURL of the thumbnail for the photo
photo_widthIntegerOptional. Width of the photo
photo_heightIntegerOptional. Height of the photo
titleStringOptional. Title for the result
descriptionStringOptional. Short description of the result
captionStringOptional. Caption of the photo to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the photo caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the photo
+

InlineQueryResultGif

+

Represents a link to an animated GIF file. By default, this animated GIF file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be gif
idStringUnique identifier for this result, 1-64 bytes
gif_urlStringA valid URL for the GIF file. File size must not exceed 1MB
gif_widthIntegerOptional. Width of the GIF
gif_heightIntegerOptional. Height of the GIF
gif_durationIntegerOptional. Duration of the GIF in seconds
thumbnail_urlStringURL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result
thumbnail_mime_typeStringOptional. MIME type of the thumbnail, must be one of “image/jpeg”, “image/gif”, or “video/mp4”. Defaults to “image/jpeg”
titleStringOptional. Title for the result
captionStringOptional. Caption of the GIF file to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the GIF animation
+

InlineQueryResultMpeg4Gif

+

Represents a link to a video animation (H.264/MPEG-4 AVC video without sound). By default, this animated MPEG-4 file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be mpeg4_gif
idStringUnique identifier for this result, 1-64 bytes
mpeg4_urlStringA valid URL for the MPEG4 file. File size must not exceed 1MB
mpeg4_widthIntegerOptional. Video width
mpeg4_heightIntegerOptional. Video height
mpeg4_durationIntegerOptional. Video duration in seconds
thumbnail_urlStringURL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result
thumbnail_mime_typeStringOptional. MIME type of the thumbnail, must be one of “image/jpeg”, “image/gif”, or “video/mp4”. Defaults to “image/jpeg”
titleStringOptional. Title for the result
captionStringOptional. Caption of the MPEG-4 file to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the video animation
+

InlineQueryResultVideo

+

Represents a link to a page containing an embedded video player or a video file. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video.

+
+

If an InlineQueryResultVideo message contains an embedded video (e.g., YouTube), you must replace its content using input_message_content.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be video
idStringUnique identifier for this result, 1-64 bytes
video_urlStringA valid URL for the embedded video player or video file
mime_typeStringMIME type of the content of the video URL, “text/html” or “video/mp4”
thumbnail_urlStringURL of the thumbnail (JPEG only) for the video
titleStringTitle for the result
captionStringOptional. Caption of the video to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the video caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
video_widthIntegerOptional. Video width
video_heightIntegerOptional. Video height
video_durationIntegerOptional. Video duration in seconds
descriptionStringOptional. Short description of the result
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the video. This field is required if InlineQueryResultVideo is used to send an HTML-page as a result (e.g., a YouTube video).
+

InlineQueryResultAudio

+

Represents a link to an MP3 audio file. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be audio
idStringUnique identifier for this result, 1-64 bytes
audio_urlStringA valid URL for the audio file
titleStringTitle
captionStringOptional. Caption, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the audio caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
performerStringOptional. Performer
audio_durationIntegerOptional. Audio duration in seconds
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the audio
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultVoice

+

Represents a link to a voice recording in an .OGG container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the the voice message.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be voice
idStringUnique identifier for this result, 1-64 bytes
voice_urlStringA valid URL for the voice recording
titleStringRecording title
captionStringOptional. Caption, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the voice message caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
voice_durationIntegerOptional. Recording duration in seconds
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the voice recording
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultDocument

+

Represents a link to a file. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Currently, only .PDF and .ZIP files can be sent using this method.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be document
idStringUnique identifier for this result, 1-64 bytes
titleStringTitle for the result
captionStringOptional. Caption of the document to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the document caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
document_urlStringA valid URL for the file
mime_typeStringMIME type of the content of the file, either “application/pdf” or “application/zip”
descriptionStringOptional. Short description of the result
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the file
thumbnail_urlStringOptional. URL of the thumbnail (JPEG only) for the file
thumbnail_widthIntegerOptional. Thumbnail width
thumbnail_heightIntegerOptional. Thumbnail height
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultLocation

+

Represents a location on a map. By default, the location will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the location.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be location
idStringUnique identifier for this result, 1-64 Bytes
latitudeFloat numberLocation latitude in degrees
longitudeFloat numberLocation longitude in degrees
titleStringLocation title
horizontal_accuracyFloat numberOptional. The radius of uncertainty for the location, measured in meters; 0-1500
live_periodIntegerOptional. Period in seconds for which the location can be updated, should be between 60 and 86400.
headingIntegerOptional. For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.
proximity_alert_radiusIntegerOptional. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the location
thumbnail_urlStringOptional. Url of the thumbnail for the result
thumbnail_widthIntegerOptional. Thumbnail width
thumbnail_heightIntegerOptional. Thumbnail height
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultVenue

+

Represents a venue. By default, the venue will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the venue.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be venue
idStringUnique identifier for this result, 1-64 Bytes
latitudeFloatLatitude of the venue location in degrees
longitudeFloatLongitude of the venue location in degrees
titleStringTitle of the venue
addressStringAddress of the venue
foursquare_idStringOptional. Foursquare identifier of the venue if known
foursquare_typeStringOptional. Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)
google_place_idStringOptional. Google Places identifier of the venue
google_place_typeStringOptional. Google Places type of the venue. (See supported types.)
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the venue
thumbnail_urlStringOptional. Url of the thumbnail for the result
thumbnail_widthIntegerOptional. Thumbnail width
thumbnail_heightIntegerOptional. Thumbnail height
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultContact

+

Represents a contact with a phone number. By default, this contact will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the contact.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be contact
idStringUnique identifier for this result, 1-64 Bytes
phone_numberStringContact's phone number
first_nameStringContact's first name
last_nameStringOptional. Contact's last name
vcardStringOptional. Additional data about the contact in the form of a vCard, 0-2048 bytes
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the contact
thumbnail_urlStringOptional. Url of the thumbnail for the result
thumbnail_widthIntegerOptional. Thumbnail width
thumbnail_heightIntegerOptional. Thumbnail height
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultGame

+

Represents a Game.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be game
idStringUnique identifier for this result, 1-64 bytes
game_short_nameStringShort name of the game
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
+

Note: This will only work in Telegram versions released after October 1, 2016. Older clients will not display any inline results if a game result is among them.

+

InlineQueryResultCachedPhoto

+

Represents a link to a photo stored on the Telegram servers. By default, this photo will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be photo
idStringUnique identifier for this result, 1-64 bytes
photo_file_idStringA valid file identifier of the photo
titleStringOptional. Title for the result
descriptionStringOptional. Short description of the result
captionStringOptional. Caption of the photo to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the photo caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the photo
+

InlineQueryResultCachedGif

+

Represents a link to an animated GIF file stored on the Telegram servers. By default, this animated GIF file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with specified content instead of the animation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be gif
idStringUnique identifier for this result, 1-64 bytes
gif_file_idStringA valid file identifier for the GIF file
titleStringOptional. Title for the result
captionStringOptional. Caption of the GIF file to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the GIF animation
+

InlineQueryResultCachedMpeg4Gif

+

Represents a link to a video animation (H.264/MPEG-4 AVC video without sound) stored on the Telegram servers. By default, this animated MPEG-4 file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be mpeg4_gif
idStringUnique identifier for this result, 1-64 bytes
mpeg4_file_idStringA valid file identifier for the MPEG4 file
titleStringOptional. Title for the result
captionStringOptional. Caption of the MPEG-4 file to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the video animation
+

InlineQueryResultCachedSticker

+

Represents a link to a sticker stored on the Telegram servers. By default, this sticker will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the sticker.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be sticker
idStringUnique identifier for this result, 1-64 bytes
sticker_file_idStringA valid file identifier of the sticker
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the sticker
+

Note: This will only work in Telegram versions released after 9 April, 2016 for static stickers and after 06 July, 2019 for animated stickers. Older clients will ignore them.

+

InlineQueryResultCachedDocument

+

Represents a link to a file stored on the Telegram servers. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be document
idStringUnique identifier for this result, 1-64 bytes
titleStringTitle for the result
document_file_idStringA valid file identifier for the file
descriptionStringOptional. Short description of the result
captionStringOptional. Caption of the document to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the document caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the file
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultCachedVideo

+

Represents a link to a video file stored on the Telegram servers. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be video
idStringUnique identifier for this result, 1-64 bytes
video_file_idStringA valid file identifier for the video file
titleStringTitle for the result
descriptionStringOptional. Short description of the result
captionStringOptional. Caption of the video to be sent, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the video caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the video
+

InlineQueryResultCachedVoice

+

Represents a link to a voice message stored on the Telegram servers. By default, this voice message will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the voice message.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be voice
idStringUnique identifier for this result, 1-64 bytes
voice_file_idStringA valid file identifier for the voice message
titleStringVoice message title
captionStringOptional. Caption, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the voice message caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the voice message
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InlineQueryResultCachedAudio

+

Represents a link to an MP3 audio file stored on the Telegram servers. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringType of the result, must be audio
idStringUnique identifier for this result, 1-64 bytes
audio_file_idStringA valid file identifier for the audio file
captionStringOptional. Caption, 0-1024 characters after entities parsing
parse_modeStringOptional. Mode for parsing entities in the audio caption. See formatting options for more details.
caption_entitiesArray of MessageEntityOptional. List of special entities that appear in the caption, which can be specified instead of parse_mode
reply_markupInlineKeyboardMarkupOptional. Inline keyboard attached to the message
input_message_contentInputMessageContentOptional. Content of the message to be sent instead of the audio
+

Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.

+

InputMessageContent

+

This object represents the content of a message to be sent as a result of an inline query. Telegram clients currently support the following 5 types:

+ +

InputTextMessageContent

+

Represents the content of a text message to be sent as the result of an inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
message_textStringText of the message to be sent, 1-4096 characters
parse_modeStringOptional. Mode for parsing entities in the message text. See formatting options for more details.
entitiesArray of MessageEntityOptional. List of special entities that appear in message text, which can be specified instead of parse_mode
disable_web_page_previewBooleanOptional. Disables link previews for links in the sent message
+

InputLocationMessageContent

+

Represents the content of a location message to be sent as the result of an inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
latitudeFloatLatitude of the location in degrees
longitudeFloatLongitude of the location in degrees
horizontal_accuracyFloat numberOptional. The radius of uncertainty for the location, measured in meters; 0-1500
live_periodIntegerOptional. Period in seconds for which the location can be updated, should be between 60 and 86400.
headingIntegerOptional. For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified.
proximity_alert_radiusIntegerOptional. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified.
+

InputVenueMessageContent

+

Represents the content of a venue message to be sent as the result of an inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
latitudeFloatLatitude of the venue in degrees
longitudeFloatLongitude of the venue in degrees
titleStringName of the venue
addressStringAddress of the venue
foursquare_idStringOptional. Foursquare identifier of the venue, if known
foursquare_typeStringOptional. Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.)
google_place_idStringOptional. Google Places identifier of the venue
google_place_typeStringOptional. Google Places type of the venue. (See supported types.)
+

InputContactMessageContent

+

Represents the content of a contact message to be sent as the result of an inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
phone_numberStringContact's phone number
first_nameStringContact's first name
last_nameStringOptional. Contact's last name
vcardStringOptional. Additional data about the contact in the form of a vCard, 0-2048 bytes
+

InputInvoiceMessageContent

+

Represents the content of an invoice message to be sent as the result of an inline query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
titleStringProduct name, 1-32 characters
descriptionStringProduct description, 1-255 characters
payloadStringBot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
provider_tokenStringPayment provider token, obtained via @BotFather
currencyStringThree-letter ISO 4217 currency code, see more on currencies
pricesArray of LabeledPricePrice breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)
max_tip_amountIntegerOptional. The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0
suggested_tip_amountsArray of IntegerOptional. A JSON-serialized array of suggested amounts of tip in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount.
provider_dataStringOptional. A JSON-serialized object for data about the invoice, which will be shared with the payment provider. A detailed description of the required fields should be provided by the payment provider.
photo_urlStringOptional. URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service.
photo_sizeIntegerOptional. Photo size in bytes
photo_widthIntegerOptional. Photo width
photo_heightIntegerOptional. Photo height
need_nameBooleanOptional. Pass True if you require the user's full name to complete the order
need_phone_numberBooleanOptional. Pass True if you require the user's phone number to complete the order
need_emailBooleanOptional. Pass True if you require the user's email address to complete the order
need_shipping_addressBooleanOptional. Pass True if you require the user's shipping address to complete the order
send_phone_number_to_providerBooleanOptional. Pass True if the user's phone number should be sent to provider
send_email_to_providerBooleanOptional. Pass True if the user's email address should be sent to provider
is_flexibleBooleanOptional. Pass True if the final price depends on the shipping method
+

ChosenInlineResult

+

Represents a result of an inline query that was chosen by the user and sent to their chat partner.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
result_idStringThe unique identifier for the result that was chosen
fromUserThe user that chose the result
locationLocationOptional. Sender location, only for bots that require user location
inline_message_idStringOptional. Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. Will be also received in callback queries and can be used to edit the message.
queryStringThe query that was used to obtain the result
+

Note: It is necessary to enable inline feedback via @BotFather in order to receive these objects in updates.

+

answerWebAppQuery

+

Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
web_app_query_idStringYesUnique identifier for the query to be answered
resultInlineQueryResultYesA JSON-serialized object describing the message to be sent
+

SentWebAppMessage

+

Describes an inline message sent by a Web App on behalf of a user.

+ + + + + + + + + + + + + + + +
FieldTypeDescription
inline_message_idStringOptional. Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message.
+

Payments

+

Your bot can accept payments from Telegram users. Please see the introduction to payments for more details on the process and how to set up payments for your bot. Please note that users will need Telegram v.4.0 or higher to use payments (released on May 18, 2017).

+

sendInvoice

+

Use this method to send invoices. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idInteger or StringYesUnique identifier for the target chat or username of the target channel (in the format @channelusername)
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
titleStringYesProduct name, 1-32 characters
descriptionStringYesProduct description, 1-255 characters
payloadStringYesBot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
provider_tokenStringYesPayment provider token, obtained via @BotFather
currencyStringYesThree-letter ISO 4217 currency code, see more on currencies
pricesArray of LabeledPriceYesPrice breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)
max_tip_amountIntegerOptionalThe maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0
suggested_tip_amountsArray of IntegerOptionalA JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount.
start_parameterStringOptionalUnique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter
provider_dataStringOptionalJSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.
photo_urlStringOptionalURL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.
photo_sizeIntegerOptionalPhoto size in bytes
photo_widthIntegerOptionalPhoto width
photo_heightIntegerOptionalPhoto height
need_nameBooleanOptionalPass True if you require the user's full name to complete the order
need_phone_numberBooleanOptionalPass True if you require the user's phone number to complete the order
need_emailBooleanOptionalPass True if you require the user's email address to complete the order
need_shipping_addressBooleanOptionalPass True if you require the user's shipping address to complete the order
send_phone_number_to_providerBooleanOptionalPass True if the user's phone number should be sent to provider
send_email_to_providerBooleanOptionalPass True if the user's email address should be sent to provider
is_flexibleBooleanOptionalPass True if the final price depends on the shipping method
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button.
+

createInvoiceLink

+

Use this method to create a link for an invoice. Returns the created invoice link as String on success.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
titleStringYesProduct name, 1-32 characters
descriptionStringYesProduct description, 1-255 characters
payloadStringYesBot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.
provider_tokenStringYesPayment provider token, obtained via BotFather
currencyStringYesThree-letter ISO 4217 currency code, see more on currencies
pricesArray of LabeledPriceYesPrice breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)
max_tip_amountIntegerOptionalThe maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0
suggested_tip_amountsArray of IntegerOptionalA JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount.
provider_dataStringOptionalJSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.
photo_urlStringOptionalURL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service.
photo_sizeIntegerOptionalPhoto size in bytes
photo_widthIntegerOptionalPhoto width
photo_heightIntegerOptionalPhoto height
need_nameBooleanOptionalPass True if you require the user's full name to complete the order
need_phone_numberBooleanOptionalPass True if you require the user's phone number to complete the order
need_emailBooleanOptionalPass True if you require the user's email address to complete the order
need_shipping_addressBooleanOptionalPass True if you require the user's shipping address to complete the order
send_phone_number_to_providerBooleanOptionalPass True if the user's phone number should be sent to the provider
send_email_to_providerBooleanOptionalPass True if the user's email address should be sent to the provider
is_flexibleBooleanOptionalPass True if the final price depends on the shipping method
+

answerShippingQuery

+

If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
shipping_query_idStringYesUnique identifier for the query to be answered
okBooleanYesPass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible)
shipping_optionsArray of ShippingOptionOptionalRequired if ok is True. A JSON-serialized array of available shipping options.
error_messageStringOptionalRequired if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user.
+

answerPreCheckoutQuery

+

Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
pre_checkout_query_idStringYesUnique identifier for the query to be answered
okBooleanYesSpecify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems.
error_messageStringOptionalRequired if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user.
+

LabeledPrice

+

This object represents a portion of the price for goods or services.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
labelStringPortion label
amountIntegerPrice of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
+

Invoice

+

This object contains basic information about an invoice.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
titleStringProduct name
descriptionStringProduct description
start_parameterStringUnique bot deep-linking parameter that can be used to generate this invoice
currencyStringThree-letter ISO 4217 currency code
total_amountIntegerTotal price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
+

ShippingAddress

+

This object represents a shipping address.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
country_codeStringTwo-letter ISO 3166-1 alpha-2 country code
stateStringState, if applicable
cityStringCity
street_line1StringFirst line for the address
street_line2StringSecond line for the address
post_codeStringAddress post code
+

OrderInfo

+

This object represents information about an order.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
nameStringOptional. User name
phone_numberStringOptional. User's phone number
emailStringOptional. User email
shipping_addressShippingAddressOptional. User shipping address
+

ShippingOption

+

This object represents one shipping option.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringShipping option identifier
titleStringOption title
pricesArray of LabeledPriceList of price portions
+

SuccessfulPayment

+

This object contains basic information about a successful payment.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
currencyStringThree-letter ISO 4217 currency code
total_amountIntegerTotal price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
invoice_payloadStringBot specified invoice payload
shipping_option_idStringOptional. Identifier of the shipping option chosen by the user
order_infoOrderInfoOptional. Order information provided by the user
telegram_payment_charge_idStringTelegram payment identifier
provider_payment_charge_idStringProvider payment identifier
+

ShippingQuery

+

This object contains information about an incoming shipping query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringUnique query identifier
fromUserUser who sent the query
invoice_payloadStringBot specified invoice payload
shipping_addressShippingAddressUser specified shipping address
+

PreCheckoutQuery

+

This object contains information about an incoming pre-checkout query.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
idStringUnique query identifier
fromUserUser who sent the query
currencyStringThree-letter ISO 4217 currency code
total_amountIntegerTotal price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
invoice_payloadStringBot specified invoice payload
shipping_option_idStringOptional. Identifier of the shipping option chosen by the user
order_infoOrderInfoOptional. Order information provided by the user
+

Telegram Passport

+

Telegram Passport is a unified authorization method for services that require personal identification. Users can upload their documents once, then instantly share their data with services that require real-world ID (finance, ICOs, etc.). Please see the manual for details.

+

PassportData

+

Describes Telegram Passport data shared with the bot by the user.

+ + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
dataArray of EncryptedPassportElementArray with information about documents and other Telegram Passport elements that was shared with the bot
credentialsEncryptedCredentialsEncrypted credentials required to decrypt the data
+

PassportFile

+

This object represents a file uploaded to Telegram Passport. Currently all Telegram Passport files are in JPEG format when decrypted and don't exceed 10MB.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
file_idStringIdentifier for this file, which can be used to download or reuse the file
file_unique_idStringUnique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
file_sizeIntegerFile size in bytes
file_dateIntegerUnix time when the file was uploaded
+

EncryptedPassportElement

+

Describes documents or other Telegram Passport elements shared with the bot by the user.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
typeStringElement type. One of “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport”, “address”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”, “phone_number”, “email”.
dataStringOptional. Base64-encoded encrypted Telegram Passport element data provided by the user, available for “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport” and “address” types. Can be decrypted and verified using the accompanying EncryptedCredentials.
phone_numberStringOptional. User's verified phone number, available only for “phone_number” type
emailStringOptional. User's verified email address, available only for “email” type
filesArray of PassportFileOptional. Array of encrypted files with documents provided by the user, available for “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration” and “temporary_registration” types. Files can be decrypted and verified using the accompanying EncryptedCredentials.
front_sidePassportFileOptional. Encrypted file with the front side of the document, provided by the user. Available for “passport”, “driver_license”, “identity_card” and “internal_passport”. The file can be decrypted and verified using the accompanying EncryptedCredentials.
reverse_sidePassportFileOptional. Encrypted file with the reverse side of the document, provided by the user. Available for “driver_license” and “identity_card”. The file can be decrypted and verified using the accompanying EncryptedCredentials.
selfiePassportFileOptional. Encrypted file with the selfie of the user holding a document, provided by the user; available for “passport”, “driver_license”, “identity_card” and “internal_passport”. The file can be decrypted and verified using the accompanying EncryptedCredentials.
translationArray of PassportFileOptional. Array of encrypted files with translated versions of documents provided by the user. Available if requested for “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration” and “temporary_registration” types. Files can be decrypted and verified using the accompanying EncryptedCredentials.
hashStringBase64-encoded element hash for using in PassportElementErrorUnspecified
+

EncryptedCredentials

+

Describes data required for decrypting and authenticating EncryptedPassportElement. See the Telegram Passport Documentation for a complete description of the data decryption and authentication processes.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
dataStringBase64-encoded encrypted JSON-serialized data with unique user's payload, data hashes and secrets required for EncryptedPassportElement decryption and authentication
hashStringBase64-encoded data hash for data authentication
secretStringBase64-encoded secret, encrypted with the bot's public RSA key, required for data decryption
+

setPassportDataErrors

+

Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success.

+

Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues.

+ + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUser identifier
errorsArray of PassportElementErrorYesA JSON-serialized array describing the errors
+

PassportElementError

+

This object represents an error in the Telegram Passport element which was submitted that should be resolved by the user. It should be one of:

+ +

PassportElementErrorDataField

+

Represents an issue in one of the data fields that was provided by the user. The error is considered resolved when the field's value changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be data
typeStringThe section of the user's Telegram Passport which has the error, one of “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport”, “address”
field_nameStringName of the data field which has the error
data_hashStringBase64-encoded data hash
messageStringError message
+

PassportElementErrorFrontSide

+

Represents an issue with the front side of a document. The error is considered resolved when the file with the front side of the document changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be front_side
typeStringThe section of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”
file_hashStringBase64-encoded hash of the file with the front side of the document
messageStringError message
+

PassportElementErrorReverseSide

+

Represents an issue with the reverse side of a document. The error is considered resolved when the file with reverse side of the document changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be reverse_side
typeStringThe section of the user's Telegram Passport which has the issue, one of “driver_license”, “identity_card”
file_hashStringBase64-encoded hash of the file with the reverse side of the document
messageStringError message
+

PassportElementErrorSelfie

+

Represents an issue with the selfie with a document. The error is considered resolved when the file with the selfie changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be selfie
typeStringThe section of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”
file_hashStringBase64-encoded hash of the file with the selfie
messageStringError message
+

PassportElementErrorFile

+

Represents an issue with a document scan. The error is considered resolved when the file with the document scan changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be file
typeStringThe section of the user's Telegram Passport which has the issue, one of “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”
file_hashStringBase64-encoded file hash
messageStringError message
+

PassportElementErrorFiles

+

Represents an issue with a list of scans. The error is considered resolved when the list of files containing the scans changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be files
typeStringThe section of the user's Telegram Passport which has the issue, one of “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”
file_hashesArray of StringList of base64-encoded file hashes
messageStringError message
+

PassportElementErrorTranslationFile

+

Represents an issue with one of the files that constitute the translation of a document. The error is considered resolved when the file changes.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be translation_file
typeStringType of element of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”
file_hashStringBase64-encoded file hash
messageStringError message
+

PassportElementErrorTranslationFiles

+

Represents an issue with the translated version of a document. The error is considered resolved when a file with the document translation change.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be translation_files
typeStringType of element of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”
file_hashesArray of StringList of base64-encoded file hashes
messageStringError message
+

PassportElementErrorUnspecified

+

Represents an issue in an unspecified place. The error is considered resolved when new data is added.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
sourceStringError source, must be unspecified
typeStringType of element of the user's Telegram Passport which has the issue
element_hashStringBase64-encoded element hash
messageStringError message
+

Games

+

Your bot can offer users HTML5 games to play solo or to compete against each other in groups and one-on-one chats. Create games via @BotFather using the /newgame command. Please note that this kind of power requires responsibility: you will need to accept the terms for each game that your bots will be offering.

+
    +
  • Games are a new type of content on Telegram, represented by the Game and InlineQueryResultGame objects.
  • +
  • Once you've created a game via BotFather, you can send games to chats as regular messages using the sendGame method, or use inline mode with InlineQueryResultGame.
  • +
  • If you send the game message without any buttons, it will automatically have a 'Play GameName' button. When this button is pressed, your bot gets a CallbackQuery with the game_short_name of the requested game. You provide the correct URL for this particular user and the app opens the game in the in-app browser.
  • +
  • You can manually add multiple buttons to your game message. Please note that the first button in the first row must always launch the game, using the field callback_game in InlineKeyboardButton. You can add extra buttons according to taste: e.g., for a description of the rules, or to open the game's official community.
  • +
  • To make your game more attractive, you can upload a GIF animation that demostrates the game to the users via BotFather (see Lumberjack for example).
  • +
  • A game message will also display high scores for the current chat. Use setGameScore to post high scores to the chat with the game, add the edit_message parameter to automatically update the message with the current scoreboard.
  • +
  • Use getGameHighScores to get data for in-game high score tables.
  • +
  • You can also add an extra sharing button for users to share their best score to different chats.
  • +
  • For examples of what can be done using this new stuff, check the @gamebot and @gamee bots.
  • +
+

sendGame

+

Use this method to send a game. On success, the sent Message is returned.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
chat_idIntegerYesUnique identifier for the target chat
message_thread_idIntegerOptionalUnique identifier for the target message thread (topic) of the forum; for forum supergroups only
game_short_nameStringYesShort name of the game, serves as the unique identifier for the game. Set up your games via @BotFather.
disable_notificationBooleanOptionalSends the message silently. Users will receive a notification with no sound.
protect_contentBooleanOptionalProtects the contents of the sent message from forwarding and saving
reply_to_message_idIntegerOptionalIf the message is a reply, ID of the original message
allow_sending_without_replyBooleanOptionalPass True if the message should be sent even if the specified replied-to message is not found
reply_markupInlineKeyboardMarkupOptionalA JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game.
+

Game

+

This object represents a game. Use BotFather to create and edit games, their short names will act as unique identifiers.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
titleStringTitle of the game
descriptionStringDescription of the game
photoArray of PhotoSizePhoto that will be displayed in the game message in chats.
textStringOptional. Brief description of the game or high scores included in the game message. Can be automatically edited to include current high scores for the game when the bot calls setGameScore, or manually edited using editMessageText. 0-4096 characters.
text_entitiesArray of MessageEntityOptional. Special entities that appear in text, such as usernames, URLs, bot commands, etc.
animationAnimationOptional. Animation that will be displayed in the game message in chats. Upload via BotFather
+

CallbackGame

+

A placeholder, currently holds no information. Use BotFather to set up your game.

+

setGameScore

+

Use this method to set the score of the specified user in a game message. On success, if the message is not an inline message, the Message is returned, otherwise True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesUser identifier
scoreIntegerYesNew score, must be non-negative
forceBooleanOptionalPass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters
disable_edit_messageBooleanOptionalPass True if the game message should not be automatically edited to include the current scoreboard
chat_idIntegerOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the sent message
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
+

getGameHighScores

+

Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects.

+
+

This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterTypeRequiredDescription
user_idIntegerYesTarget user id
chat_idIntegerOptionalRequired if inline_message_id is not specified. Unique identifier for the target chat
message_idIntegerOptionalRequired if inline_message_id is not specified. Identifier of the sent message
inline_message_idStringOptionalRequired if chat_id and message_id are not specified. Identifier of the inline message
+

GameHighScore

+

This object represents one row of the high scores table for a game.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldTypeDescription
positionIntegerPosition in high score table for the game
userUserUser
scoreIntegerScore
+
+

And that's about all we've got for now.
If you've got any questions, please check out our Bot FAQ »

+
+ +
+ +
+
+ +
+ + + + + + + diff --git a/api/tbot-api.api b/api/tbot-api.api new file mode 100644 index 0000000..51a1817 --- /dev/null +++ b/api/tbot-api.api @@ -0,0 +1,11671 @@ +public final class me/alllex/tbot/api/client/TelegramBotApiClient { + public static final field Companion Lme/alllex/tbot/api/client/TelegramBotApiClient$Companion; + public synthetic fun (Lio/ktor/client/HttpClient;Ljava/lang/String;Lio/ktor/http/URLProtocol;Ljava/lang/String;ILkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun closeHttpClient ()V +} + +public final class me/alllex/tbot/api/client/TelegramBotApiClient$Companion { + public final fun invoke (Ljava/lang/String;Lio/ktor/client/engine/HttpClientEngineFactory;Lio/ktor/http/URLProtocol;Ljava/lang/String;ILkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;)Lme/alllex/tbot/api/client/TelegramBotApiClient; + public final fun invoke (Ljava/lang/String;Lio/ktor/http/URLProtocol;Lio/ktor/client/engine/HttpClientEngine;Ljava/lang/String;ILkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;)Lme/alllex/tbot/api/client/TelegramBotApiClient; + public static synthetic fun invoke$default (Lme/alllex/tbot/api/client/TelegramBotApiClient$Companion;Ljava/lang/String;Lio/ktor/client/engine/HttpClientEngineFactory;Lio/ktor/http/URLProtocol;Ljava/lang/String;ILkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lme/alllex/tbot/api/client/TelegramBotApiClient; + public static synthetic fun invoke$default (Lme/alllex/tbot/api/client/TelegramBotApiClient$Companion;Ljava/lang/String;Lio/ktor/http/URLProtocol;Lio/ktor/client/engine/HttpClientEngine;Ljava/lang/String;ILkotlin/jvm/functions/Function3;Lkotlin/jvm/functions/Function4;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lme/alllex/tbot/api/client/TelegramBotApiClient; +} + +public final class me/alllex/tbot/api/client/TelegramBotApiClientKt { + public static final field DEFAULT_TELEGRAM_API_HOST Ljava/lang/String; +} + +public abstract interface class me/alllex/tbot/api/client/TelegramBotApiContext { + public abstract fun getBotApiClient ()Lme/alllex/tbot/api/client/TelegramBotApiClient; +} + +public final class me/alllex/tbot/api/client/TelegramBotApiException : java/lang/RuntimeException { + public fun (Lme/alllex/tbot/api/client/TelegramResponse;)V + public final fun getResponse ()Lme/alllex/tbot/api/client/TelegramResponse; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/client/TelegramBotApiPoller { + public static final field Companion Lme/alllex/tbot/api/client/TelegramBotApiPoller$Companion; + public synthetic fun (Lme/alllex/tbot/api/client/TelegramBotApiClient;JILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun runForever (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;)V + public final fun start (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;)V + public final fun stop (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun stopBlocking-LRDsOJo (J)V + public static synthetic fun stopBlocking-LRDsOJo$default (Lme/alllex/tbot/api/client/TelegramBotApiPoller;JILjava/lang/Object;)V +} + +public final class me/alllex/tbot/api/client/TelegramBotApiPoller$Companion { +} + +public abstract interface class me/alllex/tbot/api/client/TelegramBotUpdateHandler { + public abstract fun handle (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public abstract interface class me/alllex/tbot/api/client/TelegramBotUpdateListener { + public abstract fun onCallbackQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/CallbackQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onChannelPost (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onChatJoinRequest (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatJoinRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onChatMember (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onChosenInlineResult (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChosenInlineResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onEditedChannelPost (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onEditedMessage (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onInlineQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InlineQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onMessage (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onMyChatMember (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onPoll (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Poll;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onPollAnswer (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/PollAnswer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/PreCheckoutQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onShippingQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ShippingQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun onUpdate (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Update;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/client/TelegramBotUpdateListener$DefaultImpls { + public static fun onCallbackQuery (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/CallbackQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onChannelPost (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onChatJoinRequest (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatJoinRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onChatMember (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onChosenInlineResult (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChosenInlineResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onEditedChannelPost (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onEditedMessage (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onInlineQuery (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InlineQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onMessage (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onMyChatMember (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onPoll (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Poll;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onPollAnswer (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/PollAnswer;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/PreCheckoutQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onShippingQuery (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ShippingQuery;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static fun onUpdate (Lme/alllex/tbot/api/client/TelegramBotUpdateListener;Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Update;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/client/TelegramBotUpdateListenerKt { + public static final fun TelegramBotUpdateListener (Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lkotlin/Unit;)Lme/alllex/tbot/api/client/TelegramBotUpdateListener; + public static synthetic fun TelegramBotUpdateListener$default (Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lme/alllex/tbot/api/client/TelegramBotUpdateHandler;Lkotlin/Unit;ILjava/lang/Object;)Lme/alllex/tbot/api/client/TelegramBotUpdateListener; +} + +public final class me/alllex/tbot/api/client/TelegramResponse { + public static final field Companion Lme/alllex/tbot/api/client/TelegramResponse$Companion; + public synthetic fun (ILjava/lang/Object;ZLjava/lang/String;Ljava/lang/Integer;Lme/alllex/tbot/api/model/ResponseParameters;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/Object;ZLjava/lang/String;Ljava/lang/Integer;Lme/alllex/tbot/api/model/ResponseParameters;)V + public synthetic fun (Ljava/lang/Object;ZLjava/lang/String;Ljava/lang/Integer;Lme/alllex/tbot/api/model/ResponseParameters;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Object; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Lme/alllex/tbot/api/model/ResponseParameters; + public final fun copy (Ljava/lang/Object;ZLjava/lang/String;Ljava/lang/Integer;Lme/alllex/tbot/api/model/ResponseParameters;)Lme/alllex/tbot/api/client/TelegramResponse; + public static synthetic fun copy$default (Lme/alllex/tbot/api/client/TelegramResponse;Ljava/lang/Object;ZLjava/lang/String;Ljava/lang/Integer;Lme/alllex/tbot/api/model/ResponseParameters;ILjava/lang/Object;)Lme/alllex/tbot/api/client/TelegramResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getErrorCode ()Ljava/lang/Integer; + public final fun getOk ()Z + public final fun getParameters ()Lme/alllex/tbot/api/model/ResponseParameters; + public final fun getResult ()Ljava/lang/Object; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/client/TelegramResponse;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;Lkotlinx/serialization/KSerializer;)V +} + +public final class me/alllex/tbot/api/client/TelegramResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public synthetic fun (Lkotlinx/serialization/KSerializer;)V + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/client/TelegramResponse; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/client/TelegramResponse;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/client/TelegramResponse$Companion { + public final fun serializer (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/client/TelegramResponseKt { + public static final fun getResultOrThrow (Lme/alllex/tbot/api/client/TelegramResponse;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/AddStickerToSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/AddStickerToSetRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Ljava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/InputSticker; + public final fun copy-H_qFevU (JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;)Lme/alllex/tbot/api/model/AddStickerToSetRequest; + public static synthetic fun copy-H_qFevU$default (Lme/alllex/tbot/api/model/AddStickerToSetRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AddStickerToSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getSticker ()Lme/alllex/tbot/api/model/InputSticker; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AddStickerToSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AddStickerToSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AddStickerToSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AddStickerToSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AddStickerToSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AddStickerToSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Animation { + public static final field Companion Lme/alllex/tbot/api/model/Animation$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4 ()J + public final fun component5-RHIZTpk ()J + public final fun component6 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-kGAecg8 (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Animation; + public static synthetic fun copy-kGAecg8$default (Lme/alllex/tbot/api/model/Animation;Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Animation; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileName ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getHeight ()J + public final fun getMimeType ()Ljava/lang/String; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun getWidth ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Animation;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Animation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Animation$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Animation; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Animation;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Animation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerCallbackQueryRequest { + public static final field Companion Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-DpI8ZEw ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/String; + public final fun component5-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun copy-nGpGt0g (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;)Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest; + public static synthetic fun copy-nGpGt0g$default (Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCacheTime-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getCallbackQueryId-DpI8ZEw ()Ljava/lang/String; + public final fun getShowAlert ()Ljava/lang/Boolean; + public final fun getText ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AnswerCallbackQueryRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerCallbackQueryRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerInlineQueryRequest { + public static final field Companion Lme/alllex/tbot/api/model/AnswerInlineQueryRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-HIwWqo4 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/InlineQueryResultsButton; + public final fun copy-CyDHBQ8 (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;)Lme/alllex/tbot/api/model/AnswerInlineQueryRequest; + public static synthetic fun copy-CyDHBQ8$default (Lme/alllex/tbot/api/model/AnswerInlineQueryRequest;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AnswerInlineQueryRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getButton ()Lme/alllex/tbot/api/model/InlineQueryResultsButton; + public final fun getCacheTime-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getInlineQueryId-HIwWqo4 ()Ljava/lang/String; + public final fun getNextOffset ()Ljava/lang/String; + public final fun getResults ()Ljava/util/List; + public fun hashCode ()I + public final fun isPersonal ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AnswerInlineQueryRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AnswerInlineQueryRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AnswerInlineQueryRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AnswerInlineQueryRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AnswerInlineQueryRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerInlineQueryRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest { + public static final field Companion Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest$Companion; + public synthetic fun (ILjava/lang/String;ZLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;ZLjava/lang/String;)V + public synthetic fun (Ljava/lang/String;ZLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;ZLjava/lang/String;)Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest;Ljava/lang/String;ZLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getErrorMessage ()Ljava/lang/String; + public final fun getOk ()Z + public final fun getPreCheckoutQueryId ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerShippingQueryRequest { + public static final field Companion Lme/alllex/tbot/api/model/AnswerShippingQueryRequest$Companion; + public synthetic fun (ILjava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-r6k-wCk ()Ljava/lang/String; + public final fun component2 ()Z + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun copy-9Wv9hE4 (Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;)Lme/alllex/tbot/api/model/AnswerShippingQueryRequest; + public static synthetic fun copy-9Wv9hE4$default (Lme/alllex/tbot/api/model/AnswerShippingQueryRequest;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AnswerShippingQueryRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getErrorMessage ()Ljava/lang/String; + public final fun getOk ()Z + public final fun getShippingOptions ()Ljava/util/List; + public final fun getShippingQueryId-r6k-wCk ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AnswerShippingQueryRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AnswerShippingQueryRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AnswerShippingQueryRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AnswerShippingQueryRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AnswerShippingQueryRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerShippingQueryRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerWebAppQueryRequest { + public static final field Companion Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-TYe2um8 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/InlineQueryResult; + public final fun copy-ruIge-I (Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;)Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest; + public static synthetic fun copy-ruIge-I$default (Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;ILjava/lang/Object;)Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getResult ()Lme/alllex/tbot/api/model/InlineQueryResult; + public final fun getWebAppQueryId-TYe2um8 ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/AnswerWebAppQueryRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/AnswerWebAppQueryRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ApproveChatJoinRequestRequest { + public static final field Companion Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun copy-erltSOI (JJ)Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest; + public static synthetic fun copy-erltSOI$default (Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ApproveChatJoinRequestRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ApproveChatJoinRequestRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Audio { + public static final field Companion Lme/alllex/tbot/api/model/Audio$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/PhotoSize;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/PhotoSize;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/PhotoSize;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3-RHIZTpk ()J + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun copy-CHHs7Aw (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/PhotoSize;)Lme/alllex/tbot/api/model/Audio; + public static synthetic fun copy-CHHs7Aw$default (Lme/alllex/tbot/api/model/Audio;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/PhotoSize;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Audio; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileName ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getMimeType ()Ljava/lang/String; + public final fun getPerformer ()Ljava/lang/String; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Audio;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Audio$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Audio$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Audio; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Audio;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Audio$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BanChatMemberRequest { + public static final field Companion Lme/alllex/tbot/api/model/BanChatMemberRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun component3-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component4 ()Ljava/lang/Boolean; + public final fun copy-G9P2GKg (JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/BanChatMemberRequest; + public static synthetic fun copy-G9P2GKg$default (Lme/alllex/tbot/api/model/BanChatMemberRequest;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/BanChatMemberRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getRevokeMessages ()Ljava/lang/Boolean; + public final fun getUntilDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BanChatMemberRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BanChatMemberRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BanChatMemberRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BanChatMemberRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BanChatMemberRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BanChatMemberRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BanChatSenderChatRequest { + public static final field Companion Lme/alllex/tbot/api/model/BanChatSenderChatRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-dK1lXec ()J + public final fun copy-88fzk7c (JJ)Lme/alllex/tbot/api/model/BanChatSenderChatRequest; + public static synthetic fun copy-88fzk7c$default (Lme/alllex/tbot/api/model/BanChatSenderChatRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/BanChatSenderChatRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getSenderChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BanChatSenderChatRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BanChatSenderChatRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BanChatSenderChatRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BanChatSenderChatRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BanChatSenderChatRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BanChatSenderChatRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommand { + public static final field Companion Lme/alllex/tbot/api/model/BotCommand$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/BotCommand; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/BotCommand;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/BotCommand; + public fun equals (Ljava/lang/Object;)Z + public final fun getCommand ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotCommand;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotCommand$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommand$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotCommand; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotCommand;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommand$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/BotCommandScope { + public static final field Companion Lme/alllex/tbot/api/model/BotCommandScope$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotCommandScope;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotCommandScope$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeAllChatAdministrators : me/alllex/tbot/api/model/BotCommandScope { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeAllChatAdministrators; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeAllGroupChats : me/alllex/tbot/api/model/BotCommandScope { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeAllGroupChats; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeAllPrivateChats : me/alllex/tbot/api/model/BotCommandScope { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeAllPrivateChats; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChat : me/alllex/tbot/api/model/BotCommandScope { + public static final field Companion Lme/alllex/tbot/api/model/BotCommandScopeChat$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/BotCommandScopeChat; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/BotCommandScopeChat;JILjava/lang/Object;)Lme/alllex/tbot/api/model/BotCommandScopeChat; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotCommandScopeChat;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChat$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeChat$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotCommandScopeChat; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotCommandScopeChat;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChat$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatAdministrators : me/alllex/tbot/api/model/BotCommandScope { + public static final field Companion Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators;JILjava/lang/Object;)Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatAdministrators$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotCommandScopeChatAdministrators;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatAdministrators$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatMember : me/alllex/tbot/api/model/BotCommandScope { + public static final field Companion Lme/alllex/tbot/api/model/BotCommandScopeChatMember$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun copy-erltSOI (JJ)Lme/alllex/tbot/api/model/BotCommandScopeChatMember; + public static synthetic fun copy-erltSOI$default (Lme/alllex/tbot/api/model/BotCommandScopeChatMember;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/BotCommandScopeChatMember; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotCommandScopeChatMember;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatMember$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeChatMember$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotCommandScopeChatMember; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotCommandScopeChatMember;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeChatMember$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotCommandScopeDefault : me/alllex/tbot/api/model/BotCommandScope { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotCommandScopeDefault; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/BotDescription { + public static final field Companion Lme/alllex/tbot/api/model/BotDescription$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/BotDescription; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/BotDescription;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/BotDescription; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotDescription;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotDescription$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotDescription$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotDescription; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotDescription;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotDescription$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotName { + public static final field Companion Lme/alllex/tbot/api/model/BotName$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/BotName; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/BotName;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/BotName; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotName;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotName$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotName$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotName; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotName;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotName$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotShortDescription { + public static final field Companion Lme/alllex/tbot/api/model/BotShortDescription$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/BotShortDescription; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/BotShortDescription;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/BotShortDescription; + public fun equals (Ljava/lang/Object;)Z + public final fun getShortDescription ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/BotShortDescription;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/BotShortDescription$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/BotShortDescription$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/BotShortDescription; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/BotShortDescription;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/BotShortDescription$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackGame { + public static final field INSTANCE Lme/alllex/tbot/api/model/CallbackGame; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/CallbackQuery { + public static final field Companion Lme/alllex/tbot/api/model/CallbackQuery$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-DpI8ZEw ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/Message; + public final fun component5-C2ZHHQs ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun copy-MiU38qU (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/CallbackQuery; + public static synthetic fun copy-MiU38qU$default (Lme/alllex/tbot/api/model/CallbackQuery;Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CallbackQuery; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatInstance ()Ljava/lang/String; + public final fun getData ()Ljava/lang/String; + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getGameShortName ()Ljava/lang/String; + public final fun getId-DpI8ZEw ()Ljava/lang/String; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessage ()Lme/alllex/tbot/api/model/Message; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CallbackQuery;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CallbackQuery$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CallbackQuery$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CallbackQuery; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CallbackQuery;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackQuery$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackQueryId { + public static final field Companion Lme/alllex/tbot/api/model/CallbackQueryId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/CallbackQueryId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/CallbackQueryId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CallbackQueryId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-HDD-3OA (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-ivvejxg (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackQueryId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackQueryUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/CallbackQueryUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/CallbackQuery;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/CallbackQuery;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/CallbackQuery; + public final fun copy (JLme/alllex/tbot/api/model/CallbackQuery;)Lme/alllex/tbot/api/model/CallbackQueryUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/CallbackQueryUpdate;JLme/alllex/tbot/api/model/CallbackQuery;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CallbackQueryUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getCallbackQuery ()Lme/alllex/tbot/api/model/CallbackQuery; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CallbackQueryUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CallbackQueryUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CallbackQueryUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CallbackQueryUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CallbackQueryUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CallbackQueryUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChannelPostUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/ChannelPostUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/Message;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/Message;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/Message; + public final fun copy (JLme/alllex/tbot/api/model/Message;)Lme/alllex/tbot/api/model/ChannelPostUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChannelPostUpdate;JLme/alllex/tbot/api/model/Message;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChannelPostUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getChannelPost ()Lme/alllex/tbot/api/model/Message; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChannelPostUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChannelPostUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChannelPostUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChannelPostUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChannelPostUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChannelPostUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Chat { + public static final field Companion Lme/alllex/tbot/api/model/Chat$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatPhoto;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatLocation;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatPhoto;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatLocation;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatPhoto;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatLocation;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10-b1Wa8Lk ()Ljava/lang/String; + public final fun component11-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Ljava/lang/String; + public final fun component18 ()Ljava/lang/String; + public final fun component19 ()Lme/alllex/tbot/api/model/Message; + public final fun component2 ()Ljava/lang/String; + public final fun component20 ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun component21 ()Ljava/lang/Long; + public final fun component22 ()Ljava/lang/Long; + public final fun component23 ()Ljava/lang/Boolean; + public final fun component24 ()Ljava/lang/Boolean; + public final fun component25 ()Ljava/lang/Boolean; + public final fun component26 ()Ljava/lang/String; + public final fun component27 ()Ljava/lang/Boolean; + public final fun component28-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component29 ()Lme/alllex/tbot/api/model/ChatLocation; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Lme/alllex/tbot/api/model/ChatPhoto; + public final fun component9 ()Ljava/util/List; + public final fun copy-tMjj6LI (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatPhoto;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatLocation;)Lme/alllex/tbot/api/model/Chat; + public static synthetic fun copy-tMjj6LI$default (Lme/alllex/tbot/api/model/Chat;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatPhoto;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatLocation;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Chat; + public fun equals (Ljava/lang/Object;)Z + public final fun getActiveUsernames ()Ljava/util/List; + public final fun getBio ()Ljava/lang/String; + public final fun getCanSetStickerSet ()Ljava/lang/Boolean; + public final fun getDescription ()Ljava/lang/String; + public final fun getEmojiStatusCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getEmojiStatusExpirationDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getFirstName ()Ljava/lang/String; + public final fun getHasAggressiveAntiSpamEnabled ()Ljava/lang/Boolean; + public final fun getHasHiddenMembers ()Ljava/lang/Boolean; + public final fun getHasPrivateForwards ()Ljava/lang/Boolean; + public final fun getHasProtectedContent ()Ljava/lang/Boolean; + public final fun getHasRestrictedVoiceAndVideoMessages ()Ljava/lang/Boolean; + public final fun getId-dK1lXec ()J + public final fun getInviteLink ()Ljava/lang/String; + public final fun getJoinByRequest ()Ljava/lang/Boolean; + public final fun getJoinToSendMessages ()Ljava/lang/Boolean; + public final fun getLastName ()Ljava/lang/String; + public final fun getLinkedChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getLocation ()Lme/alllex/tbot/api/model/ChatLocation; + public final fun getMessageAutoDeleteTime ()Ljava/lang/Long; + public final fun getPermissions ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun getPhoto ()Lme/alllex/tbot/api/model/ChatPhoto; + public final fun getPinnedMessage ()Lme/alllex/tbot/api/model/Message; + public final fun getSlowModeDelay ()Ljava/lang/Long; + public final fun getStickerSetName ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUsername ()Ljava/lang/String; + public fun hashCode ()I + public final fun isForum ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Chat;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Chat$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Chat$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Chat; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Chat;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Chat$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatAdministratorRights { + public static final field Companion Lme/alllex/tbot/api/model/ChatAdministratorRights$Companion; + public synthetic fun (IZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (ZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (ZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Z + public final fun component7 ()Z + public final fun component8 ()Z + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy (ZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ChatAdministratorRights; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatAdministratorRights;ZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatAdministratorRights; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanChangeInfo ()Z + public final fun getCanDeleteMessages ()Z + public final fun getCanDeleteStories ()Ljava/lang/Boolean; + public final fun getCanEditMessages ()Ljava/lang/Boolean; + public final fun getCanEditStories ()Ljava/lang/Boolean; + public final fun getCanInviteUsers ()Z + public final fun getCanManageChat ()Z + public final fun getCanManageTopics ()Ljava/lang/Boolean; + public final fun getCanManageVideoChats ()Z + public final fun getCanPinMessages ()Ljava/lang/Boolean; + public final fun getCanPostMessages ()Ljava/lang/Boolean; + public final fun getCanPostStories ()Ljava/lang/Boolean; + public final fun getCanPromoteMembers ()Z + public final fun getCanRestrictMembers ()Z + public fun hashCode ()I + public final fun isAnonymous ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatAdministratorRights;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatAdministratorRights$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatAdministratorRights$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatAdministratorRights; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatAdministratorRights;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatAdministratorRights$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatId { + public static final field Companion Lme/alllex/tbot/api/model/ChatId$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/ChatId; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/ChatId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-VHXAOWQ (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-u60QbII (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatInviteLink { + public static final field Companion Lme/alllex/tbot/api/model/ChatInviteLink$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;ZZZLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;ZZZLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;ZZZLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Ljava/lang/String; + public final fun component7-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-2rv7sbQ (Ljava/lang/String;Lme/alllex/tbot/api/model/User;ZZZLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/ChatInviteLink; + public static synthetic fun copy-2rv7sbQ$default (Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/String;Lme/alllex/tbot/api/model/User;ZZZLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatInviteLink; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatesJoinRequest ()Z + public final fun getCreator ()Lme/alllex/tbot/api/model/User; + public final fun getExpireDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getInviteLink ()Ljava/lang/String; + public final fun getMemberLimit ()Ljava/lang/Long; + public final fun getName ()Ljava/lang/String; + public final fun getPendingJoinRequestCount ()Ljava/lang/Long; + public fun hashCode ()I + public final fun isPrimary ()Z + public final fun isRevoked ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatInviteLink;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatInviteLink$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatInviteLink$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatInviteLink; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatInviteLink;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatInviteLink$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatJoinRequest { + public static final field Companion Lme/alllex/tbot/api/model/ChatJoinRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/ChatInviteLink;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JJLjava/lang/String;Lme/alllex/tbot/api/model/ChatInviteLink;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JJLjava/lang/String;Lme/alllex/tbot/api/model/ChatInviteLink;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/Chat; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3-dK1lXec ()J + public final fun component4-GuijAhI ()J + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ChatInviteLink; + public final fun copy-AN2bymk (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JJLjava/lang/String;Lme/alllex/tbot/api/model/ChatInviteLink;)Lme/alllex/tbot/api/model/ChatJoinRequest; + public static synthetic fun copy-AN2bymk$default (Lme/alllex/tbot/api/model/ChatJoinRequest;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JJLjava/lang/String;Lme/alllex/tbot/api/model/ChatInviteLink;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatJoinRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getBio ()Ljava/lang/String; + public final fun getChat ()Lme/alllex/tbot/api/model/Chat; + public final fun getDate-GuijAhI ()J + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getInviteLink ()Lme/alllex/tbot/api/model/ChatInviteLink; + public final fun getUserChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatJoinRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatJoinRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatJoinRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatJoinRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatJoinRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatJoinRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatJoinRequestUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/ChatJoinRequestUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ChatJoinRequest;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/ChatJoinRequest;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ChatJoinRequest; + public final fun copy (JLme/alllex/tbot/api/model/ChatJoinRequest;)Lme/alllex/tbot/api/model/ChatJoinRequestUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatJoinRequestUpdate;JLme/alllex/tbot/api/model/ChatJoinRequest;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatJoinRequestUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatJoinRequest ()Lme/alllex/tbot/api/model/ChatJoinRequest; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatJoinRequestUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatJoinRequestUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatJoinRequestUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatJoinRequestUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatJoinRequestUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatJoinRequestUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatLocation { + public static final field Companion Lme/alllex/tbot/api/model/ChatLocation$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/Location;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/Location;Ljava/lang/String;)V + public final fun component1 ()Lme/alllex/tbot/api/model/Location; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lme/alllex/tbot/api/model/Location;Ljava/lang/String;)Lme/alllex/tbot/api/model/ChatLocation; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatLocation;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatLocation; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getLocation ()Lme/alllex/tbot/api/model/Location; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatLocation;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatLocation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatLocation$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatLocation; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatLocation;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatLocation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMember$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMember;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMember$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberAdministrator : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberAdministrator$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;ZZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/User;ZZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)V + public synthetic fun (Lme/alllex/tbot/api/model/User;ZZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun component10 ()Z + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Ljava/lang/Boolean; + public final fun component18 ()Ljava/lang/String; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Z + public final fun component7 ()Z + public final fun component8 ()Z + public final fun component9 ()Z + public final fun copy (Lme/alllex/tbot/api/model/User;ZZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)Lme/alllex/tbot/api/model/ChatMemberAdministrator; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatMemberAdministrator;Lme/alllex/tbot/api/model/User;ZZZZZZZZZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberAdministrator; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanBeEdited ()Z + public final fun getCanChangeInfo ()Z + public final fun getCanDeleteMessages ()Z + public final fun getCanDeleteStories ()Ljava/lang/Boolean; + public final fun getCanEditMessages ()Ljava/lang/Boolean; + public final fun getCanEditStories ()Ljava/lang/Boolean; + public final fun getCanInviteUsers ()Z + public final fun getCanManageChat ()Z + public final fun getCanManageTopics ()Ljava/lang/Boolean; + public final fun getCanManageVideoChats ()Z + public final fun getCanPinMessages ()Ljava/lang/Boolean; + public final fun getCanPostMessages ()Ljava/lang/Boolean; + public final fun getCanPostStories ()Ljava/lang/Boolean; + public final fun getCanPromoteMembers ()Z + public final fun getCanRestrictMembers ()Z + public final fun getCustomTitle ()Ljava/lang/String; + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public final fun isAnonymous ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberAdministrator;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberAdministrator$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberAdministrator$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberAdministrator; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberAdministrator;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberAdministrator$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberBanned : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberBanned$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/User;JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun component2-GuijAhI ()J + public final fun copy-47RJg1k (Lme/alllex/tbot/api/model/User;J)Lme/alllex/tbot/api/model/ChatMemberBanned; + public static synthetic fun copy-47RJg1k$default (Lme/alllex/tbot/api/model/ChatMemberBanned;Lme/alllex/tbot/api/model/User;JILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberBanned; + public fun equals (Ljava/lang/Object;)Z + public final fun getUntilDate-GuijAhI ()J + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberBanned;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberBanned$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberBanned$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberBanned; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberBanned;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberBanned$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberLeft : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberLeft$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/User;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun copy (Lme/alllex/tbot/api/model/User;)Lme/alllex/tbot/api/model/ChatMemberLeft; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatMemberLeft;Lme/alllex/tbot/api/model/User;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberLeft; + public fun equals (Ljava/lang/Object;)Z + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberLeft;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberLeft$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberLeft$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberLeft; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberLeft;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberLeft$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberMember : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberMember$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/User;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun copy (Lme/alllex/tbot/api/model/User;)Lme/alllex/tbot/api/model/ChatMemberMember; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatMemberMember;Lme/alllex/tbot/api/model/User;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberMember; + public fun equals (Ljava/lang/Object;)Z + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberMember;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberMember$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberMember$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberMember; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberMember;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberMember$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberOwner : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberOwner$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;ZLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/User;ZLjava/lang/String;)V + public synthetic fun (Lme/alllex/tbot/api/model/User;ZLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/String; + public final fun copy (Lme/alllex/tbot/api/model/User;ZLjava/lang/String;)Lme/alllex/tbot/api/model/ChatMemberOwner; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatMemberOwner;Lme/alllex/tbot/api/model/User;ZLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberOwner; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomTitle ()Ljava/lang/String; + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public final fun isAnonymous ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberOwner;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberOwner$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberOwner$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberOwner; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberOwner;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberOwner$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberRestricted : me/alllex/tbot/api/model/ChatMember { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberRestricted$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;ZZZZZZZZZZZZZZZLme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/User;ZZZZZZZZZZZZZZZJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun component10 ()Z + public final fun component11 ()Z + public final fun component12 ()Z + public final fun component13 ()Z + public final fun component14 ()Z + public final fun component15 ()Z + public final fun component16 ()Z + public final fun component17-GuijAhI ()J + public final fun component2 ()Z + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Z + public final fun component7 ()Z + public final fun component8 ()Z + public final fun component9 ()Z + public final fun copy-m_RnqgI (Lme/alllex/tbot/api/model/User;ZZZZZZZZZZZZZZZJ)Lme/alllex/tbot/api/model/ChatMemberRestricted; + public static synthetic fun copy-m_RnqgI$default (Lme/alllex/tbot/api/model/ChatMemberRestricted;Lme/alllex/tbot/api/model/User;ZZZZZZZZZZZZZZZJILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberRestricted; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanAddWebPagePreviews ()Z + public final fun getCanChangeInfo ()Z + public final fun getCanInviteUsers ()Z + public final fun getCanManageTopics ()Z + public final fun getCanPinMessages ()Z + public final fun getCanSendAudios ()Z + public final fun getCanSendDocuments ()Z + public final fun getCanSendMessages ()Z + public final fun getCanSendOtherMessages ()Z + public final fun getCanSendPhotos ()Z + public final fun getCanSendPolls ()Z + public final fun getCanSendVideoNotes ()Z + public final fun getCanSendVideos ()Z + public final fun getCanSendVoiceNotes ()Z + public final fun getUntilDate-GuijAhI ()J + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public final fun isMember ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberRestricted;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberRestricted$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberRestricted$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberRestricted; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberRestricted;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberRestricted$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/ChatMemberUpdated;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ChatMemberUpdated; + public final fun copy (JLme/alllex/tbot/api/model/ChatMemberUpdated;)Lme/alllex/tbot/api/model/ChatMemberUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatMemberUpdate;JLme/alllex/tbot/api/model/ChatMemberUpdated;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatMember ()Lme/alllex/tbot/api/model/ChatMemberUpdated; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdated { + public static final field Companion Lme/alllex/tbot/api/model/ChatMemberUpdated$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JLme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JLme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/Chat; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3-GuijAhI ()J + public final fun component4 ()Lme/alllex/tbot/api/model/ChatMember; + public final fun component5 ()Lme/alllex/tbot/api/model/ChatMember; + public final fun component6 ()Lme/alllex/tbot/api/model/ChatInviteLink; + public final fun component7 ()Ljava/lang/Boolean; + public final fun copy-9Y7u2uI (Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JLme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ChatMemberUpdated; + public static synthetic fun copy-9Y7u2uI$default (Lme/alllex/tbot/api/model/ChatMemberUpdated;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;JLme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatMember;Lme/alllex/tbot/api/model/ChatInviteLink;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatMemberUpdated; + public fun equals (Ljava/lang/Object;)Z + public final fun getChat ()Lme/alllex/tbot/api/model/Chat; + public final fun getDate-GuijAhI ()J + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getInviteLink ()Lme/alllex/tbot/api/model/ChatInviteLink; + public final fun getNewChatMember ()Lme/alllex/tbot/api/model/ChatMember; + public final fun getOldChatMember ()Lme/alllex/tbot/api/model/ChatMember; + public final fun getViaChatFolderInviteLink ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdated$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatMemberUpdated$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatMemberUpdated; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatMemberUpdated;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatMemberUpdated$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatPermissions { + public static final field Companion Lme/alllex/tbot/api/model/ChatPermissions$Companion; + public fun ()V + public synthetic fun (ILjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ChatPermissions; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatPermissions; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanAddWebPagePreviews ()Ljava/lang/Boolean; + public final fun getCanChangeInfo ()Ljava/lang/Boolean; + public final fun getCanInviteUsers ()Ljava/lang/Boolean; + public final fun getCanManageTopics ()Ljava/lang/Boolean; + public final fun getCanPinMessages ()Ljava/lang/Boolean; + public final fun getCanSendAudios ()Ljava/lang/Boolean; + public final fun getCanSendDocuments ()Ljava/lang/Boolean; + public final fun getCanSendMessages ()Ljava/lang/Boolean; + public final fun getCanSendOtherMessages ()Ljava/lang/Boolean; + public final fun getCanSendPhotos ()Ljava/lang/Boolean; + public final fun getCanSendPolls ()Ljava/lang/Boolean; + public final fun getCanSendVideoNotes ()Ljava/lang/Boolean; + public final fun getCanSendVideos ()Ljava/lang/Boolean; + public final fun getCanSendVoiceNotes ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatPermissions;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatPermissions$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatPermissions$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatPermissions; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatPermissions;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatPermissions$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatPhoto { + public static final field Companion Lme/alllex/tbot/api/model/ChatPhoto$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3-s0A8duU ()Ljava/lang/String; + public final fun component4-HnHFhuI ()Ljava/lang/String; + public final fun copy-uetFBGw (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/ChatPhoto; + public static synthetic fun copy-uetFBGw$default (Lme/alllex/tbot/api/model/ChatPhoto;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatPhoto; + public fun equals (Ljava/lang/Object;)Z + public final fun getBigFileId-s0A8duU ()Ljava/lang/String; + public final fun getBigFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getSmallFileId-s0A8duU ()Ljava/lang/String; + public final fun getSmallFileUniqueId-HnHFhuI ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatPhoto;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatPhoto$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatPhoto$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatPhoto; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatPhoto;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatPhoto$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatShared { + public static final field Companion Lme/alllex/tbot/api/model/ChatShared$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2-dK1lXec ()J + public final fun copy-u60QbII (JJ)Lme/alllex/tbot/api/model/ChatShared; + public static synthetic fun copy-u60QbII$default (Lme/alllex/tbot/api/model/ChatShared;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/ChatShared; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getRequestId ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChatShared;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChatShared$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChatShared$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChatShared; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChatShared;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChatShared$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChosenInlineResult { + public static final field Companion Lme/alllex/tbot/api/model/ChosenInlineResult$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/Location; + public final fun component5-C2ZHHQs ()Ljava/lang/String; + public final fun copy-TWply-Y (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;)Lme/alllex/tbot/api/model/ChosenInlineResult; + public static synthetic fun copy-TWply-Y$default (Lme/alllex/tbot/api/model/ChosenInlineResult;Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChosenInlineResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getLocation ()Lme/alllex/tbot/api/model/Location; + public final fun getQuery ()Ljava/lang/String; + public final fun getResultId-svCc_2A ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChosenInlineResult;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChosenInlineResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChosenInlineResult$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChosenInlineResult; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChosenInlineResult;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChosenInlineResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChosenInlineResultUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/ChosenInlineResultUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ChosenInlineResult;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/ChosenInlineResult;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ChosenInlineResult; + public final fun copy (JLme/alllex/tbot/api/model/ChosenInlineResult;)Lme/alllex/tbot/api/model/ChosenInlineResultUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ChosenInlineResultUpdate;JLme/alllex/tbot/api/model/ChosenInlineResult;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ChosenInlineResultUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getChosenInlineResult ()Lme/alllex/tbot/api/model/ChosenInlineResult; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ChosenInlineResultUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ChosenInlineResultUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ChosenInlineResultUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ChosenInlineResultUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ChosenInlineResultUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ChosenInlineResultUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CloseForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/CloseForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-kZOvVs8 ()J + public final fun copy-n9freCk (JJ)Lme/alllex/tbot/api/model/CloseForumTopicRequest; + public static synthetic fun copy-n9freCk$default (Lme/alllex/tbot/api/model/CloseForumTopicRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/CloseForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageThreadId-kZOvVs8 ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CloseForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CloseForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CloseForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CloseForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CloseForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CloseForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CloseGeneralForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CloseGeneralForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CloseGeneralForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Contact { + public static final field Companion Lme/alllex/tbot/api/model/Contact$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4-4lLb1Z4 ()Lme/alllex/tbot/api/model/UserId; + public final fun component5 ()Ljava/lang/String; + public final fun copy-LsDq_dQ (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;)Lme/alllex/tbot/api/model/Contact; + public static synthetic fun copy-LsDq_dQ$default (Lme/alllex/tbot/api/model/Contact;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Contact; + public fun equals (Ljava/lang/Object;)Z + public final fun getFirstName ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getUserId-4lLb1Z4 ()Lme/alllex/tbot/api/model/UserId; + public final fun getVcard ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Contact;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Contact$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Contact$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Contact; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Contact;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Contact$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CopyMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/CopyMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2-dK1lXec ()J + public final fun component3-2OzcLEE ()J + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-nurJ7QA (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/CopyMessageRequest; + public static synthetic fun copy-nurJ7QA$default (Lme/alllex/tbot/api/model/CopyMessageRequest;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CopyMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getFromChatId-dK1lXec ()J + public final fun getMessageId-2OzcLEE ()J + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CopyMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CopyMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CopyMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CopyMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CopyMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CopyMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateChatInviteLinkRequest { + public static final field Companion Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Boolean; + public final fun copy-8ZCRr_o (JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest; + public static synthetic fun copy-8ZCRr_o$default (Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getCreatesJoinRequest ()Ljava/lang/Boolean; + public final fun getExpireDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getMemberLimit ()Ljava/lang/Long; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CreateChatInviteLinkRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateChatInviteLinkRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/CreateForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/Long; + public final fun component4-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-1_yf3YQ (JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Lme/alllex/tbot/api/model/CreateForumTopicRequest; + public static synthetic fun copy-1_yf3YQ$default (Lme/alllex/tbot/api/model/CreateForumTopicRequest;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CreateForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getIconColor ()Ljava/lang/Long; + public final fun getIconCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CreateForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CreateForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CreateForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CreateForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CreateForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateInvoiceLinkRequest { + public static final field Companion Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/Long; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/lang/Long; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Ljava/lang/Boolean; + public final fun component18 ()Ljava/lang/Boolean; + public final fun component19 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component20 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCurrency ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getMaxTipAmount ()Ljava/lang/Long; + public final fun getNeedEmail ()Ljava/lang/Boolean; + public final fun getNeedName ()Ljava/lang/Boolean; + public final fun getNeedPhoneNumber ()Ljava/lang/Boolean; + public final fun getNeedShippingAddress ()Ljava/lang/Boolean; + public final fun getPayload ()Ljava/lang/String; + public final fun getPhotoHeight ()Ljava/lang/Long; + public final fun getPhotoSize ()Ljava/lang/Long; + public final fun getPhotoUrl ()Ljava/lang/String; + public final fun getPhotoWidth ()Ljava/lang/Long; + public final fun getPrices ()Ljava/util/List; + public final fun getProviderData ()Ljava/lang/String; + public final fun getProviderToken ()Ljava/lang/String; + public final fun getSendEmailToProvider ()Ljava/lang/Boolean; + public final fun getSendPhoneNumberToProvider ()Ljava/lang/Boolean; + public final fun getSuggestedTipAmounts ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public final fun isFlexible ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CreateInvoiceLinkRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateInvoiceLinkRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateNewStickerSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/CreateNewStickerSetRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun copy-3muUpH0 (JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/CreateNewStickerSetRequest; + public static synthetic fun copy-3muUpH0$default (Lme/alllex/tbot/api/model/CreateNewStickerSetRequest;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/CreateNewStickerSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getNeedsRepainting ()Ljava/lang/Boolean; + public final fun getStickerFormat ()Ljava/lang/String; + public final fun getStickerType ()Ljava/lang/String; + public final fun getStickers ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/CreateNewStickerSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/CreateNewStickerSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CreateNewStickerSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/CreateNewStickerSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/CreateNewStickerSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CreateNewStickerSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CustomEmojiId { + public static final field Companion Lme/alllex/tbot/api/model/CustomEmojiId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/CustomEmojiId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/CustomEmojiId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/CustomEmojiId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-3DN8-tE (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-vrGW0_8 (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/CustomEmojiId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DebugStringBuilder { + public fun (Ljava/lang/String;)V + public final fun prop (Ljava/lang/String;Ljava/lang/Object;)Lme/alllex/tbot/api/model/DebugStringBuilder; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/DeclineChatJoinRequestRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun copy-erltSOI (JJ)Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest; + public static synthetic fun copy-erltSOI$default (Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeclineChatJoinRequestRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeclineChatJoinRequestRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteChatPhotoRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteChatPhotoRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/DeleteChatPhotoRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/DeleteChatPhotoRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteChatPhotoRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteChatPhotoRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteChatPhotoRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteChatPhotoRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteChatPhotoRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteChatPhotoRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteChatPhotoRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteChatStickerSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteChatStickerSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteChatStickerSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-kZOvVs8 ()J + public final fun copy-n9freCk (JJ)Lme/alllex/tbot/api/model/DeleteForumTopicRequest; + public static synthetic fun copy-n9freCk$default (Lme/alllex/tbot/api/model/DeleteForumTopicRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageThreadId-kZOvVs8 ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-2OzcLEE ()J + public final fun copy-vw3oODE (JJ)Lme/alllex/tbot/api/model/DeleteMessageRequest; + public static synthetic fun copy-vw3oODE$default (Lme/alllex/tbot/api/model/DeleteMessageRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageId-2OzcLEE ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteMyCommandsRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteMyCommandsRequest$Companion; + public fun ()V + public synthetic fun (ILme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)V + public synthetic fun (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/BotCommandScope; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)Lme/alllex/tbot/api/model/DeleteMyCommandsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/DeleteMyCommandsRequest;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteMyCommandsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getScope ()Lme/alllex/tbot/api/model/BotCommandScope; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteMyCommandsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteMyCommandsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteMyCommandsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteMyCommandsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteMyCommandsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteMyCommandsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteStickerFromSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteStickerFromSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteStickerFromSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteStickerSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteStickerSetRequest$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/DeleteStickerSetRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/DeleteStickerSetRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteStickerSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteStickerSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteStickerSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteStickerSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteStickerSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteStickerSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteStickerSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteWebhookRequest { + public static final field Companion Lme/alllex/tbot/api/model/DeleteWebhookRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/DeleteWebhookRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/DeleteWebhookRequest;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/DeleteWebhookRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getDropPendingUpdates ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/DeleteWebhookRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/DeleteWebhookRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/DeleteWebhookRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/DeleteWebhookRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/DeleteWebhookRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/DeleteWebhookRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Dice { + public static final field Companion Lme/alllex/tbot/api/model/Dice$Companion; + public synthetic fun (ILjava/lang/String;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lme/alllex/tbot/api/model/Dice; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/Dice;Ljava/lang/String;JILjava/lang/Object;)Lme/alllex/tbot/api/model/Dice; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmoji ()Ljava/lang/String; + public final fun getValue ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Dice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Dice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Dice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Dice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Dice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Dice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Document { + public static final field Companion Lme/alllex/tbot/api/model/Document$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/Long; + public final fun copy-7KtKeNc (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Document; + public static synthetic fun copy-7KtKeNc$default (Lme/alllex/tbot/api/model/Document;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Document; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileName ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getMimeType ()Ljava/lang/String; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Document;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Document$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Document$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Document; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Document;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Document$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditChatInviteLinkRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditChatInviteLinkRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy-3GWxs6M (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/EditChatInviteLinkRequest; + public static synthetic fun copy-3GWxs6M$default (Lme/alllex/tbot/api/model/EditChatInviteLinkRequest;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditChatInviteLinkRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getCreatesJoinRequest ()Ljava/lang/Boolean; + public final fun getExpireDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getInviteLink ()Ljava/lang/String; + public final fun getMemberLimit ()Ljava/lang/Long; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditChatInviteLinkRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditChatInviteLinkRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditChatInviteLinkRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditChatInviteLinkRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditChatInviteLinkRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditChatInviteLinkRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-kZOvVs8 ()J + public final fun component3 ()Ljava/lang/String; + public final fun component4-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-Qh6ijmM (JJLjava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/EditForumTopicRequest; + public static synthetic fun copy-Qh6ijmM$default (Lme/alllex/tbot/api/model/EditForumTopicRequest;JJLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getIconCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getMessageThreadId-kZOvVs8 ()J + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditGeneralForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditGeneralForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditGeneralForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageCaptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditMessageCaptionRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component2-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component3-C2ZHHQs ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-hFnpkfU (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/EditMessageCaptionRequest; + public static synthetic fun copy-hFnpkfU$default (Lme/alllex/tbot/api/model/EditMessageCaptionRequest;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditMessageCaptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditMessageCaptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditMessageCaptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditMessageCaptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditMessageCaptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditMessageCaptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageCaptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageLiveLocationRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest$Companion; + public synthetic fun (DDLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (DDLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (IDDLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()D + public final fun component3-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component4-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component5-C2ZHHQs ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/Double; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-9GcAy50 (DDLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest; + public static synthetic fun copy-9GcAy50$default (Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest;DDLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getHeading ()Ljava/lang/Long; + public final fun getHorizontalAccuracy ()Ljava/lang/Double; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getLatitude ()D + public final fun getLongitude ()D + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getProximityAlertRadius ()Ljava/lang/Long; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditMessageLiveLocationRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageLiveLocationRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageMediaRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditMessageMediaRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/InputMedia;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/InputMedia;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/InputMedia;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/InputMedia; + public final fun component2-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component3-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component4-C2ZHHQs ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-cg6vpN8 (Lme/alllex/tbot/api/model/InputMedia;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/EditMessageMediaRequest; + public static synthetic fun copy-cg6vpN8$default (Lme/alllex/tbot/api/model/EditMessageMediaRequest;Lme/alllex/tbot/api/model/InputMedia;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditMessageMediaRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMedia ()Lme/alllex/tbot/api/model/InputMedia; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditMessageMediaRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditMessageMediaRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditMessageMediaRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditMessageMediaRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditMessageMediaRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageMediaRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageReplyMarkupRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component2-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component3-C2ZHHQs ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-VA0VJKo (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest; + public static synthetic fun copy-VA0VJKo$default (Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditMessageReplyMarkupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageReplyMarkupRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageTextRequest { + public static final field Companion Lme/alllex/tbot/api/model/EditMessageTextRequest$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component3-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component4-C2ZHHQs ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-NADNGE0 (Ljava/lang/String;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/EditMessageTextRequest; + public static synthetic fun copy-NADNGE0$default (Lme/alllex/tbot/api/model/EditMessageTextRequest;Ljava/lang/String;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditMessageTextRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getDisableWebPagePreview ()Ljava/lang/Boolean; + public final fun getEntities ()Ljava/util/List; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getText ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditMessageTextRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditMessageTextRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditMessageTextRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditMessageTextRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditMessageTextRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditMessageTextRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditedChannelPostUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/EditedChannelPostUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/Message;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/Message;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/Message; + public final fun copy (JLme/alllex/tbot/api/model/Message;)Lme/alllex/tbot/api/model/EditedChannelPostUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/EditedChannelPostUpdate;JLme/alllex/tbot/api/model/Message;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditedChannelPostUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getEditedChannelPost ()Lme/alllex/tbot/api/model/Message; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditedChannelPostUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditedChannelPostUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditedChannelPostUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditedChannelPostUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditedChannelPostUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditedChannelPostUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditedMessageUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/EditedMessageUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/Message;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/Message;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/Message; + public final fun copy (JLme/alllex/tbot/api/model/Message;)Lme/alllex/tbot/api/model/EditedMessageUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/EditedMessageUpdate;JLme/alllex/tbot/api/model/Message;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EditedMessageUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getEditedMessage ()Lme/alllex/tbot/api/model/Message; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EditedMessageUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EditedMessageUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EditedMessageUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EditedMessageUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EditedMessageUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EditedMessageUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EncryptedCredentials { + public static final field Companion Lme/alllex/tbot/api/model/EncryptedCredentials$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/EncryptedCredentials; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/EncryptedCredentials;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EncryptedCredentials; + public fun equals (Ljava/lang/Object;)Z + public final fun getData ()Ljava/lang/String; + public final fun getHash ()Ljava/lang/String; + public final fun getSecret ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EncryptedCredentials;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EncryptedCredentials$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EncryptedCredentials$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EncryptedCredentials; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EncryptedCredentials;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EncryptedCredentials$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EncryptedPassportElement { + public static final field Companion Lme/alllex/tbot/api/model/EncryptedPassportElement$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/PassportFile; + public final fun component8 ()Lme/alllex/tbot/api/model/PassportFile; + public final fun component9 ()Lme/alllex/tbot/api/model/PassportFile; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Ljava/util/List;)Lme/alllex/tbot/api/model/EncryptedPassportElement; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/EncryptedPassportElement;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Lme/alllex/tbot/api/model/PassportFile;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/EncryptedPassportElement; + public fun equals (Ljava/lang/Object;)Z + public final fun getData ()Ljava/lang/String; + public final fun getEmail ()Ljava/lang/String; + public final fun getFiles ()Ljava/util/List; + public final fun getFrontSide ()Lme/alllex/tbot/api/model/PassportFile; + public final fun getHash ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getReverseSide ()Lme/alllex/tbot/api/model/PassportFile; + public final fun getSelfie ()Lme/alllex/tbot/api/model/PassportFile; + public final fun getTranslation ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/EncryptedPassportElement;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/EncryptedPassportElement$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/EncryptedPassportElement$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/EncryptedPassportElement; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/EncryptedPassportElement;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/EncryptedPassportElement$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ExportChatInviteLinkRequest { + public static final field Companion Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ExportChatInviteLinkRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ExportChatInviteLinkRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/File { + public static final field Companion Lme/alllex/tbot/api/model/File$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/Long; + public final fun component4 ()Ljava/lang/String; + public final fun copy-HbyD_44 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;)Lme/alllex/tbot/api/model/File; + public static synthetic fun copy-HbyD_44$default (Lme/alllex/tbot/api/model/File;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/File; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFilePath ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/File;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/File$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/File$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/File; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/File;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/File$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/FileId { + public static final field Companion Lme/alllex/tbot/api/model/FileId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/FileId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/FileId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/FileId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-sBIlG7I (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-SpBhThw (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/FileId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/FileUniqueId { + public static final field Companion Lme/alllex/tbot/api/model/FileUniqueId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/FileUniqueId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/FileUniqueId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/FileUniqueId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize--8b6bpY (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-R5QhZ6Q (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/FileUniqueId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForceReply : me/alllex/tbot/api/model/ReplyMarkup { + public static final field Companion Lme/alllex/tbot/api/model/ForceReply$Companion; + public synthetic fun (IZLjava/lang/String;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (ZLjava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (ZLjava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy (ZLjava/lang/String;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ForceReply; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ForceReply;ZLjava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ForceReply; + public fun equals (Ljava/lang/Object;)Z + public final fun getForceReply ()Z + public final fun getInputFieldPlaceholder ()Ljava/lang/String; + public final fun getSelective ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ForceReply;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ForceReply$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForceReply$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ForceReply; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ForceReply;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForceReply$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopic { + public static final field Companion Lme/alllex/tbot/api/model/ForumTopic$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-kZOvVs8 ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-O40c6Ig (JLjava/lang/String;JLjava/lang/String;)Lme/alllex/tbot/api/model/ForumTopic; + public static synthetic fun copy-O40c6Ig$default (Lme/alllex/tbot/api/model/ForumTopic;JLjava/lang/String;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ForumTopic; + public fun equals (Ljava/lang/Object;)Z + public final fun getIconColor ()J + public final fun getIconCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getMessageThreadId-kZOvVs8 ()J + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ForumTopic;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ForumTopic$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForumTopic$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ForumTopic; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ForumTopic;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopic$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopicClosed { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForumTopicClosed; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/ForumTopicCreated { + public static final field Companion Lme/alllex/tbot/api/model/ForumTopicCreated$Companion; + public synthetic fun (ILjava/lang/String;JLjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-3E4y4eU (Ljava/lang/String;JLjava/lang/String;)Lme/alllex/tbot/api/model/ForumTopicCreated; + public static synthetic fun copy-3E4y4eU$default (Lme/alllex/tbot/api/model/ForumTopicCreated;Ljava/lang/String;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ForumTopicCreated; + public fun equals (Ljava/lang/Object;)Z + public final fun getIconColor ()J + public final fun getIconCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ForumTopicCreated;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ForumTopicCreated$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForumTopicCreated$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ForumTopicCreated; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ForumTopicCreated;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopicCreated$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopicEdited { + public static final field Companion Lme/alllex/tbot/api/model/ForumTopicEdited$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-CEiDTUs (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/ForumTopicEdited; + public static synthetic fun copy-CEiDTUs$default (Lme/alllex/tbot/api/model/ForumTopicEdited;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ForumTopicEdited; + public fun equals (Ljava/lang/Object;)Z + public final fun getIconCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ForumTopicEdited;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ForumTopicEdited$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForumTopicEdited$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ForumTopicEdited; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ForumTopicEdited;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopicEdited$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForumTopicReopened { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForumTopicReopened; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/ForwardMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/ForwardMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-dK1lXec ()J + public final fun component3-2OzcLEE ()J + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy-atQYGHg (JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ForwardMessageRequest; + public static synthetic fun copy-atQYGHg$default (Lme/alllex/tbot/api/model/ForwardMessageRequest;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ForwardMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getFromChatId-dK1lXec ()J + public final fun getMessageId-2OzcLEE ()J + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ForwardMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ForwardMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ForwardMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ForwardMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ForwardMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ForwardMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Game { + public static final field Companion Lme/alllex/tbot/api/model/Game$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Lme/alllex/tbot/api/model/Animation; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;)Lme/alllex/tbot/api/model/Game; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/Game;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Game; + public fun equals (Ljava/lang/Object;)Z + public final fun getAnimation ()Lme/alllex/tbot/api/model/Animation; + public final fun getDescription ()Ljava/lang/String; + public final fun getPhoto ()Ljava/util/List; + public final fun getText ()Ljava/lang/String; + public final fun getTextEntities ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Game;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Game$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Game$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Game; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Game;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Game$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GameHighScore { + public static final field Companion Lme/alllex/tbot/api/model/GameHighScore$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/User;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/User;J)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()J + public final fun copy (JLme/alllex/tbot/api/model/User;J)Lme/alllex/tbot/api/model/GameHighScore; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GameHighScore;JLme/alllex/tbot/api/model/User;JILjava/lang/Object;)Lme/alllex/tbot/api/model/GameHighScore; + public fun equals (Ljava/lang/Object;)Z + public final fun getPosition ()J + public final fun getScore ()J + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GameHighScore;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GameHighScore$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GameHighScore$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GameHighScore; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GameHighScore;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GameHighScore$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GeneralForumTopicHidden { + public static final field INSTANCE Lme/alllex/tbot/api/model/GeneralForumTopicHidden; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/GeneralForumTopicUnhidden { + public static final field INSTANCE Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/GetChatAdministratorsRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetChatAdministratorsRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/GetChatAdministratorsRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/GetChatAdministratorsRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/GetChatAdministratorsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetChatAdministratorsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetChatAdministratorsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetChatAdministratorsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetChatAdministratorsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetChatAdministratorsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatAdministratorsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMemberCountRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetChatMemberCountRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/GetChatMemberCountRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/GetChatMemberCountRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/GetChatMemberCountRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetChatMemberCountRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetChatMemberCountRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetChatMemberCountRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetChatMemberCountRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetChatMemberCountRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMemberCountRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMemberRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetChatMemberRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun copy-erltSOI (JJ)Lme/alllex/tbot/api/model/GetChatMemberRequest; + public static synthetic fun copy-erltSOI$default (Lme/alllex/tbot/api/model/GetChatMemberRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/GetChatMemberRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetChatMemberRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetChatMemberRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetChatMemberRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetChatMemberRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetChatMemberRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMemberRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMenuButtonRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetChatMenuButtonRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun copy-FR3opxs (Lme/alllex/tbot/api/model/ChatId;)Lme/alllex/tbot/api/model/GetChatMenuButtonRequest; + public static synthetic fun copy-FR3opxs$default (Lme/alllex/tbot/api/model/GetChatMenuButtonRequest;Lme/alllex/tbot/api/model/ChatId;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetChatMenuButtonRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetChatMenuButtonRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetChatMenuButtonRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetChatMenuButtonRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetChatMenuButtonRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetChatMenuButtonRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatMenuButtonRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetChatRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/GetChatRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/GetChatRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/GetChatRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetChatRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetChatRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetChatRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetChatRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetChatRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetChatRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetCustomEmojiStickersRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest$Companion; + public synthetic fun (ILjava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiIds ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetCustomEmojiStickersRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetCustomEmojiStickersRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetFileRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetFileRequest$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun copy-0BwTwNY (Ljava/lang/String;)Lme/alllex/tbot/api/model/GetFileRequest; + public static synthetic fun copy-0BwTwNY$default (Lme/alllex/tbot/api/model/GetFileRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetFileRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetFileRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetFileRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetFileRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetFileRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetFileRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetFileRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetGameHighScoresRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetGameHighScoresRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component3-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component4-C2ZHHQs ()Ljava/lang/String; + public final fun copy-Xf4YXBg (JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;)Lme/alllex/tbot/api/model/GetGameHighScoresRequest; + public static synthetic fun copy-Xf4YXBg$default (Lme/alllex/tbot/api/model/GetGameHighScoresRequest;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetGameHighScoresRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetGameHighScoresRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetGameHighScoresRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetGameHighScoresRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetGameHighScoresRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetGameHighScoresRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetGameHighScoresRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyCommandsRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetMyCommandsRequest$Companion; + public fun ()V + public synthetic fun (ILme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)V + public synthetic fun (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/BotCommandScope; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)Lme/alllex/tbot/api/model/GetMyCommandsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetMyCommandsRequest;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetMyCommandsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getScope ()Lme/alllex/tbot/api/model/BotCommandScope; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetMyCommandsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetMyCommandsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetMyCommandsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetMyCommandsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetMyCommandsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyCommandsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getForChannels ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyDescriptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetMyDescriptionRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/GetMyDescriptionRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetMyDescriptionRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetMyDescriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetMyDescriptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetMyDescriptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetMyDescriptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetMyDescriptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetMyDescriptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyDescriptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyNameRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetMyNameRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/GetMyNameRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetMyNameRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetMyNameRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetMyNameRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetMyNameRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetMyNameRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetMyNameRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetMyNameRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyNameRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyShortDescriptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetMyShortDescriptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetMyShortDescriptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetStickerSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetStickerSetRequest$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/GetStickerSetRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/GetStickerSetRequest;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetStickerSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetStickerSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetStickerSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetStickerSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetStickerSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetStickerSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetStickerSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetUpdatesRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetUpdatesRequest$Companion; + public synthetic fun (ILjava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Long; + public final fun component2 ()Ljava/lang/Long; + public final fun component3-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component4 ()Ljava/util/List; + public final fun copy-kdG_HPc (Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;)Lme/alllex/tbot/api/model/GetUpdatesRequest; + public static synthetic fun copy-kdG_HPc$default (Lme/alllex/tbot/api/model/GetUpdatesRequest;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetUpdatesRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowedUpdates ()Ljava/util/List; + public final fun getLimit ()Ljava/lang/Long; + public final fun getOffset ()Ljava/lang/Long; + public final fun getTimeout-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetUpdatesRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetUpdatesRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetUpdatesRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetUpdatesRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetUpdatesRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetUpdatesRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetUserProfilePhotosRequest { + public static final field Companion Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()Ljava/lang/Long; + public final fun component3 ()Ljava/lang/Long; + public final fun copy-H_qFevU (JLjava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest; + public static synthetic fun copy-H_qFevU$default (Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest;JLjava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLimit ()Ljava/lang/Long; + public final fun getOffset ()Ljava/lang/Long; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/GetUserProfilePhotosRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/GetUserProfilePhotosRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/HelpersKt { + public static final fun findEntity (Lme/alllex/tbot/api/model/Message;Lkotlin/jvm/functions/Function1;)Lme/alllex/tbot/api/model/MessageEntity; + public static final fun findEntityText (Lme/alllex/tbot/api/model/Message;Lkotlin/jvm/functions/Function1;)Ljava/lang/String; + public static final fun findLeadCommand (Lme/alllex/tbot/api/model/Message;)Lme/alllex/tbot/api/model/MessageEntity; + public static final fun get (Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/MessageEntity;)Ljava/lang/String; + public static final fun getAsSeconds (I)J + public static final fun getAsSeconds (J)J + public static final fun getAsSeconds-LRDsOJo (J)J + public static final fun getTextAfter (Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/MessageEntity;)Ljava/lang/String; + public static final fun getUsernameOrId (Lme/alllex/tbot/api/model/User;)Ljava/lang/String; + public static final fun isBotCommand (Lme/alllex/tbot/api/model/MessageEntity;)Z + public static final fun selfCheck (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun toInstant-iOOD0yg (J)Ljava/time/Instant; +} + +public final class me/alllex/tbot/api/model/HideGeneralForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/HideGeneralForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/HideGeneralForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardButton { + public static final field Companion Lme/alllex/tbot/api/model/InlineKeyboardButton$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lme/alllex/tbot/api/model/CallbackGame;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lme/alllex/tbot/api/model/CallbackGame;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lme/alllex/tbot/api/model/CallbackGame;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/WebAppInfo; + public final fun component5 ()Lme/alllex/tbot/api/model/LoginUrl; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat; + public final fun component9 ()Lme/alllex/tbot/api/model/CallbackGame; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lme/alllex/tbot/api/model/CallbackGame;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InlineKeyboardButton; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InlineKeyboardButton;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lme/alllex/tbot/api/model/CallbackGame;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineKeyboardButton; + public fun equals (Ljava/lang/Object;)Z + public final fun getCallbackData ()Ljava/lang/String; + public final fun getCallbackGame ()Lme/alllex/tbot/api/model/CallbackGame; + public final fun getLoginUrl ()Lme/alllex/tbot/api/model/LoginUrl; + public final fun getPay ()Ljava/lang/Boolean; + public final fun getSwitchInlineQuery ()Ljava/lang/String; + public final fun getSwitchInlineQueryChosenChat ()Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat; + public final fun getSwitchInlineQueryCurrentChat ()Ljava/lang/String; + public final fun getText ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public final fun getWebApp ()Lme/alllex/tbot/api/model/WebAppInfo; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineKeyboardButton;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineKeyboardButton$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineKeyboardButton$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineKeyboardButton; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineKeyboardButton;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardButton$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkup : me/alllex/tbot/api/model/ReplyMarkup { + public static final field Companion Lme/alllex/tbot/api/model/InlineKeyboardMarkup$Companion; + public synthetic fun (ILjava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun equals (Ljava/lang/Object;)Z + public final fun getInlineKeyboard ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkup$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineKeyboardMarkup$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkup$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder { + public fun ()V + public final fun addRow (Ljava/util/List;)V + public final fun build ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder$ButtonBuilder { + public fun ()V + public final fun build ()Lme/alllex/tbot/api/model/InlineKeyboardButton; + public final fun getCallbackData ()Ljava/lang/String; + public final fun getText ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public final fun setCallbackData (Ljava/lang/String;)V + public final fun setText (Ljava/lang/String;)V + public final fun setUrl (Ljava/lang/String;)V +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder$RowBuilder { + public fun ()V + public final fun addButton (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder$ButtonBuilder;)V + public final fun build ()Ljava/util/List; +} + +public final class me/alllex/tbot/api/model/InlineKeyboardMarkupBuilderKt { + public static final fun button (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder$RowBuilder;Ljava/lang/String;Ljava/lang/String;)V + public static final fun button (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder;Ljava/lang/String;Ljava/lang/String;)V + public static final fun buttonLink (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder$RowBuilder;Ljava/lang/String;Ljava/lang/String;)V + public static final fun buttonLink (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder;Ljava/lang/String;Ljava/lang/String;)V + public static final fun inlineKeyboard (Lkotlin/jvm/functions/Function1;)Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public static final fun row (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder;Lkotlin/jvm/functions/Function1;)V + public static final fun rowsChunked (Lme/alllex/tbot/api/model/InlineKeyboardMarkupBuilder;ILkotlin/jvm/functions/Function1;)V +} + +public abstract interface annotation class me/alllex/tbot/api/model/InlineKeyboardMarkupDsl : java/lang/annotation/Annotation { +} + +public final class me/alllex/tbot/api/model/InlineMessageId { + public static final field Companion Lme/alllex/tbot/api/model/InlineMessageId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/InlineMessageId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/InlineMessageId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineMessageId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-ETingQw (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-UD1_Kbk (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineMessageId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQuery { + public static final field Companion Lme/alllex/tbot/api/model/InlineQuery$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-HIwWqo4 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/Location; + public final fun copy-MI2L3cg (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;)Lme/alllex/tbot/api/model/InlineQuery; + public static synthetic fun copy-MI2L3cg$default (Lme/alllex/tbot/api/model/InlineQuery;Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Location;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQuery; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatType ()Ljava/lang/String; + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getId-HIwWqo4 ()Ljava/lang/String; + public final fun getLocation ()Lme/alllex/tbot/api/model/Location; + public final fun getOffset ()Ljava/lang/String; + public final fun getQuery ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQuery;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQuery$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQuery$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQuery; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQuery;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQuery$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryId { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/InlineQueryId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/InlineQueryId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-5Llchk0 (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-_oUTE80 (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResult$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultArticle : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultArticle$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InputMessageContent;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InputMessageContent;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InputMessageContent;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/Long; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component4 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-yM9Fv_o (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InputMessageContent;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InlineQueryResultArticle; + public static synthetic fun copy-yM9Fv_o$default (Lme/alllex/tbot/api/model/InlineQueryResultArticle;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InputMessageContent;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultArticle; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getHideUrl ()Ljava/lang/Boolean; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailHeight ()Ljava/lang/Long; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getThumbnailWidth ()Ljava/lang/Long; + public final fun getTitle ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultArticle;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultArticle$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultArticle$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultArticle; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultArticle;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultArticle$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultAudio : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultAudio$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-yM9Fv_o (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultAudio; + public static synthetic fun copy-yM9Fv_o$default (Lme/alllex/tbot/api/model/InlineQueryResultAudio;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultAudio; + public fun equals (Ljava/lang/Object;)Z + public final fun getAudioDuration ()Ljava/lang/Long; + public final fun getAudioUrl ()Ljava/lang/String; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPerformer ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultAudio;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultAudio$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultAudio$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultAudio; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultAudio;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultAudio$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedAudio : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component7 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-0nA8tD4 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio; + public static synthetic fun copy-0nA8tD4$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio; + public fun equals (Ljava/lang/Object;)Z + public final fun getAudioFileId-s0A8duU ()Ljava/lang/String; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedAudio$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedAudio;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedAudio$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedDocument : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3-s0A8duU ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component9 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-ZwvpSIM (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument; + public static synthetic fun copy-ZwvpSIM$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getDocumentFileId-s0A8duU ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedDocument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedDocument;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedDocument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedGif : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedGif$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component8 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy--sTh6-0 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedGif; + public static synthetic fun copy--sTh6-0$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedGif;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedGif; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getGifFileId-s0A8duU ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedGif;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedGif$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedGif$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedGif; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedGif;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedGif$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component8 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy--sTh6-0 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif; + public static synthetic fun copy--sTh6-0$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getMpeg4FileId-s0A8duU ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedMpeg4Gif$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedPhoto : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component9 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-IbBYaKA (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto; + public static synthetic fun copy-IbBYaKA$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPhotoFileId-s0A8duU ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedPhoto$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedPhoto;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedPhoto$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedSticker : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component4 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-Ux5XlUA (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker; + public static synthetic fun copy-Ux5XlUA$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker; + public fun equals (Ljava/lang/Object;)Z + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getStickerFileId-s0A8duU ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedSticker$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedSticker;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedSticker$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVideo : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component9 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-IbBYaKA (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo; + public static synthetic fun copy-IbBYaKA$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public final fun getVideoFileId-s0A8duU ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedVideo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVideo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVoice : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2-s0A8duU ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component8 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy--sTh6-0 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice; + public static synthetic fun copy--sTh6-0$default (Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public final fun getVoiceFileId-s0A8duU ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVoice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultCachedVoice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultCachedVoice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultContact : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultContact$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/Long; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component7 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-yM9Fv_o (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InlineQueryResultContact; + public static synthetic fun copy-yM9Fv_o$default (Lme/alllex/tbot/api/model/InlineQueryResultContact;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultContact; + public fun equals (Ljava/lang/Object;)Z + public final fun getFirstName ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getLastName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailHeight ()Ljava/lang/Long; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getThumbnailWidth ()Ljava/lang/Long; + public final fun getVcard ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultContact;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultContact$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultContact$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultContact; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultContact;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultContact$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultDocument : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultDocument$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/lang/Long; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-SRV2BrQ (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InlineQueryResultDocument; + public static synthetic fun copy-SRV2BrQ$default (Lme/alllex/tbot/api/model/InlineQueryResultDocument;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultDocument; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getDocumentUrl ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getMimeType ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailHeight ()Ljava/lang/Long; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getThumbnailWidth ()Ljava/lang/Long; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultDocument;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultDocument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultDocument$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultDocument; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultDocument;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultDocument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGame : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultGame$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-3x0E8Q8 (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/InlineQueryResultGame; + public static synthetic fun copy-3x0E8Q8$default (Lme/alllex/tbot/api/model/InlineQueryResultGame;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultGame; + public fun equals (Ljava/lang/Object;)Z + public final fun getGameShortName ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultGame;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGame$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultGame$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultGame; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultGame;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGame$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGif : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultGif$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component13 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy-SRV2BrQ (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultGif; + public static synthetic fun copy-SRV2BrQ$default (Lme/alllex/tbot/api/model/InlineQueryResultGif;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultGif; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getGifDuration ()Ljava/lang/Long; + public final fun getGifHeight ()Ljava/lang/Long; + public final fun getGifUrl ()Ljava/lang/String; + public final fun getGifWidth ()Ljava/lang/Long; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailMimeType ()Ljava/lang/String; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultGif;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGif$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultGif$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultGif; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultGif;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultGif$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultId { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/InlineQueryResultId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-wUy1l_4 (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-kGsr-Og (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultLocation : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultLocation$Companion; + public synthetic fun (ILjava/lang/String;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/lang/Long; + public final fun component2 ()D + public final fun component3 ()D + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/Double; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-SRV2BrQ (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InlineQueryResultLocation; + public static synthetic fun copy-SRV2BrQ$default (Lme/alllex/tbot/api/model/InlineQueryResultLocation;Ljava/lang/String;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultLocation; + public fun equals (Ljava/lang/Object;)Z + public final fun getHeading ()Ljava/lang/Long; + public final fun getHorizontalAccuracy ()Ljava/lang/Double; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getLatitude ()D + public final fun getLivePeriod ()Ljava/lang/Long; + public final fun getLongitude ()D + public final fun getProximityAlertRadius ()Ljava/lang/Long; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailHeight ()Ljava/lang/Long; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getThumbnailWidth ()Ljava/lang/Long; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultLocation;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultLocation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultLocation$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultLocation; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultLocation;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultLocation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultMpeg4Gif : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component13 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy-SRV2BrQ (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif; + public static synthetic fun copy-SRV2BrQ$default (Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getMpeg4Duration ()Ljava/lang/Long; + public final fun getMpeg4Height ()Ljava/lang/Long; + public final fun getMpeg4Url ()Ljava/lang/String; + public final fun getMpeg4Width ()Ljava/lang/Long; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailMimeType ()Ljava/lang/String; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultMpeg4Gif$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultMpeg4Gif;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultMpeg4Gif$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultPhoto : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultPhoto$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component12 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun copy-afqK-3M (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultPhoto; + public static synthetic fun copy-afqK-3M$default (Lme/alllex/tbot/api/model/InlineQueryResultPhoto;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultPhoto; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPhotoHeight ()Ljava/lang/Long; + public final fun getPhotoUrl ()Ljava/lang/String; + public final fun getPhotoWidth ()Ljava/lang/Long; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultPhoto;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultPhoto$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultPhoto$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultPhoto; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultPhoto;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultPhoto$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVenue : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultVenue$Companion; + public synthetic fun (ILjava/lang/String;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component11 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Ljava/lang/Long; + public final fun component14 ()Ljava/lang/Long; + public final fun component2 ()D + public final fun component3 ()D + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy-h3uz-C4 (Ljava/lang/String;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InlineQueryResultVenue; + public static synthetic fun copy-h3uz-C4$default (Lme/alllex/tbot/api/model/InlineQueryResultVenue;Ljava/lang/String;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultVenue; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getFoursquareId ()Ljava/lang/String; + public final fun getFoursquareType ()Ljava/lang/String; + public final fun getGooglePlaceId ()Ljava/lang/String; + public final fun getGooglePlaceType ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getLatitude ()D + public final fun getLongitude ()D + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailHeight ()Ljava/lang/Long; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getThumbnailWidth ()Ljava/lang/Long; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultVenue;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVenue$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultVenue$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultVenue; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultVenue;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVenue$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVideo : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultVideo$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/Long; + public final fun component11 ()Ljava/lang/Long; + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component14 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-h3uz-C4 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultVideo; + public static synthetic fun copy-h3uz-C4$default (Lme/alllex/tbot/api/model/InlineQueryResultVideo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultVideo; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDescription ()Ljava/lang/String; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getMimeType ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getThumbnailUrl ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public final fun getVideoDuration ()Ljava/lang/Long; + public final fun getVideoHeight ()Ljava/lang/Long; + public final fun getVideoUrl ()Ljava/lang/String; + public final fun getVideoWidth ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultVideo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultVideo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultVideo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultVideo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVideo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVoice : me/alllex/tbot/api/model/InlineQueryResult { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultVoice$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-svCc_2A ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component9 ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun copy-jhUezVI (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;)Lme/alllex/tbot/api/model/InlineQueryResultVoice; + public static synthetic fun copy-jhUezVI$default (Lme/alllex/tbot/api/model/InlineQueryResultVoice;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lme/alllex/tbot/api/model/InputMessageContent;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultVoice; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getId-svCc_2A ()Ljava/lang/String; + public final fun getInputMessageContent ()Lme/alllex/tbot/api/model/InputMessageContent; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getTitle ()Ljava/lang/String; + public final fun getVoiceDuration ()Ljava/lang/Long; + public final fun getVoiceUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultVoice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVoice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultVoice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultVoice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultVoice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultVoice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultsButton { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryResultsButton$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/WebAppInfo; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;)Lme/alllex/tbot/api/model/InlineQueryResultsButton; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InlineQueryResultsButton;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryResultsButton; + public fun equals (Ljava/lang/Object;)Z + public final fun getStartParameter ()Ljava/lang/String; + public final fun getText ()Ljava/lang/String; + public final fun getWebApp ()Lme/alllex/tbot/api/model/WebAppInfo; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryResultsButton$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryResultsButton$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryResultsButton; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryResultsButton;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryResultsButton$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/InlineQueryUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/InlineQuery;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/InlineQuery;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/InlineQuery; + public final fun copy (JLme/alllex/tbot/api/model/InlineQuery;)Lme/alllex/tbot/api/model/InlineQueryUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InlineQueryUpdate;JLme/alllex/tbot/api/model/InlineQuery;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InlineQueryUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getInlineQuery ()Lme/alllex/tbot/api/model/InlineQuery; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InlineQueryUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InlineQueryUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InlineQueryUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InlineQueryUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InlineQueryUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InlineQueryUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputContactMessageContent : me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputContactMessageContent$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/InputContactMessageContent; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputContactMessageContent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputContactMessageContent; + public fun equals (Ljava/lang/Object;)Z + public final fun getFirstName ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getVcard ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputContactMessageContent;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputContactMessageContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputContactMessageContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputContactMessageContent; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputContactMessageContent;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputContactMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputInvoiceMessageContent : me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputInvoiceMessageContent$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/Long; + public final fun component12 ()Ljava/lang/Long; + public final fun component13 ()Ljava/lang/Long; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Ljava/lang/Boolean; + public final fun component18 ()Ljava/lang/Boolean; + public final fun component19 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component20 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputInvoiceMessageContent; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputInvoiceMessageContent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputInvoiceMessageContent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCurrency ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getMaxTipAmount ()Ljava/lang/Long; + public final fun getNeedEmail ()Ljava/lang/Boolean; + public final fun getNeedName ()Ljava/lang/Boolean; + public final fun getNeedPhoneNumber ()Ljava/lang/Boolean; + public final fun getNeedShippingAddress ()Ljava/lang/Boolean; + public final fun getPayload ()Ljava/lang/String; + public final fun getPhotoHeight ()Ljava/lang/Long; + public final fun getPhotoSize ()Ljava/lang/Long; + public final fun getPhotoUrl ()Ljava/lang/String; + public final fun getPhotoWidth ()Ljava/lang/Long; + public final fun getPrices ()Ljava/util/List; + public final fun getProviderData ()Ljava/lang/String; + public final fun getProviderToken ()Ljava/lang/String; + public final fun getSendEmailToProvider ()Ljava/lang/Boolean; + public final fun getSendPhoneNumberToProvider ()Ljava/lang/Boolean; + public final fun getSuggestedTipAmounts ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public final fun isFlexible ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputInvoiceMessageContent;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputInvoiceMessageContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputInvoiceMessageContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputInvoiceMessageContent; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputInvoiceMessageContent;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputInvoiceMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputLocationMessageContent : me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputLocationMessageContent$Companion; + public fun (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V + public synthetic fun (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (IDDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()D + public final fun component3 ()Ljava/lang/Double; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun copy (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/InputLocationMessageContent; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputLocationMessageContent;DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputLocationMessageContent; + public fun equals (Ljava/lang/Object;)Z + public final fun getHeading ()Ljava/lang/Long; + public final fun getHorizontalAccuracy ()Ljava/lang/Double; + public final fun getLatitude ()D + public final fun getLivePeriod ()Ljava/lang/Long; + public final fun getLongitude ()D + public final fun getProximityAlertRadius ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputLocationMessageContent;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputLocationMessageContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputLocationMessageContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputLocationMessageContent; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputLocationMessageContent;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputLocationMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMedia$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMedia;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMedia$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaAnimation : me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMediaAnimation$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/Long; + public final fun component8-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-dBn3KyA (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputMediaAnimation; + public static synthetic fun copy-dBn3KyA$default (Lme/alllex/tbot/api/model/InputMediaAnimation;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputMediaAnimation; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getHeight ()Ljava/lang/Long; + public final fun getMedia ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getWidth ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMediaAnimation;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMediaAnimation$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMediaAnimation$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputMediaAnimation; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputMediaAnimation;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaAnimation$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaAudio : me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMediaAudio$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun copy-PQcuw7Y (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/InputMediaAudio; + public static synthetic fun copy-PQcuw7Y$default (Lme/alllex/tbot/api/model/InputMediaAudio;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputMediaAudio; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getMedia ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPerformer ()Ljava/lang/String; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMediaAudio;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMediaAudio$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMediaAudio$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputMediaAudio; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputMediaAudio;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaAudio$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaDocument : me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMediaDocument$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputMediaDocument; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputMediaDocument;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputMediaDocument; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDisableContentTypeDetection ()Ljava/lang/Boolean; + public final fun getMedia ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getThumbnail ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMediaDocument;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMediaDocument$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMediaDocument$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputMediaDocument; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputMediaDocument;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaDocument$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaPhoto : me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMediaPhoto$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputMediaPhoto; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputMediaPhoto;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputMediaPhoto; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getMedia ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMediaPhoto;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMediaPhoto$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMediaPhoto$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputMediaPhoto; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputMediaPhoto;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaPhoto$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaVideo : me/alllex/tbot/api/model/InputMedia { + public static final field Companion Lme/alllex/tbot/api/model/InputMediaVideo$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/Long; + public final fun component8-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-UOo-MAg (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputMediaVideo; + public static synthetic fun copy-UOo-MAg$default (Lme/alllex/tbot/api/model/InputMediaVideo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputMediaVideo; + public fun equals (Ljava/lang/Object;)Z + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getHeight ()Ljava/lang/Long; + public final fun getMedia ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getSupportsStreaming ()Ljava/lang/Boolean; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getWidth ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputMediaVideo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputMediaVideo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMediaVideo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputMediaVideo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputMediaVideo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMediaVideo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputMessageContent$Companion; +} + +public final class me/alllex/tbot/api/model/InputMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputMessageContentSerializer : kotlinx/serialization/json/JsonContentPolymorphicSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputMessageContentSerializer; +} + +public final class me/alllex/tbot/api/model/InputSticker { + public static final field Companion Lme/alllex/tbot/api/model/InputSticker$Companion; + public synthetic fun (ILjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MaskPosition;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MaskPosition;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MaskPosition;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun component4 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MaskPosition;Ljava/util/List;)Lme/alllex/tbot/api/model/InputSticker; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputSticker;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MaskPosition;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputSticker; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmojiList ()Ljava/util/List; + public final fun getKeywords ()Ljava/util/List; + public final fun getMaskPosition ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputSticker;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputSticker$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputSticker$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputSticker; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputSticker;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputSticker$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputTextMessageContent : me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputTextMessageContent$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/InputTextMessageContent; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputTextMessageContent;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputTextMessageContent; + public fun equals (Ljava/lang/Object;)Z + public final fun getDisableWebPagePreview ()Ljava/lang/Boolean; + public final fun getEntities ()Ljava/util/List; + public final fun getMessageText ()Ljava/lang/String; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputTextMessageContent;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputTextMessageContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputTextMessageContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputTextMessageContent; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputTextMessageContent;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputTextMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputVenueMessageContent : me/alllex/tbot/api/model/InputMessageContent { + public static final field Companion Lme/alllex/tbot/api/model/InputVenueMessageContent$Companion; + public fun (DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (IDDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()D + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun copy (DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/InputVenueMessageContent; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/InputVenueMessageContent;DDLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/InputVenueMessageContent; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getFoursquareId ()Ljava/lang/String; + public final fun getFoursquareType ()Ljava/lang/String; + public final fun getGooglePlaceId ()Ljava/lang/String; + public final fun getGooglePlaceType ()Ljava/lang/String; + public final fun getLatitude ()D + public final fun getLongitude ()D + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/InputVenueMessageContent;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/InputVenueMessageContent$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/InputVenueMessageContent$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/InputVenueMessageContent; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/InputVenueMessageContent;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/InputVenueMessageContent$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Invoice { + public static final field Companion Lme/alllex/tbot/api/model/Invoice$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()J + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Lme/alllex/tbot/api/model/Invoice; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/Invoice;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JILjava/lang/Object;)Lme/alllex/tbot/api/model/Invoice; + public fun equals (Ljava/lang/Object;)Z + public final fun getCurrency ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getStartParameter ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public final fun getTotalAmount ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Invoice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Invoice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Invoice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Invoice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Invoice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Invoice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButton { + public static final field Companion Lme/alllex/tbot/api/model/KeyboardButton$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lme/alllex/tbot/api/model/WebAppInfo;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lme/alllex/tbot/api/model/WebAppInfo;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lme/alllex/tbot/api/model/WebAppInfo;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/KeyboardButtonRequestUser; + public final fun component3 ()Lme/alllex/tbot/api/model/KeyboardButtonRequestChat; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Lme/alllex/tbot/api/model/KeyboardButtonPollType; + public final fun component7 ()Lme/alllex/tbot/api/model/WebAppInfo; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lme/alllex/tbot/api/model/WebAppInfo;)Lme/alllex/tbot/api/model/KeyboardButton; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/KeyboardButton;Ljava/lang/String;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lme/alllex/tbot/api/model/WebAppInfo;ILjava/lang/Object;)Lme/alllex/tbot/api/model/KeyboardButton; + public fun equals (Ljava/lang/Object;)Z + public final fun getRequestChat ()Lme/alllex/tbot/api/model/KeyboardButtonRequestChat; + public final fun getRequestContact ()Ljava/lang/Boolean; + public final fun getRequestLocation ()Ljava/lang/Boolean; + public final fun getRequestPoll ()Lme/alllex/tbot/api/model/KeyboardButtonPollType; + public final fun getRequestUser ()Lme/alllex/tbot/api/model/KeyboardButtonRequestUser; + public final fun getText ()Ljava/lang/String; + public final fun getWebApp ()Lme/alllex/tbot/api/model/WebAppInfo; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/KeyboardButton;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/KeyboardButton$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/KeyboardButton$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/KeyboardButton; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/KeyboardButton;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButton$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonPollType { + public static final field Companion Lme/alllex/tbot/api/model/KeyboardButtonPollType$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/KeyboardButtonPollType; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/KeyboardButtonPollType;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/KeyboardButtonPollType; + public fun equals (Ljava/lang/Object;)Z + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/KeyboardButtonPollType;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/KeyboardButtonPollType$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/KeyboardButtonPollType$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/KeyboardButtonPollType; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/KeyboardButtonPollType;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonPollType$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestChat { + public static final field Companion Lme/alllex/tbot/api/model/KeyboardButtonRequestChat$Companion; + public synthetic fun (IJZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatAdministratorRights;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatAdministratorRights;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;)V + public synthetic fun (JZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatAdministratorRights;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public final fun component7 ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public final fun component8 ()Ljava/lang/Boolean; + public final fun copy (JZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatAdministratorRights;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/KeyboardButtonRequestChat; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;JZLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatAdministratorRights;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/KeyboardButtonRequestChat; + public fun equals (Ljava/lang/Object;)Z + public final fun getBotAdministratorRights ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public final fun getBotIsMember ()Ljava/lang/Boolean; + public final fun getChatHasUsername ()Ljava/lang/Boolean; + public final fun getChatIsChannel ()Z + public final fun getChatIsCreated ()Ljava/lang/Boolean; + public final fun getChatIsForum ()Ljava/lang/Boolean; + public final fun getRequestId ()J + public final fun getUserAdministratorRights ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestChat$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/KeyboardButtonRequestChat$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/KeyboardButtonRequestChat; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/KeyboardButtonRequestChat;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestChat$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestUser { + public static final field Companion Lme/alllex/tbot/api/model/KeyboardButtonRequestUser$Companion; + public synthetic fun (IJLjava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLjava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (JLjava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy (JLjava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/KeyboardButtonRequestUser; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;JLjava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/KeyboardButtonRequestUser; + public fun equals (Ljava/lang/Object;)Z + public final fun getRequestId ()J + public final fun getUserIsBot ()Ljava/lang/Boolean; + public final fun getUserIsPremium ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestUser$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/KeyboardButtonRequestUser$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/KeyboardButtonRequestUser; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/KeyboardButtonRequestUser;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/KeyboardButtonRequestUser$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LabeledPrice { + public static final field Companion Lme/alllex/tbot/api/model/LabeledPrice$Companion; + public synthetic fun (ILjava/lang/String;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lme/alllex/tbot/api/model/LabeledPrice; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/LabeledPrice;Ljava/lang/String;JILjava/lang/Object;)Lme/alllex/tbot/api/model/LabeledPrice; + public fun equals (Ljava/lang/Object;)Z + public final fun getAmount ()J + public final fun getLabel ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/LabeledPrice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/LabeledPrice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/LabeledPrice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/LabeledPrice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/LabeledPrice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LabeledPrice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LeaveChatRequest { + public static final field Companion Lme/alllex/tbot/api/model/LeaveChatRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/LeaveChatRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/LeaveChatRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/LeaveChatRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/LeaveChatRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/LeaveChatRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/LeaveChatRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/LeaveChatRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/LeaveChatRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LeaveChatRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Location { + public static final field Companion Lme/alllex/tbot/api/model/Location$Companion; + public fun (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)V + public synthetic fun (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (IDDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public final fun component1 ()D + public final fun component2 ()D + public final fun component3 ()Ljava/lang/Double; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun copy (DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Location; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/Location;DDLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Location; + public fun equals (Ljava/lang/Object;)Z + public final fun getHeading ()Ljava/lang/Long; + public final fun getHorizontalAccuracy ()Ljava/lang/Double; + public final fun getLatitude ()D + public final fun getLivePeriod ()Ljava/lang/Long; + public final fun getLongitude ()D + public final fun getProximityAlertRadius ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Location;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Location$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Location$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Location; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Location;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Location$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LoginUrl { + public static final field Companion Lme/alllex/tbot/api/model/LoginUrl$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/LoginUrl; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/LoginUrl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/LoginUrl; + public fun equals (Ljava/lang/Object;)Z + public final fun getBotUsername ()Ljava/lang/String; + public final fun getForwardText ()Ljava/lang/String; + public final fun getRequestWriteAccess ()Ljava/lang/Boolean; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/LoginUrl;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/LoginUrl$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/LoginUrl$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/LoginUrl; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/LoginUrl;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/LoginUrl$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MaskPosition { + public static final field Companion Lme/alllex/tbot/api/model/MaskPosition$Companion; + public synthetic fun (ILjava/lang/String;DDDLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;DDD)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()D + public final fun component3 ()D + public final fun component4 ()D + public final fun copy (Ljava/lang/String;DDD)Lme/alllex/tbot/api/model/MaskPosition; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;DDDILjava/lang/Object;)Lme/alllex/tbot/api/model/MaskPosition; + public fun equals (Ljava/lang/Object;)Z + public final fun getPoint ()Ljava/lang/String; + public final fun getScale ()D + public final fun getXShift ()D + public final fun getYShift ()D + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MaskPosition;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MaskPosition$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MaskPosition$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MaskPosition; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MaskPosition;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MaskPosition$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/MenuButton { + public static final field Companion Lme/alllex/tbot/api/model/MenuButton$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MenuButton;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MenuButton$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MenuButtonCommands : me/alllex/tbot/api/model/MenuButton { + public static final field INSTANCE Lme/alllex/tbot/api/model/MenuButtonCommands; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/MenuButtonDefault : me/alllex/tbot/api/model/MenuButton { + public static final field INSTANCE Lme/alllex/tbot/api/model/MenuButtonDefault; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/MenuButtonWebApp : me/alllex/tbot/api/model/MenuButton { + public static final field Companion Lme/alllex/tbot/api/model/MenuButtonWebApp$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/WebAppInfo; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;)Lme/alllex/tbot/api/model/MenuButtonWebApp; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/MenuButtonWebApp;Ljava/lang/String;Lme/alllex/tbot/api/model/WebAppInfo;ILjava/lang/Object;)Lme/alllex/tbot/api/model/MenuButtonWebApp; + public fun equals (Ljava/lang/Object;)Z + public final fun getText ()Ljava/lang/String; + public final fun getWebApp ()Lme/alllex/tbot/api/model/WebAppInfo; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MenuButtonWebApp;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MenuButtonWebApp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MenuButtonWebApp$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MenuButtonWebApp; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MenuButtonWebApp;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MenuButtonWebApp$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Message { + public static final field Companion Lme/alllex/tbot/api/model/Message$Companion; + public synthetic fun (IIILme/alllex/tbot/api/model/MessageId;Lme/alllex/tbot/api/model/UnixTimestamp;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lme/alllex/tbot/api/model/Audio;Lme/alllex/tbot/api/model/Document;Ljava/util/List;Lme/alllex/tbot/api/model/Sticker;Lme/alllex/tbot/api/model/Story;Lme/alllex/tbot/api/model/Video;Lme/alllex/tbot/api/model/VideoNote;Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Contact;Lme/alllex/tbot/api/model/Dice;Lme/alllex/tbot/api/model/Game;Lme/alllex/tbot/api/model/Poll;Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/util/List;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/Invoice;Lme/alllex/tbot/api/model/SuccessfulPayment;Lme/alllex/tbot/api/model/UserShared;Lme/alllex/tbot/api/model/ChatShared;Ljava/lang/String;Lme/alllex/tbot/api/model/WriteAccessAllowed;Lme/alllex/tbot/api/model/PassportData;Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/ForumTopicCreated;Lme/alllex/tbot/api/model/ForumTopicEdited;Lme/alllex/tbot/api/model/ForumTopicClosed;Lme/alllex/tbot/api/model/ForumTopicReopened;Lme/alllex/tbot/api/model/GeneralForumTopicHidden;Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden;Lme/alllex/tbot/api/model/VideoChatScheduled;Lme/alllex/tbot/api/model/VideoChatStarted;Lme/alllex/tbot/api/model/VideoChatEnded;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lme/alllex/tbot/api/model/WebAppData;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lme/alllex/tbot/api/model/Audio;Lme/alllex/tbot/api/model/Document;Ljava/util/List;Lme/alllex/tbot/api/model/Sticker;Lme/alllex/tbot/api/model/Story;Lme/alllex/tbot/api/model/Video;Lme/alllex/tbot/api/model/VideoNote;Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Contact;Lme/alllex/tbot/api/model/Dice;Lme/alllex/tbot/api/model/Game;Lme/alllex/tbot/api/model/Poll;Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/util/List;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/Invoice;Lme/alllex/tbot/api/model/SuccessfulPayment;Lme/alllex/tbot/api/model/UserShared;Lme/alllex/tbot/api/model/ChatShared;Ljava/lang/String;Lme/alllex/tbot/api/model/WriteAccessAllowed;Lme/alllex/tbot/api/model/PassportData;Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/ForumTopicCreated;Lme/alllex/tbot/api/model/ForumTopicEdited;Lme/alllex/tbot/api/model/ForumTopicClosed;Lme/alllex/tbot/api/model/ForumTopicReopened;Lme/alllex/tbot/api/model/GeneralForumTopicHidden;Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden;Lme/alllex/tbot/api/model/VideoChatScheduled;Lme/alllex/tbot/api/model/VideoChatStarted;Lme/alllex/tbot/api/model/VideoChatEnded;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lme/alllex/tbot/api/model/WebAppData;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;IIILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lme/alllex/tbot/api/model/Audio;Lme/alllex/tbot/api/model/Document;Ljava/util/List;Lme/alllex/tbot/api/model/Sticker;Lme/alllex/tbot/api/model/Story;Lme/alllex/tbot/api/model/Video;Lme/alllex/tbot/api/model/VideoNote;Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Contact;Lme/alllex/tbot/api/model/Dice;Lme/alllex/tbot/api/model/Game;Lme/alllex/tbot/api/model/Poll;Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/util/List;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/Invoice;Lme/alllex/tbot/api/model/SuccessfulPayment;Lme/alllex/tbot/api/model/UserShared;Lme/alllex/tbot/api/model/ChatShared;Ljava/lang/String;Lme/alllex/tbot/api/model/WriteAccessAllowed;Lme/alllex/tbot/api/model/PassportData;Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/ForumTopicCreated;Lme/alllex/tbot/api/model/ForumTopicEdited;Lme/alllex/tbot/api/model/ForumTopicClosed;Lme/alllex/tbot/api/model/ForumTopicReopened;Lme/alllex/tbot/api/model/GeneralForumTopicHidden;Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden;Lme/alllex/tbot/api/model/VideoChatScheduled;Lme/alllex/tbot/api/model/VideoChatStarted;Lme/alllex/tbot/api/model/VideoChatEnded;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lme/alllex/tbot/api/model/WebAppData;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-2OzcLEE ()J + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/String; + public final fun component12-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Lme/alllex/tbot/api/model/Message; + public final fun component16 ()Lme/alllex/tbot/api/model/User; + public final fun component17-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component18 ()Ljava/lang/Boolean; + public final fun component19 ()Ljava/lang/String; + public final fun component2-GuijAhI ()J + public final fun component20 ()Ljava/lang/String; + public final fun component21 ()Ljava/lang/String; + public final fun component22 ()Ljava/util/List; + public final fun component23 ()Lme/alllex/tbot/api/model/Animation; + public final fun component24 ()Lme/alllex/tbot/api/model/Audio; + public final fun component25 ()Lme/alllex/tbot/api/model/Document; + public final fun component26 ()Ljava/util/List; + public final fun component27 ()Lme/alllex/tbot/api/model/Sticker; + public final fun component28 ()Lme/alllex/tbot/api/model/Story; + public final fun component29 ()Lme/alllex/tbot/api/model/Video; + public final fun component3 ()Lme/alllex/tbot/api/model/Chat; + public final fun component30 ()Lme/alllex/tbot/api/model/VideoNote; + public final fun component31 ()Lme/alllex/tbot/api/model/Voice; + public final fun component32 ()Ljava/lang/String; + public final fun component33 ()Ljava/util/List; + public final fun component34 ()Ljava/lang/Boolean; + public final fun component35 ()Lme/alllex/tbot/api/model/Contact; + public final fun component36 ()Lme/alllex/tbot/api/model/Dice; + public final fun component37 ()Lme/alllex/tbot/api/model/Game; + public final fun component38 ()Lme/alllex/tbot/api/model/Poll; + public final fun component39 ()Lme/alllex/tbot/api/model/Venue; + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component40 ()Lme/alllex/tbot/api/model/Location; + public final fun component41 ()Ljava/util/List; + public final fun component42 ()Lme/alllex/tbot/api/model/User; + public final fun component43 ()Ljava/lang/String; + public final fun component44 ()Ljava/util/List; + public final fun component45 ()Ljava/lang/Boolean; + public final fun component46 ()Ljava/lang/Boolean; + public final fun component47 ()Ljava/lang/Boolean; + public final fun component48 ()Ljava/lang/Boolean; + public final fun component49 ()Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged; + public final fun component5 ()Lme/alllex/tbot/api/model/User; + public final fun component50-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component51-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component52 ()Lme/alllex/tbot/api/model/Message; + public final fun component53 ()Lme/alllex/tbot/api/model/Invoice; + public final fun component54 ()Lme/alllex/tbot/api/model/SuccessfulPayment; + public final fun component55 ()Lme/alllex/tbot/api/model/UserShared; + public final fun component56 ()Lme/alllex/tbot/api/model/ChatShared; + public final fun component57 ()Ljava/lang/String; + public final fun component58 ()Lme/alllex/tbot/api/model/WriteAccessAllowed; + public final fun component59 ()Lme/alllex/tbot/api/model/PassportData; + public final fun component6 ()Lme/alllex/tbot/api/model/Chat; + public final fun component60 ()Lme/alllex/tbot/api/model/ProximityAlertTriggered; + public final fun component61 ()Lme/alllex/tbot/api/model/ForumTopicCreated; + public final fun component62 ()Lme/alllex/tbot/api/model/ForumTopicEdited; + public final fun component63 ()Lme/alllex/tbot/api/model/ForumTopicClosed; + public final fun component64 ()Lme/alllex/tbot/api/model/ForumTopicReopened; + public final fun component65 ()Lme/alllex/tbot/api/model/GeneralForumTopicHidden; + public final fun component66 ()Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden; + public final fun component67 ()Lme/alllex/tbot/api/model/VideoChatScheduled; + public final fun component68 ()Lme/alllex/tbot/api/model/VideoChatStarted; + public final fun component69 ()Lme/alllex/tbot/api/model/VideoChatEnded; + public final fun component7 ()Lme/alllex/tbot/api/model/User; + public final fun component70 ()Lme/alllex/tbot/api/model/VideoChatParticipantsInvited; + public final fun component71 ()Lme/alllex/tbot/api/model/WebAppData; + public final fun component72 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component8 ()Lme/alllex/tbot/api/model/Chat; + public final fun component9-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun copy-uqoBl_k (JJLme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lme/alllex/tbot/api/model/Audio;Lme/alllex/tbot/api/model/Document;Ljava/util/List;Lme/alllex/tbot/api/model/Sticker;Lme/alllex/tbot/api/model/Story;Lme/alllex/tbot/api/model/Video;Lme/alllex/tbot/api/model/VideoNote;Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Contact;Lme/alllex/tbot/api/model/Dice;Lme/alllex/tbot/api/model/Game;Lme/alllex/tbot/api/model/Poll;Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/util/List;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/Invoice;Lme/alllex/tbot/api/model/SuccessfulPayment;Lme/alllex/tbot/api/model/UserShared;Lme/alllex/tbot/api/model/ChatShared;Ljava/lang/String;Lme/alllex/tbot/api/model/WriteAccessAllowed;Lme/alllex/tbot/api/model/PassportData;Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/ForumTopicCreated;Lme/alllex/tbot/api/model/ForumTopicEdited;Lme/alllex/tbot/api/model/ForumTopicClosed;Lme/alllex/tbot/api/model/ForumTopicReopened;Lme/alllex/tbot/api/model/GeneralForumTopicHidden;Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden;Lme/alllex/tbot/api/model/VideoChatScheduled;Lme/alllex/tbot/api/model/VideoChatStarted;Lme/alllex/tbot/api/model/VideoChatEnded;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lme/alllex/tbot/api/model/WebAppData;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/Message; + public static synthetic fun copy-uqoBl_k$default (Lme/alllex/tbot/api/model/Message;JJLme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Animation;Lme/alllex/tbot/api/model/Audio;Lme/alllex/tbot/api/model/Document;Ljava/util/List;Lme/alllex/tbot/api/model/Sticker;Lme/alllex/tbot/api/model/Story;Lme/alllex/tbot/api/model/Video;Lme/alllex/tbot/api/model/VideoNote;Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/Contact;Lme/alllex/tbot/api/model/Dice;Lme/alllex/tbot/api/model/Game;Lme/alllex/tbot/api/model/Poll;Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/util/List;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Message;Lme/alllex/tbot/api/model/Invoice;Lme/alllex/tbot/api/model/SuccessfulPayment;Lme/alllex/tbot/api/model/UserShared;Lme/alllex/tbot/api/model/ChatShared;Ljava/lang/String;Lme/alllex/tbot/api/model/WriteAccessAllowed;Lme/alllex/tbot/api/model/PassportData;Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/ForumTopicCreated;Lme/alllex/tbot/api/model/ForumTopicEdited;Lme/alllex/tbot/api/model/ForumTopicClosed;Lme/alllex/tbot/api/model/ForumTopicReopened;Lme/alllex/tbot/api/model/GeneralForumTopicHidden;Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden;Lme/alllex/tbot/api/model/VideoChatScheduled;Lme/alllex/tbot/api/model/VideoChatStarted;Lme/alllex/tbot/api/model/VideoChatEnded;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lme/alllex/tbot/api/model/WebAppData;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;IIILjava/lang/Object;)Lme/alllex/tbot/api/model/Message; + public fun equals (Ljava/lang/Object;)Z + public final fun getAnimation ()Lme/alllex/tbot/api/model/Animation; + public final fun getAudio ()Lme/alllex/tbot/api/model/Audio; + public final fun getAuthorSignature ()Ljava/lang/String; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChannelChatCreated ()Ljava/lang/Boolean; + public final fun getChat ()Lme/alllex/tbot/api/model/Chat; + public final fun getChatShared ()Lme/alllex/tbot/api/model/ChatShared; + public final fun getConnectedWebsite ()Ljava/lang/String; + public final fun getContact ()Lme/alllex/tbot/api/model/Contact; + public final fun getDate-GuijAhI ()J + public final fun getDeleteChatPhoto ()Ljava/lang/Boolean; + public final fun getDice ()Lme/alllex/tbot/api/model/Dice; + public final fun getDocument ()Lme/alllex/tbot/api/model/Document; + public final fun getEditDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getEntities ()Ljava/util/List; + public final fun getForumTopicClosed ()Lme/alllex/tbot/api/model/ForumTopicClosed; + public final fun getForumTopicCreated ()Lme/alllex/tbot/api/model/ForumTopicCreated; + public final fun getForumTopicEdited ()Lme/alllex/tbot/api/model/ForumTopicEdited; + public final fun getForumTopicReopened ()Lme/alllex/tbot/api/model/ForumTopicReopened; + public final fun getForwardDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getForwardFrom ()Lme/alllex/tbot/api/model/User; + public final fun getForwardFromChat ()Lme/alllex/tbot/api/model/Chat; + public final fun getForwardFromMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getForwardSenderName ()Ljava/lang/String; + public final fun getForwardSignature ()Ljava/lang/String; + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getGame ()Lme/alllex/tbot/api/model/Game; + public final fun getGeneralForumTopicHidden ()Lme/alllex/tbot/api/model/GeneralForumTopicHidden; + public final fun getGeneralForumTopicUnhidden ()Lme/alllex/tbot/api/model/GeneralForumTopicUnhidden; + public final fun getGroupChatCreated ()Ljava/lang/Boolean; + public final fun getHasMediaSpoiler ()Ljava/lang/Boolean; + public final fun getHasProtectedContent ()Ljava/lang/Boolean; + public final fun getInvoice ()Lme/alllex/tbot/api/model/Invoice; + public final fun getLeftChatMember ()Lme/alllex/tbot/api/model/User; + public final fun getLocation ()Lme/alllex/tbot/api/model/Location; + public final fun getMediaGroupId ()Ljava/lang/String; + public final fun getMessageAutoDeleteTimerChanged ()Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged; + public final fun getMessageId-2OzcLEE ()J + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getMigrateFromChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getMigrateToChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getNewChatMembers ()Ljava/util/List; + public final fun getNewChatPhoto ()Ljava/util/List; + public final fun getNewChatTitle ()Ljava/lang/String; + public final fun getPassportData ()Lme/alllex/tbot/api/model/PassportData; + public final fun getPhoto ()Ljava/util/List; + public final fun getPinnedMessage ()Lme/alllex/tbot/api/model/Message; + public final fun getPoll ()Lme/alllex/tbot/api/model/Poll; + public final fun getProximityAlertTriggered ()Lme/alllex/tbot/api/model/ProximityAlertTriggered; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getReplyToMessage ()Lme/alllex/tbot/api/model/Message; + public final fun getSenderChat ()Lme/alllex/tbot/api/model/Chat; + public final fun getSticker ()Lme/alllex/tbot/api/model/Sticker; + public final fun getStory ()Lme/alllex/tbot/api/model/Story; + public final fun getSuccessfulPayment ()Lme/alllex/tbot/api/model/SuccessfulPayment; + public final fun getSupergroupChatCreated ()Ljava/lang/Boolean; + public final fun getText ()Ljava/lang/String; + public final fun getUserShared ()Lme/alllex/tbot/api/model/UserShared; + public final fun getVenue ()Lme/alllex/tbot/api/model/Venue; + public final fun getViaBot ()Lme/alllex/tbot/api/model/User; + public final fun getVideo ()Lme/alllex/tbot/api/model/Video; + public final fun getVideoChatEnded ()Lme/alllex/tbot/api/model/VideoChatEnded; + public final fun getVideoChatParticipantsInvited ()Lme/alllex/tbot/api/model/VideoChatParticipantsInvited; + public final fun getVideoChatScheduled ()Lme/alllex/tbot/api/model/VideoChatScheduled; + public final fun getVideoChatStarted ()Lme/alllex/tbot/api/model/VideoChatStarted; + public final fun getVideoNote ()Lme/alllex/tbot/api/model/VideoNote; + public final fun getVoice ()Lme/alllex/tbot/api/model/Voice; + public final fun getWebAppData ()Lme/alllex/tbot/api/model/WebAppData; + public final fun getWriteAccessAllowed ()Lme/alllex/tbot/api/model/WriteAccessAllowed; + public fun hashCode ()I + public final fun isAutomaticForward ()Ljava/lang/Boolean; + public final fun isTopicMessage ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Message;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Message$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Message$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Message; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Message;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Message$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageAutoDeleteTimerChanged { + public static final field Companion Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged$Companion; + public synthetic fun (IJLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (J)V + public final fun component1 ()J + public final fun copy (J)Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;JILjava/lang/Object;)Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged; + public fun equals (Ljava/lang/Object;)Z + public final fun getMessageAutoDeleteTime ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MessageAutoDeleteTimerChanged$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MessageAutoDeleteTimerChanged;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageAutoDeleteTimerChanged$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageEntity { + public static final field Companion Lme/alllex/tbot/api/model/MessageEntity$Companion; + public synthetic fun (ILjava/lang/String;JJLjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JJLjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JJLjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()J + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/User; + public final fun component6 ()Ljava/lang/String; + public final fun component7-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-s9w0OOI (Ljava/lang/String;JJLjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/MessageEntity; + public static synthetic fun copy-s9w0OOI$default (Lme/alllex/tbot/api/model/MessageEntity;Ljava/lang/String;JJLjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/MessageEntity; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getLanguage ()Ljava/lang/String; + public final fun getLength ()J + public final fun getOffset ()J + public final fun getType ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MessageEntity;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MessageEntity$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageEntity$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MessageEntity; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MessageEntity;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageEntity$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageId { + public static final field Companion Lme/alllex/tbot/api/model/MessageId$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/MessageId; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/MessageId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-DpANHq0 (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-o-cutnU (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageIdResult { + public static final field Companion Lme/alllex/tbot/api/model/MessageIdResult$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/MessageId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-2OzcLEE ()J + public final fun copy-u3Pummc (J)Lme/alllex/tbot/api/model/MessageIdResult; + public static synthetic fun copy-u3Pummc$default (Lme/alllex/tbot/api/model/MessageIdResult;JILjava/lang/Object;)Lme/alllex/tbot/api/model/MessageIdResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getMessageId-2OzcLEE ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MessageIdResult;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MessageIdResult$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageIdResult$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MessageIdResult; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MessageIdResult;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageIdResult$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageThreadId { + public static final field Companion Lme/alllex/tbot/api/model/MessageThreadId$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/MessageThreadId; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/MessageThreadId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageThreadId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-C-ioInI (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-8IYPPZM (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageThreadId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/MessageUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/Message;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/Message;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/Message; + public final fun copy (JLme/alllex/tbot/api/model/Message;)Lme/alllex/tbot/api/model/MessageUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/MessageUpdate;JLme/alllex/tbot/api/model/Message;ILjava/lang/Object;)Lme/alllex/tbot/api/model/MessageUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getMessage ()Lme/alllex/tbot/api/model/Message; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MessageUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MessageUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MessageUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MessageUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MessageUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MessageUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MethodsKt { + public static final fun addStickerToSet-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun answerCallbackQuery-XFVsORc (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerCallbackQuery-XFVsORc$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerInlineQuery-ndMGidM (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerInlineQuery-ndMGidM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerPreCheckoutQuery$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerShippingQuery-Ki8SIp4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerShippingQuery-Ki8SIp4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerWebAppQuery-rQ8bgZI (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun approveChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun banChatMember-N6VTo1U (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun banChatMember-N6VTo1U$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun banChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun close (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun closeForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun closeGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun copyMessage-8AP0yqU (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun copyMessage-8AP0yqU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createChatInviteLink-uiK7DU4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createChatInviteLink-uiK7DU4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createForumTopic-8sQ86mQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createForumTopic-8sQ86mQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createInvoiceLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createInvoiceLink$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createNewStickerSet-quJ4GYo (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createNewStickerSet-quJ4GYo$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun declineChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteChatPhoto-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteChatStickerSet-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteMessage-3ju5kss (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun deleteMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun deleteStickerFromSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun deleteWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editChatInviteLink-JVDDfaA (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editChatInviteLink-JVDDfaA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editForumTopic-fr45IeY (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editForumTopic-fr45IeY$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editGeneralForumTopic-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun editInlineMessageCaption-tNPJ-D4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageCaption-tNPJ-D4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageLiveLocation-nsM-4mU (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageLiveLocation-nsM-4mU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageMedia-tbJO12A (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageMedia-tbJO12A$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageReplyMarkup-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageReplyMarkup-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageText-zqdqPX0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageText-zqdqPX0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageCaption-2mlvnJQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageCaption-2mlvnJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageLiveLocation-bPT5Mn0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageLiveLocation-bPT5Mn0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageMedia-D9OBLUA (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-D9OBLUA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageReplyMarkup-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageReplyMarkup-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageText-gjA59Bw (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageText-gjA59Bw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun exportChatInviteLink-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun forwardMessage-0dEy1Yk (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun forwardMessage-0dEy1Yk$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatAdministrators-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMember-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMemberCount-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMenuButton-urVNoS0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getChatMenuButton-urVNoS0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getCustomEmojiStickers (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getFile-9QAF6ug (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getForumTopicIconStickers (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getGameHighScores-HoZPCJw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getGameHighScores-HoZPCJw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMe (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getUpdates-gJ_WtZg (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getUpdates-gJ_WtZg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getUserProfilePhotos-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getUserProfilePhotos-CnxUCFs$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getWebhookInfo (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun hideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun leaveChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun logOut (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun pinChatMessage-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun pinChatMessage-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun promoteChatMember-c53S_gM (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun promoteChatMember-c53S_gM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reopenForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun reopenGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun restrictChatMember-v_H8p6g (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun restrictChatMember-v_H8p6g$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun revokeChatInviteLink-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendAnimation-2SdqZJQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAnimation-2SdqZJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAudio-sC933T4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAudio-sC933T4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendChatAction-wQda_4Y (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendChatAction-wQda_4Y$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendContact-9-Qgxj0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendContact-9-Qgxj0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDice-HA8Q1iM (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDice-HA8Q1iM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDocument--U6LAw8 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDocument--U6LAw8$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendGame-PhSXmwU (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendGame-PhSXmwU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendInvoice-MVaCf9E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendInvoice-MVaCf9E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendLocation-c0kh050 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendLocation-c0kh050$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMediaGroup-0a1kOjs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMediaGroup-0a1kOjs$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMessage-YjNHXXg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMessage-YjNHXXg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-xaXkXZk (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-xaXkXZk$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPoll-00tYeFE (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPoll-00tYeFE$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendSticker-2qe-nS4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendSticker-2qe-nS4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVenue-HlQ8bAA (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVenue-HlQ8bAA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideo-Gjr2NUc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideo-Gjr2NUc$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideoNote-ZZRL_-s (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideoNote-ZZRL_-s$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVoice-6KSKMi4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVoice-6KSKMi4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatAdministratorCustomTitle-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatDescription-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatDescription-BeieCNI$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatMenuButton-ZX35EHo (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatMenuButton-ZX35EHo$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatPermissions-bATV1Ik (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatPermissions-bATV1Ik$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatPhoto-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatStickerSet-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatTitle-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setCustomEmojiStickerSetThumbnail-LLs5WwE (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setCustomEmojiStickerSetThumbnail-LLs5WwE$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setGameScore-bpGKr3g (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setGameScore-bpGKr3g$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setInlineGameScore-swAzXFg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setInlineGameScore-swAzXFg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setPassportDataErrors-8leRs9M (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerEmojiList (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerKeywords (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerKeywords$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerMaskPosition (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerMaskPosition$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerPositionInSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerSetThumbnail-CnATBrM (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerSetThumbnail-CnATBrM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerSetTitle (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopInlineMessageLiveLocation-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopInlineMessageLiveLocation-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopMessageLiveLocation-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopMessageLiveLocation-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopPoll-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopPoll-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun unbanChatMember-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun unbanChatMember-dYQIaGw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun unbanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unhideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllChatMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllForumTopicMessages-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllGeneralForumTopicMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinChatMessage-6XJKVkg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun unpinChatMessage-6XJKVkg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun uploadStickerFile-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/MyChatMemberUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/MyChatMemberUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ChatMemberUpdated;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/ChatMemberUpdated;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ChatMemberUpdated; + public final fun copy (JLme/alllex/tbot/api/model/ChatMemberUpdated;)Lme/alllex/tbot/api/model/MyChatMemberUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/MyChatMemberUpdate;JLme/alllex/tbot/api/model/ChatMemberUpdated;ILjava/lang/Object;)Lme/alllex/tbot/api/model/MyChatMemberUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getMyChatMember ()Lme/alllex/tbot/api/model/ChatMemberUpdated; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/MyChatMemberUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/MyChatMemberUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/MyChatMemberUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/MyChatMemberUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/MyChatMemberUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/MyChatMemberUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/OrderInfo { + public static final field Companion Lme/alllex/tbot/api/model/OrderInfo$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ShippingAddress; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;)Lme/alllex/tbot/api/model/OrderInfo; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/OrderInfo;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;ILjava/lang/Object;)Lme/alllex/tbot/api/model/OrderInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmail ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getShippingAddress ()Lme/alllex/tbot/api/model/ShippingAddress; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/OrderInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/OrderInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/OrderInfo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/OrderInfo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/OrderInfo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/OrderInfo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ParseMode : java/lang/Enum { + public static final field Companion Lme/alllex/tbot/api/model/ParseMode$Companion; + public static final field HTML Lme/alllex/tbot/api/model/ParseMode; + public static final field MARKDOWN Lme/alllex/tbot/api/model/ParseMode; + public static final field MARKDOWN_V2 Lme/alllex/tbot/api/model/ParseMode; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; + public static fun valueOf (Ljava/lang/String;)Lme/alllex/tbot/api/model/ParseMode; + public static fun values ()[Lme/alllex/tbot/api/model/ParseMode; +} + +public final class me/alllex/tbot/api/model/ParseMode$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportData { + public static final field Companion Lme/alllex/tbot/api/model/PassportData$Companion; + public synthetic fun (ILjava/util/List;Lme/alllex/tbot/api/model/EncryptedCredentials;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;Lme/alllex/tbot/api/model/EncryptedCredentials;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lme/alllex/tbot/api/model/EncryptedCredentials; + public final fun copy (Ljava/util/List;Lme/alllex/tbot/api/model/EncryptedCredentials;)Lme/alllex/tbot/api/model/PassportData; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportData;Ljava/util/List;Lme/alllex/tbot/api/model/EncryptedCredentials;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportData; + public fun equals (Ljava/lang/Object;)Z + public final fun getCredentials ()Lme/alllex/tbot/api/model/EncryptedCredentials; + public final fun getData ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportData;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportData$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportData; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportData;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementError$Companion; + public synthetic fun (ILkotlinx/serialization/internal/SerializationConstructorMarker;)V + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementError;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementError$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorDataField : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorDataField$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorDataField; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorDataField;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorDataField; + public fun equals (Ljava/lang/Object;)Z + public final fun getDataHash ()Ljava/lang/String; + public final fun getFieldName ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorDataField;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorDataField$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorDataField$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorDataField; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorDataField;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorDataField$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFile : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorFile$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorFile; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorFile;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorFile; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorFile;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFile$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorFile$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorFile; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorFile;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFile$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFiles : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorFiles$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorFiles; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorFiles;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorFiles; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHashes ()Ljava/util/List; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorFiles;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFiles$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorFiles$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorFiles; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorFiles;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFiles$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFrontSide : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorFrontSide$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorFrontSide; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorFrontSide;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorFrontSide; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorFrontSide;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFrontSide$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorFrontSide$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorFrontSide; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorFrontSide;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorFrontSide$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorReverseSide : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorReverseSide$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorReverseSide; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorReverseSide;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorReverseSide; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorReverseSide;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorReverseSide$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorReverseSide$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorReverseSide; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorReverseSide;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorReverseSide$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorSelfie : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorSelfie$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorSelfie; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorSelfie;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorSelfie; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorSelfie;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorSelfie$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorSelfie$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorSelfie; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorSelfie;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorSelfie$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFile : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFile$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorTranslationFile;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFile$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFiles : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileHashes ()Ljava/util/List; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFiles$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorTranslationFiles;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorTranslationFiles$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorUnspecified : me/alllex/tbot/api/model/PassportElementError { + public static final field Companion Lme/alllex/tbot/api/model/PassportElementErrorUnspecified$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/PassportElementErrorUnspecified; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PassportElementErrorUnspecified;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportElementErrorUnspecified; + public fun equals (Ljava/lang/Object;)Z + public final fun getElementHash ()Ljava/lang/String; + public final fun getMessage ()Ljava/lang/String; + public final fun getSource ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportElementErrorUnspecified;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportElementErrorUnspecified$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportElementErrorUnspecified$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportElementErrorUnspecified; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportElementErrorUnspecified;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportElementErrorUnspecified$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportFile { + public static final field Companion Lme/alllex/tbot/api/model/PassportFile$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;JLme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4-GuijAhI ()J + public final fun copy-nwGPe1Y (Ljava/lang/String;Ljava/lang/String;JJ)Lme/alllex/tbot/api/model/PassportFile; + public static synthetic fun copy-nwGPe1Y$default (Lme/alllex/tbot/api/model/PassportFile;Ljava/lang/String;Ljava/lang/String;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/PassportFile; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileDate-GuijAhI ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileSize ()J + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PassportFile;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PassportFile$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PassportFile$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PassportFile; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PassportFile;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PassportFile$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PhotoSize { + public static final field Companion Lme/alllex/tbot/api/model/PhotoSize$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;JJLjava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4 ()J + public final fun component5 ()Ljava/lang/Long; + public final fun copy-TWTvLmg (Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Long;)Lme/alllex/tbot/api/model/PhotoSize; + public static synthetic fun copy-TWTvLmg$default (Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;JJLjava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PhotoSize; + public fun equals (Ljava/lang/Object;)Z + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getHeight ()J + public final fun getWidth ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PhotoSize;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PhotoSize$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PhotoSize$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PhotoSize; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PhotoSize;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PhotoSize$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PinChatMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/PinChatMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-2OzcLEE ()J + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy-WDt_itU (JJLjava/lang/Boolean;)Lme/alllex/tbot/api/model/PinChatMessageRequest; + public static synthetic fun copy-WDt_itU$default (Lme/alllex/tbot/api/model/PinChatMessageRequest;JJLjava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PinChatMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getMessageId-2OzcLEE ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PinChatMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PinChatMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PinChatMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PinChatMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PinChatMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PinChatMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Poll { + public static final field Companion Lme/alllex/tbot/api/model/Poll$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;JZZLjava/lang/String;ZLjava/lang/Long;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;JZZLjava/lang/String;ZLjava/lang/Long;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;JZZLjava/lang/String;ZLjava/lang/Long;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/util/List; + public final fun component12-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component13-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()J + public final fun component5 ()Z + public final fun component6 ()Z + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Z + public final fun component9 ()Ljava/lang/Long; + public final fun copy-ag38tM4 (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;JZZLjava/lang/String;ZLjava/lang/Long;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;)Lme/alllex/tbot/api/model/Poll; + public static synthetic fun copy-ag38tM4$default (Lme/alllex/tbot/api/model/Poll;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;JZZLjava/lang/String;ZLjava/lang/Long;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Poll; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowsMultipleAnswers ()Z + public final fun getCloseDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getCorrectOptionId ()Ljava/lang/Long; + public final fun getExplanation ()Ljava/lang/String; + public final fun getExplanationEntities ()Ljava/util/List; + public final fun getId ()Ljava/lang/String; + public final fun getOpenPeriod-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getOptions ()Ljava/util/List; + public final fun getQuestion ()Ljava/lang/String; + public final fun getTotalVoterCount ()J + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public final fun isAnonymous ()Z + public final fun isClosed ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Poll;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Poll$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Poll$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Poll; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Poll;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Poll$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollAnswer { + public static final field Companion Lme/alllex/tbot/api/model/PollAnswer$Companion; + public synthetic fun (ILjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Lme/alllex/tbot/api/model/Chat; + public final fun component4 ()Lme/alllex/tbot/api/model/User; + public final fun copy (Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;)Lme/alllex/tbot/api/model/PollAnswer; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PollAnswer;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/User;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PollAnswer; + public fun equals (Ljava/lang/Object;)Z + public final fun getOptionIds ()Ljava/util/List; + public final fun getPollId ()Ljava/lang/String; + public final fun getUser ()Lme/alllex/tbot/api/model/User; + public final fun getVoterChat ()Lme/alllex/tbot/api/model/Chat; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PollAnswer;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PollAnswer$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PollAnswer$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PollAnswer; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PollAnswer;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollAnswer$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollAnswerUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/PollAnswerUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/PollAnswer;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/PollAnswer;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/PollAnswer; + public final fun copy (JLme/alllex/tbot/api/model/PollAnswer;)Lme/alllex/tbot/api/model/PollAnswerUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PollAnswerUpdate;JLme/alllex/tbot/api/model/PollAnswer;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PollAnswerUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getPollAnswer ()Lme/alllex/tbot/api/model/PollAnswer; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PollAnswerUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PollAnswerUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PollAnswerUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PollAnswerUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PollAnswerUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollAnswerUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollOption { + public static final field Companion Lme/alllex/tbot/api/model/PollOption$Companion; + public synthetic fun (ILjava/lang/String;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lme/alllex/tbot/api/model/PollOption; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PollOption;Ljava/lang/String;JILjava/lang/Object;)Lme/alllex/tbot/api/model/PollOption; + public fun equals (Ljava/lang/Object;)Z + public final fun getText ()Ljava/lang/String; + public final fun getVoterCount ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PollOption;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PollOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PollOption$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PollOption; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PollOption;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollOption$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/PollUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/Poll;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/Poll;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/Poll; + public final fun copy (JLme/alllex/tbot/api/model/Poll;)Lme/alllex/tbot/api/model/PollUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PollUpdate;JLme/alllex/tbot/api/model/Poll;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PollUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getPoll ()Lme/alllex/tbot/api/model/Poll; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PollUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PollUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PollUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PollUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PollUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PollUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PreCheckoutQuery { + public static final field Companion Lme/alllex/tbot/api/model/PreCheckoutQuery$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()J + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lme/alllex/tbot/api/model/OrderInfo; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;)Lme/alllex/tbot/api/model/PreCheckoutQuery; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PreCheckoutQuery;Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PreCheckoutQuery; + public fun equals (Ljava/lang/Object;)Z + public final fun getCurrency ()Ljava/lang/String; + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getId ()Ljava/lang/String; + public final fun getInvoicePayload ()Ljava/lang/String; + public final fun getOrderInfo ()Lme/alllex/tbot/api/model/OrderInfo; + public final fun getShippingOptionId ()Ljava/lang/String; + public final fun getTotalAmount ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PreCheckoutQuery;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PreCheckoutQuery$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PreCheckoutQuery$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PreCheckoutQuery; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PreCheckoutQuery;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PreCheckoutQuery$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PreCheckoutQueryUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/PreCheckoutQuery;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/PreCheckoutQuery;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/PreCheckoutQuery; + public final fun copy (JLme/alllex/tbot/api/model/PreCheckoutQuery;)Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate;JLme/alllex/tbot/api/model/PreCheckoutQuery;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getPreCheckoutQuery ()Lme/alllex/tbot/api/model/PreCheckoutQuery; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PreCheckoutQueryUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PreCheckoutQueryUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PreCheckoutQueryUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PromoteChatMemberRequest { + public static final field Companion Lme/alllex/tbot/api/model/PromoteChatMemberRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Ljava/lang/Boolean; + public final fun component2-BHTGnbw ()J + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-Bx3TrVI (JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/PromoteChatMemberRequest; + public static synthetic fun copy-Bx3TrVI$default (Lme/alllex/tbot/api/model/PromoteChatMemberRequest;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/PromoteChatMemberRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCanChangeInfo ()Ljava/lang/Boolean; + public final fun getCanDeleteMessages ()Ljava/lang/Boolean; + public final fun getCanDeleteStories ()Ljava/lang/Boolean; + public final fun getCanEditMessages ()Ljava/lang/Boolean; + public final fun getCanEditStories ()Ljava/lang/Boolean; + public final fun getCanInviteUsers ()Ljava/lang/Boolean; + public final fun getCanManageChat ()Ljava/lang/Boolean; + public final fun getCanManageTopics ()Ljava/lang/Boolean; + public final fun getCanManageVideoChats ()Ljava/lang/Boolean; + public final fun getCanPinMessages ()Ljava/lang/Boolean; + public final fun getCanPostMessages ()Ljava/lang/Boolean; + public final fun getCanPostStories ()Ljava/lang/Boolean; + public final fun getCanPromoteMembers ()Ljava/lang/Boolean; + public final fun getCanRestrictMembers ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public final fun isAnonymous ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/PromoteChatMemberRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/PromoteChatMemberRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/PromoteChatMemberRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/PromoteChatMemberRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/PromoteChatMemberRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/PromoteChatMemberRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ProximityAlertTriggered { + public static final field Companion Lme/alllex/tbot/api/model/ProximityAlertTriggered$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/User;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/User;J)V + public final fun component1 ()Lme/alllex/tbot/api/model/User; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()J + public final fun copy (Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/User;J)Lme/alllex/tbot/api/model/ProximityAlertTriggered; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lme/alllex/tbot/api/model/User;Lme/alllex/tbot/api/model/User;JILjava/lang/Object;)Lme/alllex/tbot/api/model/ProximityAlertTriggered; + public fun equals (Ljava/lang/Object;)Z + public final fun getDistance ()J + public final fun getTraveler ()Lme/alllex/tbot/api/model/User; + public final fun getWatcher ()Lme/alllex/tbot/api/model/User; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ProximityAlertTriggered;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ProximityAlertTriggered$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ProximityAlertTriggered$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ProximityAlertTriggered; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ProximityAlertTriggered;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ProximityAlertTriggered$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReopenForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/ReopenForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-kZOvVs8 ()J + public final fun copy-n9freCk (JJ)Lme/alllex/tbot/api/model/ReopenForumTopicRequest; + public static synthetic fun copy-n9freCk$default (Lme/alllex/tbot/api/model/ReopenForumTopicRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/ReopenForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageThreadId-kZOvVs8 ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ReopenForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ReopenForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ReopenForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ReopenForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ReopenForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReopenForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReopenGeneralForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ReopenGeneralForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReopenGeneralForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardMarkup : me/alllex/tbot/api/model/ReplyMarkup { + public static final field Companion Lme/alllex/tbot/api/model/ReplyKeyboardMarkup$Companion; + public synthetic fun (ILjava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/ReplyKeyboardMarkup; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ReplyKeyboardMarkup;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ReplyKeyboardMarkup; + public fun equals (Ljava/lang/Object;)Z + public final fun getInputFieldPlaceholder ()Ljava/lang/String; + public final fun getKeyboard ()Ljava/util/List; + public final fun getOneTimeKeyboard ()Ljava/lang/Boolean; + public final fun getResizeKeyboard ()Ljava/lang/Boolean; + public final fun getSelective ()Ljava/lang/Boolean; + public fun hashCode ()I + public final fun isPersistent ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ReplyKeyboardMarkup;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardMarkup$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ReplyKeyboardMarkup$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ReplyKeyboardMarkup; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ReplyKeyboardMarkup;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardMarkup$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardRemove : me/alllex/tbot/api/model/ReplyMarkup { + public static final field Companion Lme/alllex/tbot/api/model/ReplyKeyboardRemove$Companion; + public synthetic fun (IZLjava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (ZLjava/lang/Boolean;)V + public synthetic fun (ZLjava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component2 ()Ljava/lang/Boolean; + public final fun copy (ZLjava/lang/Boolean;)Lme/alllex/tbot/api/model/ReplyKeyboardRemove; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ReplyKeyboardRemove;ZLjava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ReplyKeyboardRemove; + public fun equals (Ljava/lang/Object;)Z + public final fun getRemoveKeyboard ()Z + public final fun getSelective ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ReplyKeyboardRemove;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardRemove$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ReplyKeyboardRemove$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ReplyKeyboardRemove; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ReplyKeyboardRemove;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReplyKeyboardRemove$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/ReplyMarkup { + public static final field Companion Lme/alllex/tbot/api/model/ReplyMarkup$Companion; +} + +public final class me/alllex/tbot/api/model/ReplyMarkup$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ReplyMarkupSerializer : kotlinx/serialization/json/JsonContentPolymorphicSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ReplyMarkupSerializer; +} + +public final class me/alllex/tbot/api/model/ResponseParameters { + public static final field Companion Lme/alllex/tbot/api/model/ResponseParameters$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Seconds;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Seconds;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Seconds;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component2-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun copy-vgOKr34 (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Seconds;)Lme/alllex/tbot/api/model/ResponseParameters; + public static synthetic fun copy-vgOKr34$default (Lme/alllex/tbot/api/model/ResponseParameters;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/Seconds;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ResponseParameters; + public fun equals (Ljava/lang/Object;)Z + public final fun getMigrateToChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getRetryAfter-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ResponseParameters;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ResponseParameters$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ResponseParameters$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ResponseParameters; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ResponseParameters;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ResponseParameters$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/RestrictChatMemberRequest { + public static final field Companion Lme/alllex/tbot/api/model/RestrictChatMemberRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun component3 ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun copy-dy0jQ2o (JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;)Lme/alllex/tbot/api/model/RestrictChatMemberRequest; + public static synthetic fun copy-dy0jQ2o$default (Lme/alllex/tbot/api/model/RestrictChatMemberRequest;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;ILjava/lang/Object;)Lme/alllex/tbot/api/model/RestrictChatMemberRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getPermissions ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun getUntilDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getUseIndependentChatPermissions ()Ljava/lang/Boolean; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/RestrictChatMemberRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/RestrictChatMemberRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/RestrictChatMemberRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/RestrictChatMemberRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/RestrictChatMemberRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/RestrictChatMemberRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/RevokeChatInviteLinkRequest { + public static final field Companion Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getInviteLink ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/RevokeChatInviteLinkRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/RevokeChatInviteLinkRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Seconds { + public static final field Companion Lme/alllex/tbot/api/model/Seconds$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/Seconds; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/Seconds$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Seconds$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-H6uTwsY (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-ZkRr8fU (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Seconds$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendAnimationRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendAnimationRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun copy-D7kBjkE (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendAnimationRequest; + public static synthetic fun copy-D7kBjkE$default (Lme/alllex/tbot/api/model/SendAnimationRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendAnimationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getAnimation ()Ljava/lang/String; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getHeight ()Ljava/lang/Long; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getWidth ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendAnimationRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendAnimationRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendAnimationRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendAnimationRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendAnimationRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendAnimationRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendAudioRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendAudioRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy-mcNg6Ao (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendAudioRequest; + public static synthetic fun copy-mcNg6Ao$default (Lme/alllex/tbot/api/model/SendAudioRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendAudioRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getAudio ()Ljava/lang/String; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPerformer ()Ljava/lang/String; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendAudioRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendAudioRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendAudioRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendAudioRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendAudioRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendAudioRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendChatActionRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendChatActionRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun copy-s_SbNrE (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;)Lme/alllex/tbot/api/model/SendChatActionRequest; + public static synthetic fun copy-s_SbNrE$default (Lme/alllex/tbot/api/model/SendChatActionRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendChatActionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAction ()Ljava/lang/String; + public final fun getChatId-dK1lXec ()J + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendChatActionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendChatActionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendChatActionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendChatActionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendChatActionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendChatActionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendContactRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendContactRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun copy-_TH6UQU (JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendContactRequest; + public static synthetic fun copy-_TH6UQU$default (Lme/alllex/tbot/api/model/SendContactRequest;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendContactRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getFirstName ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getPhoneNumber ()Ljava/lang/String; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getVcard ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendContactRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendContactRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendContactRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendContactRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendContactRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendContactRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendDiceRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendDiceRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun copy-y4Hr0NM (JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendDiceRequest; + public static synthetic fun copy-y4Hr0NM$default (Lme/alllex/tbot/api/model/SendDiceRequest;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendDiceRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getEmoji ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendDiceRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendDiceRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendDiceRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendDiceRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendDiceRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendDiceRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendDocumentRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendDocumentRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component7 ()Ljava/util/List; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-3lYiXTg (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendDocumentRequest; + public static synthetic fun copy-3lYiXTg$default (Lme/alllex/tbot/api/model/SendDocumentRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendDocumentRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableContentTypeDetection ()Ljava/lang/Boolean; + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDocument ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getThumbnail ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendDocumentRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendDocumentRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendDocumentRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendDocumentRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendDocumentRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendDocumentRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendGameRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendGameRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-MlpmlKQ (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/SendGameRequest; + public static synthetic fun copy-MlpmlKQ$default (Lme/alllex/tbot/api/model/SendGameRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendGameRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getGameShortName ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendGameRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendGameRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendGameRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendGameRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendGameRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendGameRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendInvoiceRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendInvoiceRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Ljava/lang/String; + public final fun component14 ()Ljava/lang/Long; + public final fun component15 ()Ljava/lang/Long; + public final fun component16 ()Ljava/lang/Long; + public final fun component17 ()Ljava/lang/Boolean; + public final fun component18 ()Ljava/lang/Boolean; + public final fun component19 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component20 ()Ljava/lang/Boolean; + public final fun component21 ()Ljava/lang/Boolean; + public final fun component22 ()Ljava/lang/Boolean; + public final fun component23 ()Ljava/lang/Boolean; + public final fun component24 ()Ljava/lang/Boolean; + public final fun component25 ()Ljava/lang/Boolean; + public final fun component26-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component27 ()Ljava/lang/Boolean; + public final fun component28 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/util/List; + public final fun component8-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-JMeRtIo (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/SendInvoiceRequest; + public static synthetic fun copy-JMeRtIo$default (Lme/alllex/tbot/api/model/SendInvoiceRequest;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendInvoiceRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getCurrency ()Ljava/lang/String; + public final fun getDescription ()Ljava/lang/String; + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getMaxTipAmount ()Ljava/lang/Long; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getNeedEmail ()Ljava/lang/Boolean; + public final fun getNeedName ()Ljava/lang/Boolean; + public final fun getNeedPhoneNumber ()Ljava/lang/Boolean; + public final fun getNeedShippingAddress ()Ljava/lang/Boolean; + public final fun getPayload ()Ljava/lang/String; + public final fun getPhotoHeight ()Ljava/lang/Long; + public final fun getPhotoSize ()Ljava/lang/Long; + public final fun getPhotoUrl ()Ljava/lang/String; + public final fun getPhotoWidth ()Ljava/lang/Long; + public final fun getPrices ()Ljava/util/List; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getProviderData ()Ljava/lang/String; + public final fun getProviderToken ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getSendEmailToProvider ()Ljava/lang/Boolean; + public final fun getSendPhoneNumberToProvider ()Ljava/lang/Boolean; + public final fun getStartParameter ()Ljava/lang/String; + public final fun getSuggestedTipAmounts ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public final fun isFlexible ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendInvoiceRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendInvoiceRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendInvoiceRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendInvoiceRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendInvoiceRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendInvoiceRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendLocationRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendLocationRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;DDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()D + public final fun component3 ()D + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component5 ()Ljava/lang/Double; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/Long; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-6iGGdfo (JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendLocationRequest; + public static synthetic fun copy-6iGGdfo$default (Lme/alllex/tbot/api/model/SendLocationRequest;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendLocationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getHeading ()Ljava/lang/Long; + public final fun getHorizontalAccuracy ()Ljava/lang/Double; + public final fun getLatitude ()D + public final fun getLivePeriod ()Ljava/lang/Long; + public final fun getLongitude ()D + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getProximityAlertRadius ()Ljava/lang/Long; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendLocationRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendLocationRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendLocationRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendLocationRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendLocationRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendLocationRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendMediaGroupRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendMediaGroupRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/util/List; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component7 ()Ljava/lang/Boolean; + public final fun copy-DekjA0Y (JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/SendMediaGroupRequest; + public static synthetic fun copy-DekjA0Y$default (Lme/alllex/tbot/api/model/SendMediaGroupRequest;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendMediaGroupRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getMedia ()Ljava/util/List; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendMediaGroupRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendMediaGroupRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendMediaGroupRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendMediaGroupRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendMediaGroupRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendMediaGroupRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun copy-TB8pyVU (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendMessageRequest; + public static synthetic fun copy-TB8pyVU$default (Lme/alllex/tbot/api/model/SendMessageRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDisableWebPagePreview ()Ljava/lang/Boolean; + public final fun getEntities ()Ljava/util/List; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getText ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendPhotoRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendPhotoRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-ElzjSCQ (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendPhotoRequest; + public static synthetic fun copy-ElzjSCQ$default (Lme/alllex/tbot/api/model/SendPhotoRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendPhotoRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getPhoto ()Ljava/lang/String; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendPhotoRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendPhotoRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendPhotoRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendPhotoRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendPhotoRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendPhotoRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendPollRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendPollRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/util/List; + public final fun component12-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component13-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Boolean; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component18 ()Ljava/lang/Boolean; + public final fun component19 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun component4-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/lang/String; + public final fun copy-S6Xflzo (JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendPollRequest; + public static synthetic fun copy-S6Xflzo$default (Lme/alllex/tbot/api/model/SendPollRequest;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendPollRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getAllowsMultipleAnswers ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getCloseDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getCorrectOptionId ()Ljava/lang/Long; + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getExplanation ()Ljava/lang/String; + public final fun getExplanationEntities ()Ljava/util/List; + public final fun getExplanationParseMode ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getOpenPeriod-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getOptions ()Ljava/util/List; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getQuestion ()Ljava/lang/String; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public final fun isAnonymous ()Ljava/lang/Boolean; + public final fun isClosed ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendPollRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendPollRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendPollRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendPollRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendPollRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendPollRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendStickerRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendStickerRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/Boolean; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun copy-96-K_5s (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendStickerRequest; + public static synthetic fun copy-96-K_5s$default (Lme/alllex/tbot/api/model/SendStickerRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendStickerRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getEmoji ()Ljava/lang/String; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendStickerRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendStickerRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendStickerRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendStickerRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendStickerRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendStickerRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVenueRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendVenueRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;DDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()D + public final fun component3 ()D + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/String; + public final fun copy-FdUzEyI (JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendVenueRequest; + public static synthetic fun copy-FdUzEyI$default (Lme/alllex/tbot/api/model/SendVenueRequest;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendVenueRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getFoursquareId ()Ljava/lang/String; + public final fun getFoursquareType ()Ljava/lang/String; + public final fun getGooglePlaceId ()Ljava/lang/String; + public final fun getGooglePlaceType ()Ljava/lang/String; + public final fun getLatitude ()D + public final fun getLongitude ()D + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendVenueRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendVenueRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendVenueRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendVenueRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendVenueRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVenueRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVideoNoteRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendVideoNoteRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun copy-NzkNbg8 (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendVideoNoteRequest; + public static synthetic fun copy-NzkNbg8$default (Lme/alllex/tbot/api/model/SendVideoNoteRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendVideoNoteRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getLength ()Ljava/lang/Long; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getVideoNote ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendVideoNoteRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendVideoNoteRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendVideoNoteRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendVideoNoteRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendVideoNoteRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVideoNoteRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVideoRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendVideoRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10 ()Ljava/util/List; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/Boolean; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component5 ()Ljava/lang/Long; + public final fun component6 ()Ljava/lang/Long; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun copy-9cGW-6g (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendVideoRequest; + public static synthetic fun copy-9cGW-6g$default (Lme/alllex/tbot/api/model/SendVideoRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendVideoRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getHasSpoiler ()Ljava/lang/Boolean; + public final fun getHeight ()Ljava/lang/Long; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getSupportsStreaming ()Ljava/lang/Boolean; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getVideo ()Ljava/lang/String; + public final fun getWidth ()Ljava/lang/Long; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendVideoRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendVideoRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendVideoRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendVideoRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendVideoRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVideoRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVoiceRequest { + public static final field Companion Lme/alllex/tbot/api/model/SendVoiceRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component10-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun component2 ()Ljava/lang/String; + public final fun component3-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lme/alllex/tbot/api/model/ParseMode; + public final fun component6 ()Ljava/util/List; + public final fun component7-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-P7-Df1o (JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;)Lme/alllex/tbot/api/model/SendVoiceRequest; + public static synthetic fun copy-P7-Df1o$default (Lme/alllex/tbot/api/model/SendVoiceRequest;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SendVoiceRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowSendingWithoutReply ()Ljava/lang/Boolean; + public final fun getCaption ()Ljava/lang/String; + public final fun getCaptionEntities ()Ljava/util/List; + public final fun getChatId-dK1lXec ()J + public final fun getDisableNotification ()Ljava/lang/Boolean; + public final fun getDuration-5ulOH2g ()Lme/alllex/tbot/api/model/Seconds; + public final fun getMessageThreadId-dizcC0o ()Lme/alllex/tbot/api/model/MessageThreadId; + public final fun getParseMode ()Lme/alllex/tbot/api/model/ParseMode; + public final fun getProtectContent ()Ljava/lang/Boolean; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/ReplyMarkup; + public final fun getReplyToMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getVoice ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SendVoiceRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SendVoiceRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SendVoiceRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SendVoiceRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SendVoiceRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SendVoiceRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SentWebAppMessage { + public static final field Companion Lme/alllex/tbot/api/model/SentWebAppMessage$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-C2ZHHQs ()Ljava/lang/String; + public final fun copy-sWO3hiA (Ljava/lang/String;)Lme/alllex/tbot/api/model/SentWebAppMessage; + public static synthetic fun copy-sWO3hiA$default (Lme/alllex/tbot/api/model/SentWebAppMessage;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SentWebAppMessage; + public fun equals (Ljava/lang/Object;)Z + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SentWebAppMessage;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SentWebAppMessage$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SentWebAppMessage$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SentWebAppMessage; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SentWebAppMessage;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SentWebAppMessage$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun component3 ()Ljava/lang/String; + public final fun copy-aj5ZEbI (JJLjava/lang/String;)Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest; + public static synthetic fun copy-aj5ZEbI$default (Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest;JJLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getCustomTitle ()Ljava/lang/String; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatDescriptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatDescriptionRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/SetChatDescriptionRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/SetChatDescriptionRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatDescriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getDescription ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatDescriptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatDescriptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatDescriptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatDescriptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatDescriptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatDescriptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatMenuButtonRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatMenuButtonRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component2 ()Lme/alllex/tbot/api/model/MenuButton; + public final fun copy-Wb8RX0c (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;)Lme/alllex/tbot/api/model/SetChatMenuButtonRequest; + public static synthetic fun copy-Wb8RX0c$default (Lme/alllex/tbot/api/model/SetChatMenuButtonRequest;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatMenuButtonRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getMenuButton ()Lme/alllex/tbot/api/model/MenuButton; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatMenuButtonRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatMenuButtonRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatMenuButtonRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatMenuButtonRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatMenuButtonRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatMenuButtonRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatPermissionsRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatPermissionsRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy-swsHdGg (JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/SetChatPermissionsRequest; + public static synthetic fun copy-swsHdGg$default (Lme/alllex/tbot/api/model/SetChatPermissionsRequest;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatPermissionsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getPermissions ()Lme/alllex/tbot/api/model/ChatPermissions; + public final fun getUseIndependentChatPermissions ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatPermissionsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatPermissionsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatPermissionsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatPermissionsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatPermissionsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatPermissionsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatPhotoRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatPhotoRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/SetChatPhotoRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/SetChatPhotoRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatPhotoRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getPhoto ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatPhotoRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatPhotoRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatPhotoRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatPhotoRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatPhotoRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatPhotoRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatStickerSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatStickerSetRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/SetChatStickerSetRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/SetChatStickerSetRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatStickerSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getStickerSetName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatStickerSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatStickerSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatStickerSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatStickerSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatStickerSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatStickerSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatTitleRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetChatTitleRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2 ()Ljava/lang/String; + public final fun copy-yTd99bA (JLjava/lang/String;)Lme/alllex/tbot/api/model/SetChatTitleRequest; + public static synthetic fun copy-yTd99bA$default (Lme/alllex/tbot/api/model/SetChatTitleRequest;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetChatTitleRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetChatTitleRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetChatTitleRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetChatTitleRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetChatTitleRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetChatTitleRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetChatTitleRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2-b1Wa8Lk ()Ljava/lang/String; + public final fun copy-CEiDTUs (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest; + public static synthetic fun copy-CEiDTUs$default (Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetGameScoreRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetGameScoreRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;JLjava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()J + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component6-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component7-C2ZHHQs ()Ljava/lang/String; + public final fun copy-18UuS_k (JJLjava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetGameScoreRequest; + public static synthetic fun copy-18UuS_k$default (Lme/alllex/tbot/api/model/SetGameScoreRequest;JJLjava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetGameScoreRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getDisableEditMessage ()Ljava/lang/Boolean; + public final fun getForce ()Ljava/lang/Boolean; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getScore ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetGameScoreRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetGameScoreRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetGameScoreRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetGameScoreRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetGameScoreRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetGameScoreRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyCommandsRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetMyCommandsRequest$Companion; + public synthetic fun (ILjava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)V + public synthetic fun (Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Lme/alllex/tbot/api/model/BotCommandScope; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetMyCommandsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetMyCommandsRequest;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetMyCommandsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCommands ()Ljava/util/List; + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getScope ()Lme/alllex/tbot/api/model/BotCommandScope; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetMyCommandsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetMyCommandsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetMyCommandsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetMyCommandsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetMyCommandsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyCommandsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest$Companion; + public fun ()V + public synthetic fun (ILme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public final fun component2 ()Ljava/lang/Boolean; + public final fun copy (Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getForChannels ()Ljava/lang/Boolean; + public final fun getRights ()Lme/alllex/tbot/api/model/ChatAdministratorRights; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyDescriptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetMyDescriptionRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetMyDescriptionRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetMyDescriptionRequest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetMyDescriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getDescription ()Ljava/lang/String; + public final fun getLanguageCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetMyDescriptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetMyDescriptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetMyDescriptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetMyDescriptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetMyDescriptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyDescriptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyNameRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetMyNameRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetMyNameRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetMyNameRequest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetMyNameRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetMyNameRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetMyNameRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetMyNameRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetMyNameRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetMyNameRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyNameRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyShortDescriptionRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getShortDescription ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetMyShortDescriptionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetMyShortDescriptionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetPassportDataErrorsRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()Ljava/util/List; + public final fun copy-C8AvSwk (JLjava/util/List;)Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest; + public static synthetic fun copy-C8AvSwk$default (Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest;JLjava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getErrors ()Ljava/util/List; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetPassportDataErrorsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetPassportDataErrorsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerEmojiListRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerEmojiListRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/util/List;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Lme/alllex/tbot/api/model/SetStickerEmojiListRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetStickerEmojiListRequest;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerEmojiListRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getEmojiList ()Ljava/util/List; + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerEmojiListRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerEmojiListRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerEmojiListRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerEmojiListRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerEmojiListRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerEmojiListRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerKeywordsRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerKeywordsRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Lme/alllex/tbot/api/model/SetStickerKeywordsRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetStickerKeywordsRequest;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerKeywordsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getKeywords ()Ljava/util/List; + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerKeywordsRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerKeywordsRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerKeywordsRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerKeywordsRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerKeywordsRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerKeywordsRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerMaskPositionRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun copy (Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;)Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getMaskPosition ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerMaskPositionRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerMaskPositionRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerPositionInSetRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest$Companion; + public synthetic fun (ILjava/lang/String;JLkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;J)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun copy (Ljava/lang/String;J)Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest;Ljava/lang/String;JILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getPosition ()J + public final fun getSticker ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerPositionInSetRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerPositionInSetRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerSetThumbnailRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/UserId;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2-BHTGnbw ()J + public final fun component3 ()Ljava/lang/String; + public final fun copy-hTyTl8o (Ljava/lang/String;JLjava/lang/String;)Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest; + public static synthetic fun copy-hTyTl8o$default (Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest;Ljava/lang/String;JLjava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getThumbnail ()Ljava/lang/String; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerSetThumbnailRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerSetThumbnailRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerSetTitleRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetStickerSetTitleRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetStickerSetTitleRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetStickerSetTitleRequest;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetStickerSetTitleRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetStickerSetTitleRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetStickerSetTitleRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetStickerSetTitleRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetStickerSetTitleRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetStickerSetTitleRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetStickerSetTitleRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetWebhookRequest { + public static final field Companion Lme/alllex/tbot/api/model/SetWebhookRequest$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Long; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Boolean; + public final fun component7 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;)Lme/alllex/tbot/api/model/SetWebhookRequest; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SetWebhookRequest;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SetWebhookRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowedUpdates ()Ljava/util/List; + public final fun getCertificate ()Ljava/lang/String; + public final fun getDropPendingUpdates ()Ljava/lang/Boolean; + public final fun getIpAddress ()Ljava/lang/String; + public final fun getMaxConnections ()Ljava/lang/Long; + public final fun getSecretToken ()Ljava/lang/String; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SetWebhookRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SetWebhookRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SetWebhookRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SetWebhookRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SetWebhookRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SetWebhookRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingAddress { + public static final field Companion Lme/alllex/tbot/api/model/ShippingAddress$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/ShippingAddress; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ShippingAddress;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ShippingAddress; + public fun equals (Ljava/lang/Object;)Z + public final fun getCity ()Ljava/lang/String; + public final fun getCountryCode ()Ljava/lang/String; + public final fun getPostCode ()Ljava/lang/String; + public final fun getState ()Ljava/lang/String; + public final fun getStreetLine1 ()Ljava/lang/String; + public final fun getStreetLine2 ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ShippingAddress;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ShippingAddress$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ShippingAddress$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ShippingAddress; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ShippingAddress;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingAddress$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingOption { + public static final field Companion Lme/alllex/tbot/api/model/ShippingOption$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lme/alllex/tbot/api/model/ShippingOption; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ShippingOption;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ShippingOption; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getPrices ()Ljava/util/List; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ShippingOption;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ShippingOption$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ShippingOption$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ShippingOption; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ShippingOption;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingOption$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQuery { + public static final field Companion Lme/alllex/tbot/api/model/ShippingQuery$Companion; + public synthetic fun (ILjava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-r6k-wCk ()Ljava/lang/String; + public final fun component2 ()Lme/alllex/tbot/api/model/User; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/ShippingAddress; + public final fun copy-9Wv9hE4 (Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;)Lme/alllex/tbot/api/model/ShippingQuery; + public static synthetic fun copy-9Wv9hE4$default (Lme/alllex/tbot/api/model/ShippingQuery;Ljava/lang/String;Lme/alllex/tbot/api/model/User;Ljava/lang/String;Lme/alllex/tbot/api/model/ShippingAddress;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ShippingQuery; + public fun equals (Ljava/lang/Object;)Z + public final fun getFrom ()Lme/alllex/tbot/api/model/User; + public final fun getId-r6k-wCk ()Ljava/lang/String; + public final fun getInvoicePayload ()Ljava/lang/String; + public final fun getShippingAddress ()Lme/alllex/tbot/api/model/ShippingAddress; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ShippingQuery;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ShippingQuery$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ShippingQuery$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ShippingQuery; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ShippingQuery;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQuery$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQueryId { + public static final field Companion Lme/alllex/tbot/api/model/ShippingQueryId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/ShippingQueryId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/ShippingQueryId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ShippingQueryId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-FjPwSFo (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-vb6qh7I (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQueryId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQueryUpdate : me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/ShippingQueryUpdate$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/ShippingQuery;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLme/alllex/tbot/api/model/ShippingQuery;)V + public final fun component1 ()J + public final fun component2 ()Lme/alllex/tbot/api/model/ShippingQuery; + public final fun copy (JLme/alllex/tbot/api/model/ShippingQuery;)Lme/alllex/tbot/api/model/ShippingQueryUpdate; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/ShippingQueryUpdate;JLme/alllex/tbot/api/model/ShippingQuery;ILjava/lang/Object;)Lme/alllex/tbot/api/model/ShippingQueryUpdate; + public fun equals (Ljava/lang/Object;)Z + public final fun getShippingQuery ()Lme/alllex/tbot/api/model/ShippingQuery; + public fun getUpdateId ()J + public fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/ShippingQueryUpdate;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/ShippingQueryUpdate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/ShippingQueryUpdate$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/ShippingQueryUpdate; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/ShippingQueryUpdate;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/ShippingQueryUpdate$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Sticker { + public static final field Companion Lme/alllex/tbot/api/model/Sticker$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/File;Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/File;Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/File;Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Lme/alllex/tbot/api/model/File; + public final fun component12 ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun component13-b1Wa8Lk ()Ljava/lang/String; + public final fun component14 ()Ljava/lang/Boolean; + public final fun component15 ()Ljava/lang/Long; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()J + public final fun component5 ()J + public final fun component6 ()Z + public final fun component7 ()Z + public final fun component8 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun component9 ()Ljava/lang/String; + public final fun copy-J1wLPks (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/File;Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Sticker; + public static synthetic fun copy-J1wLPks$default (Lme/alllex/tbot/api/model/Sticker;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JJZZLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/File;Lme/alllex/tbot/api/model/MaskPosition;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Sticker; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustomEmojiId-b1Wa8Lk ()Ljava/lang/String; + public final fun getEmoji ()Ljava/lang/String; + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getHeight ()J + public final fun getMaskPosition ()Lme/alllex/tbot/api/model/MaskPosition; + public final fun getNeedsRepainting ()Ljava/lang/Boolean; + public final fun getPremiumAnimation ()Lme/alllex/tbot/api/model/File; + public final fun getSetName ()Ljava/lang/String; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun getType ()Ljava/lang/String; + public final fun getWidth ()J + public fun hashCode ()I + public final fun isAnimated ()Z + public final fun isVideo ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Sticker;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Sticker$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Sticker$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Sticker; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Sticker;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Sticker$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StickerSet { + public static final field Companion Lme/alllex/tbot/api/model/StickerSet$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Lme/alllex/tbot/api/model/PhotoSize;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Lme/alllex/tbot/api/model/PhotoSize;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Lme/alllex/tbot/api/model/PhotoSize;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Ljava/util/List; + public final fun component7 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Lme/alllex/tbot/api/model/PhotoSize;)Lme/alllex/tbot/api/model/StickerSet; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/StickerSet;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZLjava/util/List;Lme/alllex/tbot/api/model/PhotoSize;ILjava/lang/Object;)Lme/alllex/tbot/api/model/StickerSet; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getStickerType ()Ljava/lang/String; + public final fun getStickers ()Ljava/util/List; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public final fun isAnimated ()Z + public final fun isVideo ()Z + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/StickerSet;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/StickerSet$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/StickerSet$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/StickerSet; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/StickerSet;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StickerSet$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StopMessageLiveLocationRequest { + public static final field Companion Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun component2-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun component3-C2ZHHQs ()Ljava/lang/String; + public final fun component4 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-VA0VJKo (Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest; + public static synthetic fun copy-VA0VJKo$default (Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-0Gpa5D8 ()Lme/alllex/tbot/api/model/ChatId; + public final fun getInlineMessageId-C2ZHHQs ()Ljava/lang/String; + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/StopMessageLiveLocationRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StopMessageLiveLocationRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StopPollRequest { + public static final field Companion Lme/alllex/tbot/api/model/StopPollRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-2OzcLEE ()J + public final fun component3 ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public final fun copy-WDt_itU (JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;)Lme/alllex/tbot/api/model/StopPollRequest; + public static synthetic fun copy-WDt_itU$default (Lme/alllex/tbot/api/model/StopPollRequest;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;ILjava/lang/Object;)Lme/alllex/tbot/api/model/StopPollRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageId-2OzcLEE ()J + public final fun getReplyMarkup ()Lme/alllex/tbot/api/model/InlineKeyboardMarkup; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/StopPollRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/StopPollRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/StopPollRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/StopPollRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/StopPollRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/StopPollRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Story { + public static final field INSTANCE Lme/alllex/tbot/api/model/Story; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/SuccessfulPayment { + public static final field Companion Lme/alllex/tbot/api/model/SuccessfulPayment$Companion; + public synthetic fun (ILjava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;)V + public synthetic fun (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()J + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lme/alllex/tbot/api/model/OrderInfo; + public final fun copy (Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;)Lme/alllex/tbot/api/model/SuccessfulPayment; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SuccessfulPayment;Ljava/lang/String;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/OrderInfo;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SuccessfulPayment; + public fun equals (Ljava/lang/Object;)Z + public final fun getCurrency ()Ljava/lang/String; + public final fun getInvoicePayload ()Ljava/lang/String; + public final fun getOrderInfo ()Lme/alllex/tbot/api/model/OrderInfo; + public final fun getProviderPaymentChargeId ()Ljava/lang/String; + public final fun getShippingOptionId ()Ljava/lang/String; + public final fun getTelegramPaymentChargeId ()Ljava/lang/String; + public final fun getTotalAmount ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SuccessfulPayment;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SuccessfulPayment$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SuccessfulPayment$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SuccessfulPayment; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SuccessfulPayment;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SuccessfulPayment$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SwitchInlineQueryChosenChat { + public static final field Companion Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat$Companion; + public fun ()V + public synthetic fun (ILjava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/Boolean; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowBotChats ()Ljava/lang/Boolean; + public final fun getAllowChannelChats ()Ljava/lang/Boolean; + public final fun getAllowGroupChats ()Ljava/lang/Boolean; + public final fun getAllowUserChats ()Ljava/lang/Boolean; + public final fun getQuery ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/SwitchInlineQueryChosenChat$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/SwitchInlineQueryChosenChat;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/SwitchInlineQueryChosenChat$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/TryMethodsKt { + public static final fun tryAddStickerToSet-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerCallbackQuery-XFVsORc (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerCallbackQuery-XFVsORc$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerInlineQuery-ndMGidM (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerInlineQuery-ndMGidM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerPreCheckoutQuery$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerShippingQuery-Ki8SIp4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerShippingQuery-Ki8SIp4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerWebAppQuery-rQ8bgZI (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryApproveChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryBanChatMember-N6VTo1U (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryBanChatMember-N6VTo1U$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryBanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCopyMessage-8AP0yqU (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCopyMessage-8AP0yqU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateChatInviteLink-uiK7DU4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateChatInviteLink-uiK7DU4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateForumTopic-8sQ86mQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateForumTopic-8sQ86mQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateInvoiceLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateInvoiceLink$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateNewStickerSet-quJ4GYo (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateNewStickerSet-quJ4GYo$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryDeclineChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatPhoto-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatStickerSet-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMessage-3ju5kss (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryDeleteMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryDeleteStickerFromSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryDeleteWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditChatInviteLink-JVDDfaA (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditChatInviteLink-JVDDfaA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditForumTopic-fr45IeY (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditForumTopic-fr45IeY$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditGeneralForumTopic-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageCaption-tNPJ-D4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageCaption-tNPJ-D4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageLiveLocation-nsM-4mU (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageLiveLocation-nsM-4mU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageMedia-tbJO12A (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageMedia-tbJO12A$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageReplyMarkup-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageReplyMarkup-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageText-zqdqPX0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageText-zqdqPX0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageCaption-2mlvnJQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageCaption-2mlvnJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageLiveLocation-bPT5Mn0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageLiveLocation-bPT5Mn0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageMedia-D9OBLUA (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageMedia-D9OBLUA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageReplyMarkup-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageReplyMarkup-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageText-gjA59Bw (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageText-gjA59Bw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryExportChatInviteLink-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryForwardMessage-0dEy1Yk (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryForwardMessage-0dEy1Yk$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatAdministrators-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMember-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMemberCount-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMenuButton-urVNoS0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetChatMenuButton-urVNoS0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetCustomEmojiStickers (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetFile-9QAF6ug (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetGameHighScores-HoZPCJw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetGameHighScores-HoZPCJw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetUpdates-gJ_WtZg (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetUpdates-gJ_WtZg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetUserProfilePhotos-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetUserProfilePhotos-CnxUCFs$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryHideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryLeaveChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryPinChatMessage-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryPinChatMessage-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryPromoteChatMember-c53S_gM (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryPromoteChatMember-c53S_gM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryReopenForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryReopenGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryRestrictChatMember-v_H8p6g (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryRestrictChatMember-v_H8p6g$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryRevokeChatInviteLink-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendAnimation-2SdqZJQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendAnimation-2SdqZJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendAudio-sC933T4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendAudio-sC933T4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendChatAction-wQda_4Y (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendChatAction-wQda_4Y$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendContact-9-Qgxj0 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendContact-9-Qgxj0$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendDice-HA8Q1iM (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendDice-HA8Q1iM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendDocument--U6LAw8 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendDocument--U6LAw8$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendGame-PhSXmwU (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendGame-PhSXmwU$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendInvoice-MVaCf9E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendInvoice-MVaCf9E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendLocation-c0kh050 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendLocation-c0kh050$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendMediaGroup-0a1kOjs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendMediaGroup-0a1kOjs$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendMessage-YjNHXXg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendMessage-YjNHXXg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendPhoto-xaXkXZk (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendPhoto-xaXkXZk$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendPoll-00tYeFE (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendPoll-00tYeFE$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendSticker-2qe-nS4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendSticker-2qe-nS4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVenue-HlQ8bAA (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVenue-HlQ8bAA$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVideo-Gjr2NUc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVideo-Gjr2NUc$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVideoNote-ZZRL_-s (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVideoNote-ZZRL_-s$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVoice-6KSKMi4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVoice-6KSKMi4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatAdministratorCustomTitle-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatDescription-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatDescription-BeieCNI$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatMenuButton-ZX35EHo (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatMenuButton-ZX35EHo$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatPermissions-bATV1Ik (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatPermissions-bATV1Ik$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatPhoto-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatStickerSet-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatTitle-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetCustomEmojiStickerSetThumbnail-LLs5WwE (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetCustomEmojiStickerSetThumbnail-LLs5WwE$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetGameScore-bpGKr3g (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetGameScore-bpGKr3g$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetInlineGameScore-swAzXFg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetInlineGameScore-swAzXFg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetPassportDataErrors-8leRs9M (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerEmojiList (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerKeywords (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerKeywords$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerMaskPosition (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerMaskPosition$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerPositionInSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerSetThumbnail-CnATBrM (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerSetThumbnail-CnATBrM$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerSetTitle (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopInlineMessageLiveLocation-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopInlineMessageLiveLocation-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopMessageLiveLocation-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopMessageLiveLocation-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopPoll-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopPoll-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUnbanChatMember-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryUnbanChatMember-dYQIaGw$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUnbanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnhideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllChatMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllForumTopicMessages-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiClient;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllGeneralForumTopicMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinChatMessage-6XJKVkg (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryUnpinChatMessage-6XJKVkg$default (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUploadStickerFile-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiClient;JLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/TryRequestMethodsKt { + public static final fun tryAddStickerToSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AddStickerToSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerCallbackQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AnswerCallbackQueryRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerInlineQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AnswerInlineQueryRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AnswerPreCheckoutQueryRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerShippingQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AnswerShippingQueryRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerWebAppQuery (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/AnswerWebAppQueryRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryApproveChatJoinRequest (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ApproveChatJoinRequestRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryBanChatMember (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BanChatMemberRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryBanChatSenderChat (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/BanChatSenderChatRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryClose (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CloseForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseGeneralForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CloseGeneralForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCopyMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CopyMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCreateChatInviteLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CreateChatInviteLinkRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCreateForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CreateForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCreateInvoiceLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CreateInvoiceLinkRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCreateNewStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/CreateNewStickerSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeclineChatJoinRequest (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeclineChatJoinRequestRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatPhoto (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteChatPhotoRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteChatStickerSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteMyCommandsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteStickerFromSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteStickerFromSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteStickerSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/DeleteWebhookRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditChatInviteLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditChatInviteLinkRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditGeneralForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditGeneralForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageCaption (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageCaptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageLiveLocation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageMedia (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageMediaRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageReplyMarkup (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageText (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageTextRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditMessageCaption (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageCaptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditMessageLiveLocation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageLiveLocationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditMessageMedia (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageMediaRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditMessageReplyMarkup (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageReplyMarkupRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditMessageText (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/EditMessageTextRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryExportChatInviteLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ExportChatInviteLinkRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryForwardMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ForwardMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChat (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetChatRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatAdministrators (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetChatAdministratorsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMember (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetChatMemberRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMemberCount (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetChatMemberCountRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMenuButton (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetChatMenuButtonRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetCustomEmojiStickers (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetCustomEmojiStickersRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetFile (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetFileRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetForumTopicIconStickers (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetGameHighScores (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetGameHighScoresRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMe (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetMyCommandsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetMyDefaultAdministratorRightsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetMyDescriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetMyNameRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetMyShortDescriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetStickerSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetUpdates (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetUpdatesRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetUserProfilePhotos (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/GetUserProfilePhotosRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetWebhookInfo (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryHideGeneralForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/HideGeneralForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryLeaveChat (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/LeaveChatRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryLogOut (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryPinChatMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/PinChatMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryPromoteChatMember (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/PromoteChatMemberRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryReopenForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ReopenForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryReopenGeneralForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/ReopenGeneralForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryRestrictChatMember (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/RestrictChatMemberRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryRevokeChatInviteLink (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/RevokeChatInviteLinkRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendAnimation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendAnimationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendAudio (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendAudioRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendChatAction (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendChatActionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendContact (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendContactRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendDice (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendDiceRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendDocument (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendDocumentRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendGame (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendGameRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendInvoice (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendInvoiceRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendLocation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendLocationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendMediaGroup (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendMediaGroupRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendPhoto (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendPhotoRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendPoll (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendPollRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendSticker (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendStickerRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendVenue (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendVenueRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendVideo (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendVideoRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendVideoNote (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendVideoNoteRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendVoice (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SendVoiceRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatAdministratorCustomTitle (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatAdministratorCustomTitleRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatDescriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatMenuButton (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatMenuButtonRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatPermissions (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatPermissionsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatPhoto (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatPhotoRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatStickerSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatTitle (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetChatTitleRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetCustomEmojiStickerSetThumbnail (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetCustomEmojiStickerSetThumbnailRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetGameScore (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetGameScoreRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetInlineGameScore (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetGameScoreRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetMyCommandsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetMyDefaultAdministratorRightsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetMyDescriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetMyName (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetMyNameRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetMyShortDescriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetPassportDataErrors (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetPassportDataErrorsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerEmojiList (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerEmojiListRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerKeywords (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerKeywordsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerMaskPosition (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerMaskPositionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerPositionInSet (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerPositionInSetRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerSetThumbnail (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerSetThumbnailRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerSetTitle (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetStickerSetTitleRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetWebhook (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/SetWebhookRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryStopInlineMessageLiveLocation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryStopMessageLiveLocation (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/StopMessageLiveLocationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryStopPoll (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/StopPollRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnbanChatMember (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnbanChatMemberRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnbanChatSenderChat (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnhideGeneralForumTopic (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllChatMessages (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllForumTopicMessages (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllGeneralForumTopicMessages (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinChatMessage (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UnpinChatMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUploadStickerFile (Lme/alllex/tbot/api/client/TelegramBotApiClient;Lme/alllex/tbot/api/model/UploadStickerFileRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/TryWithContextMethodsKt { + public static final fun tryAddStickerToSet-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryAnswerCallbackQuery-XFVsORc (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerCallbackQuery-XFVsORc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerInlineQuery-ndMGidM (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerInlineQuery-ndMGidM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerPreCheckoutQuery$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerShippingQuery-Ki8SIp4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryAnswerShippingQuery-Ki8SIp4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryAnswerWebAppQuery-rQ8bgZI (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryApproveChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryBanChatMember-N6VTo1U (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryBanChatMember-N6VTo1U$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryBanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryClose (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCloseGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryCopyMessage-8AP0yqU (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCopyMessage-8AP0yqU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateChatInviteLink-uiK7DU4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateChatInviteLink-uiK7DU4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateForumTopic-8sQ86mQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateForumTopic-8sQ86mQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateInvoiceLink (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateInvoiceLink$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryCreateNewStickerSet-quJ4GYo (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryCreateNewStickerSet-quJ4GYo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryDeclineChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatPhoto-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteChatStickerSet-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMessage-3ju5kss (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryDeleteMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryDeleteStickerFromSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryDeleteWebhook (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryDeleteWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditChatInviteLink-JVDDfaA (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditChatInviteLink-JVDDfaA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditForumTopic-fr45IeY (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditForumTopic-fr45IeY$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditGeneralForumTopic-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryEditInlineMessageCaption-tNPJ-D4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageCaption-tNPJ-D4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageLiveLocation-nsM-4mU (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageLiveLocation-nsM-4mU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageMedia-tbJO12A (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageMedia-tbJO12A$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageReplyMarkup-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageReplyMarkup-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditInlineMessageText-zqdqPX0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditInlineMessageText-zqdqPX0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageCaption-2mlvnJQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageCaption-2mlvnJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageLiveLocation-bPT5Mn0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageLiveLocation-bPT5Mn0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageMedia-D9OBLUA (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageMedia-D9OBLUA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageReplyMarkup-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageReplyMarkup-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryEditMessageText-gjA59Bw (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryEditMessageText-gjA59Bw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryExportChatInviteLink-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryForwardMessage-0dEy1Yk (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryForwardMessage-0dEy1Yk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatAdministrators-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMember-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMemberCount-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetChatMenuButton-urVNoS0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetChatMenuButton-urVNoS0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetCustomEmojiStickers (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetFile-9QAF6ug (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetForumTopicIconStickers (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetGameHighScores-HoZPCJw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetGameHighScores-HoZPCJw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMe (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyName (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryGetUpdates-gJ_WtZg (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetUpdates-gJ_WtZg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetUserProfilePhotos-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryGetUserProfilePhotos-CnxUCFs$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryGetWebhookInfo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryHideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryLeaveChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryLogOut (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryPinChatMessage-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryPinChatMessage-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryPromoteChatMember-c53S_gM (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryPromoteChatMember-c53S_gM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryReopenForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryReopenGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryRestrictChatMember-v_H8p6g (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryRestrictChatMember-v_H8p6g$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryRevokeChatInviteLink-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySendAnimation-2SdqZJQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendAnimation-2SdqZJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendAudio-sC933T4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendAudio-sC933T4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendChatAction-wQda_4Y (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendChatAction-wQda_4Y$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendContact-9-Qgxj0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendContact-9-Qgxj0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendDice-HA8Q1iM (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendDice-HA8Q1iM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendDocument--U6LAw8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendDocument--U6LAw8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendGame-PhSXmwU (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendGame-PhSXmwU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendInvoice-MVaCf9E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendInvoice-MVaCf9E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendLocation-c0kh050 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendLocation-c0kh050$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendMediaGroup-0a1kOjs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendMediaGroup-0a1kOjs$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendMessage-YjNHXXg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendMessage-YjNHXXg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendPhoto-xaXkXZk (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendPhoto-xaXkXZk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendPoll-00tYeFE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendPoll-00tYeFE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendSticker-2qe-nS4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendSticker-2qe-nS4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVenue-HlQ8bAA (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVenue-HlQ8bAA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVideo-Gjr2NUc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVideo-Gjr2NUc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVideoNote-ZZRL_-s (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVideoNote-ZZRL_-s$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySendVoice-6KSKMi4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySendVoice-6KSKMi4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatAdministratorCustomTitle-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatDescription-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatDescription-BeieCNI$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatMenuButton-ZX35EHo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatMenuButton-ZX35EHo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatPermissions-bATV1Ik (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetChatPermissions-bATV1Ik$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetChatPhoto-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatStickerSet-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetChatTitle-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetCustomEmojiStickerSetThumbnail-LLs5WwE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetCustomEmojiStickerSetThumbnail-LLs5WwE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetGameScore-bpGKr3g (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetGameScore-bpGKr3g$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetInlineGameScore-swAzXFg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetInlineGameScore-swAzXFg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyName (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetPassportDataErrors-8leRs9M (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerEmojiList (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerKeywords (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerKeywords$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerMaskPosition (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerMaskPosition$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerPositionInSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetStickerSetThumbnail-CnATBrM (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetStickerSetThumbnail-CnATBrM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun trySetStickerSetTitle (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun trySetWebhook (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun trySetWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopInlineMessageLiveLocation-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopInlineMessageLiveLocation-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopMessageLiveLocation-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopMessageLiveLocation-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryStopPoll-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryStopPoll-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUnbanChatMember-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryUnbanChatMember-dYQIaGw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUnbanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnhideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllChatMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllForumTopicMessages-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinAllGeneralForumTopicMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun tryUnpinChatMessage-6XJKVkg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun tryUnpinChatMessage-6XJKVkg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun tryUploadStickerFile-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/UnbanChatMemberRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnbanChatMemberRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/UserId;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLjava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-BHTGnbw ()J + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy-aj5ZEbI (JJLjava/lang/Boolean;)Lme/alllex/tbot/api/model/UnbanChatMemberRequest; + public static synthetic fun copy-aj5ZEbI$default (Lme/alllex/tbot/api/model/UnbanChatMemberRequest;JJLjava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/UnbanChatMemberRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getOnlyIfBanned ()Ljava/lang/Boolean; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnbanChatMemberRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnbanChatMemberRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnbanChatMemberRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnbanChatMemberRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnbanChatMemberRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnbanChatMemberRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnbanChatSenderChatRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-dK1lXec ()J + public final fun copy-88fzk7c (JJ)Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest; + public static synthetic fun copy-88fzk7c$default (Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getSenderChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnbanChatSenderChatRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnbanChatSenderChatRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnbanChatSenderChatRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnhideGeneralForumTopicRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnhideGeneralForumTopicRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnhideGeneralForumTopicRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnhideGeneralForumTopicRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnixTimestamp { + public static final field Companion Lme/alllex/tbot/api/model/UnixTimestamp$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/UnixTimestamp; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/UnixTimestamp$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnixTimestamp$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-EaEuCPg (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-47RJg1k (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnixTimestamp$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllChatMessagesRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnpinAllChatMessagesRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnpinAllChatMessagesRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllChatMessagesRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-kZOvVs8 ()J + public final fun copy-n9freCk (JJ)Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest; + public static synthetic fun copy-n9freCk$default (Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageThreadId-kZOvVs8 ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllForumTopicMessagesRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun copy-97icWJs (J)Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest; + public static synthetic fun copy-97icWJs$default (Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest;JILjava/lang/Object;)Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinAllGeneralForumTopicMessagesRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinChatMessageRequest { + public static final field Companion Lme/alllex/tbot/api/model/UnpinChatMessageRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/MessageId;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLme/alllex/tbot/api/model/MessageId;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-dK1lXec ()J + public final fun component2-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public final fun copy-h_Zx1PU (JLme/alllex/tbot/api/model/MessageId;)Lme/alllex/tbot/api/model/UnpinChatMessageRequest; + public static synthetic fun copy-h_Zx1PU$default (Lme/alllex/tbot/api/model/UnpinChatMessageRequest;JLme/alllex/tbot/api/model/MessageId;ILjava/lang/Object;)Lme/alllex/tbot/api/model/UnpinChatMessageRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getChatId-dK1lXec ()J + public final fun getMessageId-XcDfd4U ()Lme/alllex/tbot/api/model/MessageId; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UnpinChatMessageRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UnpinChatMessageRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UnpinChatMessageRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UnpinChatMessageRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UnpinChatMessageRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UnpinChatMessageRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public abstract class me/alllex/tbot/api/model/Update { + public static final field Companion Lme/alllex/tbot/api/model/Update$Companion; + public abstract fun getUpdateId ()J + public abstract fun getUpdateType ()Lme/alllex/tbot/api/model/UpdateType; +} + +public final class me/alllex/tbot/api/model/Update$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UpdateSerializer : kotlinx/serialization/json/JsonContentPolymorphicSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UpdateSerializer; +} + +public final class me/alllex/tbot/api/model/UpdateType : java/lang/Enum { + public static final field CALLBACK_QUERY Lme/alllex/tbot/api/model/UpdateType; + public static final field CHANNEL_POST Lme/alllex/tbot/api/model/UpdateType; + public static final field CHAT_JOIN_REQUEST Lme/alllex/tbot/api/model/UpdateType; + public static final field CHAT_MEMBER Lme/alllex/tbot/api/model/UpdateType; + public static final field CHOSEN_INLINE_RESULT Lme/alllex/tbot/api/model/UpdateType; + public static final field EDITED_CHANNEL_POST Lme/alllex/tbot/api/model/UpdateType; + public static final field EDITED_MESSAGE Lme/alllex/tbot/api/model/UpdateType; + public static final field INLINE_QUERY Lme/alllex/tbot/api/model/UpdateType; + public static final field MESSAGE Lme/alllex/tbot/api/model/UpdateType; + public static final field MY_CHAT_MEMBER Lme/alllex/tbot/api/model/UpdateType; + public static final field POLL Lme/alllex/tbot/api/model/UpdateType; + public static final field POLL_ANSWER Lme/alllex/tbot/api/model/UpdateType; + public static final field PRE_CHECKOUT_QUERY Lme/alllex/tbot/api/model/UpdateType; + public static final field SHIPPING_QUERY Lme/alllex/tbot/api/model/UpdateType; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public static fun valueOf (Ljava/lang/String;)Lme/alllex/tbot/api/model/UpdateType; + public static fun values ()[Lme/alllex/tbot/api/model/UpdateType; +} + +public final class me/alllex/tbot/api/model/UploadStickerFileRequest { + public static final field Companion Lme/alllex/tbot/api/model/UploadStickerFileRequest$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLjava/lang/String;Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy-H_qFevU (JLjava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/UploadStickerFileRequest; + public static synthetic fun copy-H_qFevU$default (Lme/alllex/tbot/api/model/UploadStickerFileRequest;JLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/UploadStickerFileRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getSticker ()Ljava/lang/String; + public final fun getStickerFormat ()Ljava/lang/String; + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UploadStickerFileRequest;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UploadStickerFileRequest$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UploadStickerFileRequest$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UploadStickerFileRequest; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UploadStickerFileRequest;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UploadStickerFileRequest$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/User { + public static final field Companion Lme/alllex/tbot/api/model/User$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UserId;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-BHTGnbw ()J + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component2 ()Z + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/Boolean; + public final fun component8 ()Ljava/lang/Boolean; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy-3Y8FV00 (JZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/User; + public static synthetic fun copy-3Y8FV00$default (Lme/alllex/tbot/api/model/User;JZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/User; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddedToAttachmentMenu ()Ljava/lang/Boolean; + public final fun getCanJoinGroups ()Ljava/lang/Boolean; + public final fun getCanReadAllGroupMessages ()Ljava/lang/Boolean; + public final fun getFirstName ()Ljava/lang/String; + public final fun getId-BHTGnbw ()J + public final fun getLanguageCode ()Ljava/lang/String; + public final fun getLastName ()Ljava/lang/String; + public final fun getSupportsInlineQueries ()Ljava/lang/Boolean; + public final fun getUsername ()Ljava/lang/String; + public fun hashCode ()I + public final fun isBot ()Z + public final fun isPremium ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/User;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/User$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/User$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/User; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/User;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/User$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserId { + public static final field Companion Lme/alllex/tbot/api/model/UserId$Companion; + public static final synthetic fun box-impl (J)Lme/alllex/tbot/api/model/UserId; + public static fun constructor-impl (J)J + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (JLjava/lang/Object;)Z + public static final fun equals-impl0 (JJ)Z + public final fun getValue ()J + public fun hashCode ()I + public static fun hashCode-impl (J)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (J)Ljava/lang/String; + public final synthetic fun unbox-impl ()J +} + +public final class me/alllex/tbot/api/model/UserId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UserId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-OeKmec8 (Lkotlinx/serialization/encoding/Decoder;)J + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-8PPNXsE (Lkotlinx/serialization/encoding/Encoder;J)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserProfilePhotos { + public static final field Companion Lme/alllex/tbot/api/model/UserProfilePhotos$Companion; + public synthetic fun (IJLjava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (JLjava/util/List;)V + public final fun component1 ()J + public final fun component2 ()Ljava/util/List; + public final fun copy (JLjava/util/List;)Lme/alllex/tbot/api/model/UserProfilePhotos; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/UserProfilePhotos;JLjava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/UserProfilePhotos; + public fun equals (Ljava/lang/Object;)Z + public final fun getPhotos ()Ljava/util/List; + public final fun getTotalCount ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UserProfilePhotos;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UserProfilePhotos$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UserProfilePhotos$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UserProfilePhotos; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UserProfilePhotos;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserProfilePhotos$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserShared { + public static final field Companion Lme/alllex/tbot/api/model/UserShared$Companion; + public synthetic fun (IJLme/alllex/tbot/api/model/UserId;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JJLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()J + public final fun component2-BHTGnbw ()J + public final fun copy-8PPNXsE (JJ)Lme/alllex/tbot/api/model/UserShared; + public static synthetic fun copy-8PPNXsE$default (Lme/alllex/tbot/api/model/UserShared;JJILjava/lang/Object;)Lme/alllex/tbot/api/model/UserShared; + public fun equals (Ljava/lang/Object;)Z + public final fun getRequestId ()J + public final fun getUserId-BHTGnbw ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/UserShared;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/UserShared$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/UserShared$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/UserShared; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/UserShared;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/UserShared$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Venue { + public static final field Companion Lme/alllex/tbot/api/model/Venue$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lme/alllex/tbot/api/model/Location; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun copy (Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/Venue; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/Venue;Lme/alllex/tbot/api/model/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Venue; + public fun equals (Ljava/lang/Object;)Z + public final fun getAddress ()Ljava/lang/String; + public final fun getFoursquareId ()Ljava/lang/String; + public final fun getFoursquareType ()Ljava/lang/String; + public final fun getGooglePlaceId ()Ljava/lang/String; + public final fun getGooglePlaceType ()Ljava/lang/String; + public final fun getLocation ()Lme/alllex/tbot/api/model/Location; + public final fun getTitle ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Venue;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Venue$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Venue$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Venue; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Venue;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Venue$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Video { + public static final field Companion Lme/alllex/tbot/api/model/Video$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4 ()J + public final fun component5-RHIZTpk ()J + public final fun component6 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/lang/Long; + public final fun copy-kGAecg8 (Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Video; + public static synthetic fun copy-kGAecg8$default (Lme/alllex/tbot/api/model/Video;Ljava/lang/String;Ljava/lang/String;JJJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Video; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileName ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getHeight ()J + public final fun getMimeType ()Ljava/lang/String; + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun getWidth ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Video;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Video$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Video$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Video; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Video;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Video$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatEnded { + public static final field Companion Lme/alllex/tbot/api/model/VideoChatEnded$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/Seconds;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-RHIZTpk ()J + public final fun copy-Qcya22w (J)Lme/alllex/tbot/api/model/VideoChatEnded; + public static synthetic fun copy-Qcya22w$default (Lme/alllex/tbot/api/model/VideoChatEnded;JILjava/lang/Object;)Lme/alllex/tbot/api/model/VideoChatEnded; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/VideoChatEnded;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/VideoChatEnded$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/VideoChatEnded$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/VideoChatEnded; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/VideoChatEnded;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatEnded$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatParticipantsInvited { + public static final field Companion Lme/alllex/tbot/api/model/VideoChatParticipantsInvited$Companion; + public synthetic fun (ILjava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lme/alllex/tbot/api/model/VideoChatParticipantsInvited; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/VideoChatParticipantsInvited; + public fun equals (Ljava/lang/Object;)Z + public final fun getUsers ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/VideoChatParticipantsInvited$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/VideoChatParticipantsInvited$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/VideoChatParticipantsInvited; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/VideoChatParticipantsInvited;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatParticipantsInvited$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatScheduled { + public static final field Companion Lme/alllex/tbot/api/model/VideoChatScheduled$Companion; + public synthetic fun (ILme/alllex/tbot/api/model/UnixTimestamp;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (JLkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-GuijAhI ()J + public final fun copy-iOOD0yg (J)Lme/alllex/tbot/api/model/VideoChatScheduled; + public static synthetic fun copy-iOOD0yg$default (Lme/alllex/tbot/api/model/VideoChatScheduled;JILjava/lang/Object;)Lme/alllex/tbot/api/model/VideoChatScheduled; + public fun equals (Ljava/lang/Object;)Z + public final fun getStartDate-GuijAhI ()J + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/VideoChatScheduled;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/VideoChatScheduled$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/VideoChatScheduled$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/VideoChatScheduled; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/VideoChatScheduled;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatScheduled$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoChatStarted { + public static final field INSTANCE Lme/alllex/tbot/api/model/VideoChatStarted; + public fun equals (Ljava/lang/Object;)Z + public fun hashCode ()I + public final fun serializer ()Lkotlinx/serialization/KSerializer; + public fun toString ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/VideoNote { + public static final field Companion Lme/alllex/tbot/api/model/VideoNote$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;JLme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/PhotoSize;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3 ()J + public final fun component4-RHIZTpk ()J + public final fun component5 ()Lme/alllex/tbot/api/model/PhotoSize; + public final fun component6 ()Ljava/lang/Long; + public final fun copy-WBaEUoA (Ljava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/Long;)Lme/alllex/tbot/api/model/VideoNote; + public static synthetic fun copy-WBaEUoA$default (Lme/alllex/tbot/api/model/VideoNote;Ljava/lang/String;Ljava/lang/String;JJLme/alllex/tbot/api/model/PhotoSize;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/VideoNote; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getLength ()J + public final fun getThumbnail ()Lme/alllex/tbot/api/model/PhotoSize; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/VideoNote;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/VideoNote$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/VideoNote$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/VideoNote; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/VideoNote;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/VideoNote$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Voice { + public static final field Companion Lme/alllex/tbot/api/model/Voice$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/Long;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Long;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Long;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1-s0A8duU ()Ljava/lang/String; + public final fun component2-HnHFhuI ()Ljava/lang/String; + public final fun component3-RHIZTpk ()J + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/Long; + public final fun copy-BnDnzXo (Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Long;)Lme/alllex/tbot/api/model/Voice; + public static synthetic fun copy-BnDnzXo$default (Lme/alllex/tbot/api/model/Voice;Ljava/lang/String;Ljava/lang/String;JLjava/lang/String;Ljava/lang/Long;ILjava/lang/Object;)Lme/alllex/tbot/api/model/Voice; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration-RHIZTpk ()J + public final fun getFileId-s0A8duU ()Ljava/lang/String; + public final fun getFileSize ()Ljava/lang/Long; + public final fun getFileUniqueId-HnHFhuI ()Ljava/lang/String; + public final fun getMimeType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/Voice;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/Voice$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/Voice$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/Voice; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/Voice;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/Voice$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppData { + public static final field Companion Lme/alllex/tbot/api/model/WebAppData$Companion; + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lme/alllex/tbot/api/model/WebAppData; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/WebAppData;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/WebAppData; + public fun equals (Ljava/lang/Object;)Z + public final fun getButtonText ()Ljava/lang/String; + public final fun getData ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/WebAppData;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/WebAppData$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/WebAppData$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/WebAppData; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/WebAppData;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppData$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppInfo { + public static final field Companion Lme/alllex/tbot/api/model/WebAppInfo$Companion; + public synthetic fun (ILjava/lang/String;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lme/alllex/tbot/api/model/WebAppInfo; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/WebAppInfo;Ljava/lang/String;ILjava/lang/Object;)Lme/alllex/tbot/api/model/WebAppInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/WebAppInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/WebAppInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/WebAppInfo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/WebAppInfo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/WebAppInfo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppInfo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppQueryId { + public static final field Companion Lme/alllex/tbot/api/model/WebAppQueryId$Companion; + public static final synthetic fun box-impl (Ljava/lang/String;)Lme/alllex/tbot/api/model/WebAppQueryId; + public static fun constructor-impl (Ljava/lang/String;)Ljava/lang/String; + public fun equals (Ljava/lang/Object;)Z + public static fun equals-impl (Ljava/lang/String;Ljava/lang/Object;)Z + public static final fun equals-impl0 (Ljava/lang/String;Ljava/lang/String;)Z + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public static fun hashCode-impl (Ljava/lang/String;)I + public fun toString ()Ljava/lang/String; + public static fun toString-impl (Ljava/lang/String;)Ljava/lang/String; + public final synthetic fun unbox-impl ()Ljava/lang/String; +} + +public final class me/alllex/tbot/api/model/WebAppQueryId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/WebAppQueryId$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize-a6dFQn4 (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/String; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize-Zr2Scow (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/String;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebAppQueryId$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebhookInfo { + public static final field Companion Lme/alllex/tbot/api/model/WebhookInfo$Companion; + public synthetic fun (ILjava/lang/String;ZJLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/util/List;Lkotlinx/serialization/internal/SerializationConstructorMarker;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;ZJLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public synthetic fun (Ljava/lang/String;ZJLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Z + public final fun component3 ()J + public final fun component4 ()Ljava/lang/String; + public final fun component5-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component6 ()Ljava/lang/String; + public final fun component7-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun component8 ()Ljava/lang/Long; + public final fun component9 ()Ljava/util/List; + public final fun copy-qn1_ADc (Ljava/lang/String;ZJLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/util/List;)Lme/alllex/tbot/api/model/WebhookInfo; + public static synthetic fun copy-qn1_ADc$default (Lme/alllex/tbot/api/model/WebhookInfo;Ljava/lang/String;ZJLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/util/List;ILjava/lang/Object;)Lme/alllex/tbot/api/model/WebhookInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowedUpdates ()Ljava/util/List; + public final fun getHasCustomCertificate ()Z + public final fun getIpAddress ()Ljava/lang/String; + public final fun getLastErrorDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getLastErrorMessage ()Ljava/lang/String; + public final fun getLastSynchronizationErrorDate-kgC_Xj8 ()Lme/alllex/tbot/api/model/UnixTimestamp; + public final fun getMaxConnections ()Ljava/lang/Long; + public final fun getPendingUpdateCount ()J + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/WebhookInfo;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/WebhookInfo$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/WebhookInfo$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/WebhookInfo; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/WebhookInfo;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WebhookInfo$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WithContextMethodsKt { + public static final fun addStickerToSet-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/InputSticker;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun answer-8IXQU_c (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InlineQuery;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answer-8IXQU_c$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InlineQuery;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answer-JILEH74 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answer-JILEH74$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answer-SxiQAr0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/CallbackQuery;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answer-SxiQAr0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/CallbackQuery;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answer-fOnD-4U (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answer-fOnD-4U$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerCallbackQuery-XFVsORc (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerCallbackQuery-XFVsORc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/Seconds;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerInlineQuery-ndMGidM (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerInlineQuery-ndMGidM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResultsButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerPreCheckoutQuery (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerPreCheckoutQuery$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerShippingQuery-Ki8SIp4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun answerShippingQuery-Ki8SIp4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;ZLjava/util/List;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun answerWebAppQuery-rQ8bgZI (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineQueryResult;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun approveChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun banChatMember-N6VTo1U (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun banChatMember-N6VTo1U$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun banChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun close (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun closeForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun closeGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun copyMessage-8AP0yqU (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun copyMessage-8AP0yqU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun copyMessage-h4Hmy4s (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun copyMessage-h4Hmy4s$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createChatInviteLink-uiK7DU4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createChatInviteLink-uiK7DU4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createForumTopic-8sQ86mQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createForumTopic-8sQ86mQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/Long;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createInvoiceLink (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createInvoiceLink$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun createNewStickerSet-quJ4GYo (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun createNewStickerSet-quJ4GYo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun declineChatJoinRequest-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun delete (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteChatPhoto-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteChatStickerSet-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteMessage-3ju5kss (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun deleteMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun deleteStickerFromSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun deleteWebhook (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun deleteWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editChatInviteLink-JVDDfaA (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editChatInviteLink-JVDDfaA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Long;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editForumTopic-fr45IeY (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editForumTopic-fr45IeY$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editGeneralForumTopic-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun editInlineMessageCaption-tNPJ-D4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageCaption-tNPJ-D4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageLiveLocation-nsM-4mU (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageLiveLocation-nsM-4mU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDLjava/lang/String;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageMedia-tbJO12A (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageMedia-tbJO12A$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageReplyMarkup-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageReplyMarkup-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editInlineMessageText-zqdqPX0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editInlineMessageText-zqdqPX0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageCaption-2mlvnJQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageCaption-2mlvnJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageLiveLocation-bPT5Mn0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageLiveLocation-bPT5Mn0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;DDJJLjava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageMedia-D9OBLUA (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageMedia-D9OBLUA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/InputMedia;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageReplyMarkup-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageReplyMarkup-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editMessageText-gjA59Bw (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editMessageText-gjA59Bw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JJLme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editText (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editText$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editTextHtml (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editTextHtml$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editTextMarkdown (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editTextMarkdown$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun editTextMarkdownV2 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun editTextMarkdownV2$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun exportChatInviteLink-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun forward-6sJkeJQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun forward-6sJkeJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun forwardMessage-0dEy1Yk (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun forwardMessage-0dEy1Yk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJJLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatAdministrators-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMember-8Iri9PQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMemberCount-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getChatMenuButton-urVNoS0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getChatMenuButton-urVNoS0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getCustomEmojiStickers (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getFile-9QAF6ug (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getForumTopicIconStickers (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getGameHighScores-HoZPCJw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getGameHighScores-HoZPCJw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMe (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMember-sKRo5mo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMember-slqGSJc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMemberCount (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMemberCount-swsHdGg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyName (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getStickerSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun getUpdates-gJ_WtZg (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getUpdates-gJ_WtZg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/Long;Ljava/lang/Long;Lme/alllex/tbot/api/model/Seconds;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getUserProfilePhotos-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun getUserProfilePhotos-CnxUCFs$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/Long;Ljava/lang/Long;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun getWebhookInfo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun hideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun leaveChat-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun logOut (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun pinChatMessage-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun pinChatMessage-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun promoteChatMember-c53S_gM (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun promoteChatMember-c53S_gM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun reopenForumTopic-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun reopenGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun reply-KTBsg6M (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reply-KTBsg6M$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun replyHtml-DROOlbE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun replyHtml-DROOlbE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun replyMarkdown-DROOlbE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun replyMarkdown-DROOlbE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun replyMarkdownV2-DROOlbE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun replyMarkdownV2-DROOlbE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Message;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun restrictChatMember-v_H8p6g (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun restrictChatMember-v_H8p6g$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/UnixTimestamp;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun revokeChatInviteLink-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun sendAnimation-2SdqZJQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAnimation-2SdqZJQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAnimation-Jt30U6s (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAnimation-Jt30U6s$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAnimation-VI4L7dA (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAnimation-VI4L7dA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAudio-OO2oKF8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAudio-OO2oKF8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAudio-sC933T4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAudio-sC933T4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendAudio-vDRMsro (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendAudio-vDRMsro$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendChatAction-DnwG5-w (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendChatAction-DnwG5-w$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendChatAction-wQda_4Y (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendChatAction-wQda_4Y$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendChatAction-xU7eTQg (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendChatAction-xU7eTQg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendContact-9-Qgxj0 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendContact-9-Qgxj0$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendContact-p7u6ZuA (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendContact-p7u6ZuA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendContact-uzMjRNE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendContact-uzMjRNE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDice-BC3sMhg (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDice-BC3sMhg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDice-HA8Q1iM (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDice-HA8Q1iM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDice-YGPDPMY (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDice-YGPDPMY$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDocument--U6LAw8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDocument--U6LAw8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDocument-pbiWKTc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDocument-pbiWKTc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendDocument-pgYP1-I (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendDocument-pgYP1-I$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendGame-PhSXmwU (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendGame-PhSXmwU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendHtml-SPxAPmo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendHtml-SPxAPmo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendHtml-jgIjGKE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendHtml-jgIjGKE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendInvoice-MVaCf9E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendInvoice-MVaCf9E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Long;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendLocation-LuAHc10 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;DDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendLocation-LuAHc10$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;DDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendLocation-OfDrwTc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendLocation-OfDrwTc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendLocation-c0kh050 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendLocation-c0kh050$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Double;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMarkdown-SPxAPmo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMarkdown-SPxAPmo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMarkdown-jgIjGKE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMarkdown-jgIjGKE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMarkdownV2-SPxAPmo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMarkdownV2-SPxAPmo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMarkdownV2-jgIjGKE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMarkdownV2-jgIjGKE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMediaGroup-0a1kOjs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMediaGroup-0a1kOjs$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMediaGroup-Sv52-X8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMediaGroup-Sv52-X8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMediaGroup-m1fHH5Q (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMediaGroup-m1fHH5Q$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMessage--ICW3Rg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMessage--ICW3Rg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMessage-YjNHXXg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMessage-YjNHXXg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendMessage-mFyUbLI (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendMessage-mFyUbLI$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-9f7iZ_8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-9f7iZ_8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-qT2DtxE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-qT2DtxE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPhoto-xaXkXZk (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPhoto-xaXkXZk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPoll-00tYeFE (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPoll-00tYeFE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPoll-8MPmwjE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPoll-8MPmwjE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendPoll-UqESTKg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendPoll-UqESTKg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Lme/alllex/tbot/api/model/UnixTimestamp;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendSticker-2qe-nS4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendSticker-2qe-nS4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVenue-AKxa2IU (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;DDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVenue-AKxa2IU$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;DDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVenue-HlQ8bAA (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVenue-HlQ8bAA$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVenue-M8nw6eQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVenue-M8nw6eQ$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JDDLjava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideo-Gjr2NUc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideo-Gjr2NUc$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideo-PXQ9Rjk (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideo-PXQ9Rjk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideo-trswGs8 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideo-trswGs8$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideoNote-2INTY6o (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideoNote-2INTY6o$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideoNote-MLCKWAE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideoNote-MLCKWAE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVideoNote-ZZRL_-s (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVideoNote-ZZRL_-s$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Long;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVoice-5FT6lKk (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVoice-5FT6lKk$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVoice-6KSKMi4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVoice-6KSKMi4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun sendVoice-JPmbTTo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun sendVoice-JPmbTTo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/Chat;Ljava/lang/String;Lme/alllex/tbot/api/model/MessageThreadId;Ljava/lang/String;Lme/alllex/tbot/api/model/ParseMode;Ljava/util/List;Lme/alllex/tbot/api/model/Seconds;Ljava/lang/Boolean;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/MessageId;Ljava/lang/Boolean;Lme/alllex/tbot/api/model/ReplyMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatAdministratorCustomTitle-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatDescription-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatDescription-BeieCNI$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatMenuButton-ZX35EHo (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatMenuButton-ZX35EHo$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatId;Lme/alllex/tbot/api/model/MenuButton;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatPermissions-bATV1Ik (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setChatPermissions-bATV1Ik$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/ChatPermissions;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setChatPhoto-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatStickerSet-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setChatTitle-BeieCNI (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setCustomEmojiStickerSetThumbnail-LLs5WwE (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setCustomEmojiStickerSetThumbnail-LLs5WwE$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setGameScore-bpGKr3g (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setGameScore-bpGKr3g$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;JJLkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setInlineGameScore-swAzXFg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setInlineGameScore-swAzXFg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyCommands (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyCommands$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/util/List;Lme/alllex/tbot/api/model/BotCommandScope;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyDefaultAdministratorRights (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyDefaultAdministratorRights$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Lme/alllex/tbot/api/model/ChatAdministratorRights;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyName (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyName$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setMyShortDescription (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setMyShortDescription$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setPassportDataErrors-8leRs9M (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerEmojiList (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerKeywords (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerKeywords$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerMaskPosition (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerMaskPosition$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/MaskPosition;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerPositionInSet (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setStickerSetThumbnail-CnATBrM (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setStickerSetThumbnail-CnATBrM$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;JLjava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun setStickerSetTitle (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun setWebhook (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun setWebhook$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Long;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopInlineMessageLiveLocation-hNf7rw4 (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopInlineMessageLiveLocation-hNf7rw4$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;Ljava/lang/String;Lme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopMessageLiveLocation-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopMessageLiveLocation-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun stopPoll-LHA2_7E (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun stopPoll-LHA2_7E$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLme/alllex/tbot/api/model/InlineKeyboardMarkup;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun unbanChatMember-dYQIaGw (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun unbanChatMember-dYQIaGw$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLjava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun unbanChatSenderChat-C6lwAcQ (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unhideGeneralForumTopic-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllChatMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllForumTopicMessages-3Ll9Fnc (Lme/alllex/tbot/api/client/TelegramBotApiContext;JJLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinAllGeneralForumTopicMessages-uYt3e2c (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun unpinChatMessage-6XJKVkg (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun unpinChatMessage-6XJKVkg$default (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLme/alllex/tbot/api/model/MessageId;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static final fun uploadStickerFile-CnxUCFs (Lme/alllex/tbot/api/client/TelegramBotApiContext;JLjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; +} + +public final class me/alllex/tbot/api/model/WriteAccessAllowed { + public static final field Companion Lme/alllex/tbot/api/model/WriteAccessAllowed$Companion; + public fun ()V + public synthetic fun (ILjava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lkotlinx/serialization/internal/SerializationConstructorMarker;)V + public fun (Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;)Lme/alllex/tbot/api/model/WriteAccessAllowed; + public static synthetic fun copy$default (Lme/alllex/tbot/api/model/WriteAccessAllowed;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lme/alllex/tbot/api/model/WriteAccessAllowed; + public fun equals (Ljava/lang/Object;)Z + public final fun getFromAttachmentMenu ()Ljava/lang/Boolean; + public final fun getFromRequest ()Ljava/lang/Boolean; + public final fun getWebAppName ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; + public static final synthetic fun write$Self (Lme/alllex/tbot/api/model/WriteAccessAllowed;Lkotlinx/serialization/encoding/CompositeEncoder;Lkotlinx/serialization/descriptors/SerialDescriptor;)V +} + +public final class me/alllex/tbot/api/model/WriteAccessAllowed$$serializer : kotlinx/serialization/internal/GeneratedSerializer { + public static final field INSTANCE Lme/alllex/tbot/api/model/WriteAccessAllowed$$serializer; + public fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; + public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lme/alllex/tbot/api/model/WriteAccessAllowed; + public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V + public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lme/alllex/tbot/api/model/WriteAccessAllowed;)V + public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; +} + +public final class me/alllex/tbot/api/model/WriteAccessAllowed$Companion { + public final fun serializer ()Lkotlinx/serialization/KSerializer; +} + diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..5bd2f75 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,169 @@ +@file:Suppress("UnstableApiUsage") + +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion + + +plugins { + `java-library` + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.kotlinx.binaryCompatibilityValidator) + `maven-publish` + signing + alias(libs.plugins.dokka) + alias(libs.plugins.nexus.publish) +} + +repositories { + mavenCentral() +} + +val publishVersion = layout.projectDirectory.file("version.txt").asFile.readText().trim() + +group = "me.alllex.telegram.botkit" +version = publishVersion + +java.toolchain.languageVersion = libs.versions.jvmToolchain.map { JavaLanguageVersion.of(it) } + +tasks.withType().configureEach { + options.release = libs.versions.jdkTarget.map { it.toInt() } +} + +kotlin { + val kotlinTarget = libs.versions.kotlinTarget + val kotlinVersion = kotlinTarget.map { KotlinVersion.fromVersion(it.toKotlinMinor()) } + compilerOptions { + languageVersion = kotlinVersion + apiVersion = kotlinVersion + } + coreLibrariesVersion = kotlinTarget.get() + + compilerOptions { + jvmTarget = libs.versions.jdkTarget.map { JvmTarget.fromTarget(it.toJdkTarget()) } + // https://kotlinlang.org/docs/compiler-reference.html#xjdk-release-version + freeCompilerArgs.add(libs.versions.jdkTarget.map { "-Xjdk-release=${it.toJdkTarget()}" }) + } +} + +// 8 => 1.8, 11 => 11 +fun String.toJdkTarget() = if (toInt() <= 8) "1.$this" else this + +// 1.7.21 => 1.7, 1.9 => 1.9 +fun String.toKotlinMinor() = split(".").take(2).joinToString(".") + +dependencies { + implementation(libs.kotlinx.serialization.json) + implementation(libs.ktor.serialization.kotlinx.json) + api(libs.ktor.client.core) + implementation(libs.ktor.client.content.negotiation) + implementation(libs.slf4j.api) + + testImplementation(libs.junit.jupiter) + testImplementation(libs.kotlin.test.junit5) + testImplementation(libs.ktor.client.mock) + testImplementation(libs.kotlinx.coroutines.test) + testImplementation(libs.assertk.jvm) + testRuntimeOnly(libs.bundles.log4j) + + // demo + testImplementation(libs.ktor.client.java) +} + +tasks.test { + useJUnitPlatform() +} + +val generateTelegramBotApi by tasks.registering(GenerateTelegramBotApiTask::class) { + apiSpecFile = layout.projectDirectory.file("api-spec/telegram-bot-api.html") + packageName = "me.alllex.tbot.api.model" + telegramClientPackage = "me.alllex.tbot.api.client" + outputDirectory = layout.projectDirectory.dir("src/main/generated-kotlin") +} + +kotlin.sourceSets.main { + kotlin.srcDir(generateTelegramBotApi) +} + +kotlin.compilerOptions { + freeCompilerArgs.add("-Xcontext-receivers") +} + +val sourcesJar by tasks.registering(Jar::class) { + this.archiveClassifier = "sources" + from(sourceSets.main.map { it.allSource }) +} + +val javadocJar by tasks.registering(Jar::class) { + description = "Produce javadoc with Dokka HTML inside" + dependsOn(tasks.dokkaHtml) + from(tasks.dokkaHtml) + archiveClassifier = "javadoc" +} + +publishing { + publications { + register("mavenJava", MavenPublication::class) { + artifactId = "tbot-api-jvm" + from(components["java"]) + artifact(sourcesJar) + artifact(javadocJar) + } + } +} + +// Gradle hasn't updated the signing plugin to be compatible with lazy-configuration, so it needs weird workarounds: +afterEvaluate { + // Register signatures in afterEvaluate, otherwise the signing plugin creates the signing tasks + // too early, before all the publications are added. + signing { + val signingKeyId: String? by project + val signingKey: String? by project + val signingPassword: String? by project + + if (signingKeyId != null) { + useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword) + sign(publishing.publications) + } + } +} + +publishing { + publications.withType().configureEach { + pom { + name = "Telegram BotKit" + description = "Fluent Kotlin bindings for Telegram Bot API" + url = "https://github.com/alllex/telegram-bot-kit" + licenses { + license { + name = "MIT" + url = "https://opensource.org/licenses/MIT" + } + } + developers { + developer { + id = "alllex" + name = "Alex by Software" + email = "software@alllex.me" + url = "https://alllex.me" + } + } + scm { + connection = "scm:git:git@github.com:alllex/telegram-bot-kit.git" + developerConnection = "scm:git:git@github.com:alllex/telegram-bot-kit.git" + url = "https://github.com/alllex/telegram-bot-kit" + } + } + } +} + + +nexusPublishing { + repositories { + sonatype { + nexusUrl = uri("https://s01.oss.sonatype.org/service/local/") + snapshotRepositoryUrl = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") + } + } +} + diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..616c23d --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,27 @@ +plugins { + `kotlin-dsl` +} + +repositories { + mavenCentral() +} + +dependencies { + implementation("org.jsoup:jsoup:1.16.1") + implementation("me.alllex.parsus:parsus-jvm:0.5.5") +} + +val updateApiSpec by tasks.registering { + val specFile = layout.projectDirectory.file("../api-spec/telegram-bot-api.html") + outputs.file(specFile) + outputs.upToDateWhen { false } + doLast { + val url = "https://core.telegram.org/bots/api" + val rawText = uri(url).toURL().readText() + val genTimeRe = "^$".toRegex() + val text = rawText.lineSequence() + .filterNot { genTimeRe.matches(it) } + .joinToString("\n") + specFile.asFile.writeText(text) + } +} diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 0000000..29744ec --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "buildSrc" diff --git a/buildSrc/src/main/kotlin/GenerateTelegramBotApiTask.kt b/buildSrc/src/main/kotlin/GenerateTelegramBotApiTask.kt new file mode 100644 index 0000000..3038f51 --- /dev/null +++ b/buildSrc/src/main/kotlin/GenerateTelegramBotApiTask.kt @@ -0,0 +1,33 @@ +import me.alllex.tbot.apigen.BotApiGenerator +import org.gradle.api.DefaultTask +import org.gradle.api.file.DirectoryProperty +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.provider.Property +import org.gradle.api.tasks.* + +@CacheableTask +abstract class GenerateTelegramBotApiTask : DefaultTask() { + + @get:[InputFile PathSensitive(PathSensitivity.RELATIVE)] + abstract val apiSpecFile: RegularFileProperty + + @get:Input + abstract val packageName: Property + + @get:Input + abstract val telegramClientPackage: Property + + @get:OutputDirectory + abstract val outputDirectory: DirectoryProperty + + @TaskAction + fun generate() { + BotApiGenerator.generateFromSpec( + apiSpecFile.get().asFile.readText(), + outputDirectory.get().asFile, + packageName.get(), + telegramClientPackage.get() + ) + } + +} diff --git a/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiDefinitionParser.kt b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiDefinitionParser.kt new file mode 100644 index 0000000..da3ae1c --- /dev/null +++ b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiDefinitionParser.kt @@ -0,0 +1,401 @@ +package me.alllex.tbot.apigen + +import me.alllex.parsus.parser.* +import me.alllex.parsus.token.regexToken +import org.jsoup.Jsoup +import org.jsoup.nodes.Element + +private val typeSubstitutions = mapOf( + "MessageId" to "MessageIdResult" +) + +private val fieldTypeSubstitutionsByFieldName = mapOf( + "allowed_updates" to "List", + "parse_mode" to "ParseMode", +) + +fun resolveElementTypeName(name: String): String { + return typeSubstitutions[name] ?: name +} + +fun resolveFieldTypeName(serialFieldName: String, serialFieldType: String): String { + return fieldTypeSubstitutionsByFieldName[serialFieldName] ?: serialFieldType +} + +data class ApiEntityDefinition( + val nameHeaderElement: Element, + val descriptionElements: List = emptyList(), + val fieldsTableElement: Element? = null, + val unionTypesListElement: Element? = null, +) + +data class ApiMethodDefinition( + val nameHeaderElement: Element, + val descriptionElements: List = emptyList(), + val parametersTableElement: Element? = null, +) + +@JvmInline +value class BotApiElementName(val value: String) { + init { + require(regex.matches(value)) { "Invalid Bot API element name: '$value'" } + } + + override fun toString(): String = value + + companion object { + private val regex = Regex("[a-zA-Z][a-zA-Z0-9]*") + } +} + +@JvmInline +value class KotlinType(val value: String) { + override fun toString(): String = value +} + +data class BotApiElement( + val name: BotApiElementName, + val description: String, + val fields: List? = null, + val unionTypes: List? = null +) { + data class Field( + val serialName: String, + val description: String, + val type: KotlinType, + val isOptional: Boolean, + val defaultValue: String? + ) { + val name = serialName.snakeToCamelCase() + } +} + +data class BotApiMethod( + val name: BotApiElementName, + val description: String, + val parameters: List, + val returnType: KotlinType +) + +data class BotApi( + val types: List, + val methods: List, +) + +val availableTypesIgnoredSections: Set = setOf( + "InputFile", + "Sending files", + "Inline mode objects", + "Determining list of commands", + "Formatting options", + "Inline mode methods", +) + +val topLevelSections = listOf( + "Getting updates", + "Available types", + "Available methods", + "Updating messages", + "Stickers", + "Inline mode", + "Payments", + "Telegram Passport", + "Games", +) + +val responseTypeRegexes = listOf( + Regex("An (.+) objects is returned"), + Regex("Returns (\\w+) on success"), + Regex("[Rr]eturns an? (.+?) object"), + Regex("in form of a (\\w+) object"), + Regex("[Oo]n success, (\\w+) is returned"), + Regex("the sent (\\w+) is returned"), + Regex("[Oo]n success, an? (.+) objects?"), + Regex("On success, an (.+) that were"), + Regex("On success, the stopped (\\w+) with the final results is returned"), + Regex("On success, if [^,]+, the (\\w+) is returned"), + Regex("the \\w+ (\\w+) is returned"), + Regex("Returns the (\\w+) of the"), + Regex("returns the edited (\\w+),"), + Regex("Returns the uploaded (\\w+) on success"), + Regex("Returns the (?:new invite link|created invoice link) as (String) on success"), + Regex("Returns information about the created topic as a (\\w+) object"), + Regex("Returns (.+) on success"), + Regex("as (\\w+) on success"), + Regex("invite link as (?:a )?(\\w+) object"), +) + +fun findResponseTypeFromDescription(description: String): String { + responseTypeRegexes.forEach { regex -> + regex.find(description)?.groupValues?.get(1)?.let { return it } + } + error("Type not found in description:\n____\n${description}\n____") +} + +fun Element.isH1() = tagName() == "h1" +fun Element.isH2() = tagName() == "h2" +fun Element.isH3() = tagName() == "h3" +fun Element.isH4() = tagName() == "h4" + +private val implicitReplyMarkupElement = BotApiElement( + BotApiElementName("ReplyMarkup"), + description = "This object represents an [inline keyboard](https://core.telegram.org/bots/features#inline-keyboards).", + unionTypes = listOf("InlineKeyboardMarkup", "ReplyKeyboardMarkup", "ReplyKeyboardRemove", "ForceReply").map { + BotApiElementName(it) + } +) + +class BotApiDefinitionParser { + + fun run(html: String): BotApi { + val doc = Jsoup.parse(html) + val devPageContent = doc.select("#dev_page_content").firstOrNull() + ?: error("Could not find #dev_page_content") + + val contentEls = devPageContent.children() + + val h3Sections = contentEls.selectSections(startsSection = Element::isH3, stopsSequence = { it.isH1() || it.isH2() }) + + val groupSections = h3Sections.filter { it.first().ownText() in topLevelSections } + println("Found ${groupSections.size} top-level sections") + + val (typeDefSections, methodDefSections) = groupSections.flatMap { + it.selectSections(startsSection = Element::isH4) + .filter { sectionEls -> sectionEls.first().ownText() !in availableTypesIgnoredSections } + }.partition { sectionEls -> + sectionEls.first().ownText().first().isUpperCase() + } + + println("Found ${typeDefSections.size} type definition sections") + println("Found ${methodDefSections.size} method definition sections") + + val typeDefinitions = typeDefSections.map(::parseElementDefinition) + val types = typeDefinitions.map(this::parseElement) + + listOf(implicitReplyMarkupElement) + + val methodDefinitions = methodDefSections.map(::parseMethodDefinition) + val methods = methodDefinitions.map(this::parseMethod) + + return BotApi(types, methods) + } + + private fun parseElementDefinition(elementSection: List): ApiEntityDefinition { + // [h4, (description elements), ( or union types)?, (description elements)?] + val header = elementSection.first() + require(header.isH4()) { + "Expected

, but got ${header.tagName()}" + } + + val tableIx = elementSection.indexOfFirst { it.tagName() == "table" } + val unionTypesIx = elementSection.indexOfFirst { it.tagName() == "ul" } + + val firstNonDescriptionIx = listOf(tableIx, unionTypesIx, elementSection.size).filter { it >= 0 }.min() + val descriptionEls = elementSection.subList(1, firstNonDescriptionIx) + + return ApiEntityDefinition( + nameHeaderElement = header, + descriptionElements = descriptionEls, + fieldsTableElement = tableIx.takeIf { it >= 0 }?.let { elementSection[it] }, + unionTypesListElement = unionTypesIx.takeIf { it >= 0 }?.let { elementSection[it] } + ) + } + + private fun parseMethodDefinition(methodSection: List): ApiMethodDefinition { + // [h4, (description elements), (

or union types)?, (description elements)?] + val header = methodSection.first() + require(header.isH4()) { + "Expected

, but got ${header.tagName()}" + } + + val tableIx = methodSection.indexOfFirst { it.tagName() == "table" } + + val firstNonDescriptionIx = listOf(tableIx, methodSection.size).filter { it >= 0 }.min() + val descriptionEls = methodSection.subList(1, firstNonDescriptionIx) + + return ApiMethodDefinition( + nameHeaderElement = header, + descriptionElements = descriptionEls, + parametersTableElement = tableIx.takeIf { it >= 0 }?.let { methodSection[it] }, + ) + } + + private fun parseElement(elementDef: ApiEntityDefinition): BotApiElement { + val initialName = elementDef.nameHeaderElement.ownText() + val name = BotApiElementName(resolveElementTypeName(initialName)) + val description = elementDef.descriptionElements.joinToString("\n\n") { it.text() } + val fields = elementDef.fieldsTableElement?.let { parseElementFields(it) } + ?.sortedBy { it.isOptional } + val unionTypes = elementDef.unionTypesListElement?.let { parseUnionTypes(it) } + val finalFields = if (unionTypes == null && fields == null) emptyList() else fields + return BotApiElement(name, description, finalFields, unionTypes) + } + + private fun parseMethod(methodDef: ApiMethodDefinition): BotApiMethod { + val initialName = methodDef.nameHeaderElement.ownText() + val name = BotApiElementName(resolveElementTypeName(initialName)) + val description = methodDef.descriptionElements.joinToString("\n\n") { it.text() } + val parameters = (methodDef.parametersTableElement?.let { parseMethodParameters(it) } ?: emptyList()) + .sortedBy { it.isOptional } + val returnType = parseMethodReturnType(description) + return BotApiMethod(name, description, parameters, returnType) + } + + private fun parseMethodReturnType(methodDescriptionText: String): KotlinType { + val returnTypeText = findResponseTypeFromDescription(methodDescriptionText) + val typeFieldInfo = try { + serialTypeToKotlinTypeString(returnTypeText, isOptional = false) + } catch (e: Exception) { + throw RuntimeException("Failed to parse return type from '$returnTypeText' in description:\n---\n$methodDescriptionText\n---\n", e) + } + return typeFieldInfo.kotlinType + } + + private fun parseUnionTypes(unionTypesEl: Element): List { + require(unionTypesEl.tagName() == "ul") { + "Expected
    , but got ${unionTypesEl.tagName()}" + } + + val childrenClasses = unionTypesEl.children().map { + BotApiElementName(resolveElementTypeName(it.text())) + } + check(childrenClasses.all { it.value.isNotEmpty() }) { + "Got empty union type name for ${unionTypesEl.html()}" + } + + return childrenClasses + } + + private fun parseElementFields(tableEl: Element): List { + require(tableEl.tagName() == "table") { + "Expected

, but got ${tableEl.tagName()}" + } + + val header = tableEl.firstElementChild()!! + val headerRow = header.firstElementChild()!! + check(headerRow.childrenSize() == 3) { + "Expected 3 columns in table header, but got ${headerRow.childrenSize()}" + } + check(headerRow.firstElementChild()!!.text() == "Field") { + "Expected first column in table header to be 'Field', but got ${headerRow.firstElementChild()!!.text()}" + } + + val body = tableEl.child(1) + + val fields = mutableListOf() + + for (row in body.children()) { + val nameEl = row.child(0) + val typeEl = row.child(1) + val descriptionEl = row.child(2) + val isOptional = descriptionEl.text().startsWith("Optional") + val serialFieldName = nameEl.text().trim() + val typeText = typeEl.text().trim() + val typeFieldInfo = serialTypeToKotlinTypeString(typeText, isOptional, serialFieldName) + val description = descriptionEl.text().trim() + + fields.add(BotApiElement.Field(serialFieldName, description, typeFieldInfo.kotlinType, isOptional, typeFieldInfo.defaultValue)) + } + + return fields + } + + private fun parseMethodParameters(tableEl: Element): List { + require(tableEl.tagName() == "table") { + "Expected
, but got ${tableEl.tagName()}" + } + + val header = tableEl.firstElementChild()!! + val headerRow = header.firstElementChild()!! + require(headerRow.childrenSize() == 4) { + "Expected 4 columns in table header, but got ${headerRow.childrenSize()}" + } + check(headerRow.firstElementChild()!!.text() == "Parameter") { + "Expected first column in table header to be 'Parameter', but got ${headerRow.firstElementChild()!!.text()}" + } + + val body = tableEl.child(1) + + val fields = mutableListOf() + + for (row in body.children()) { + val nameEl = row.child(0) + val typeEl = row.child(1) + val requiredEl = row.child(2) + val descriptionEl = row.child(3) + val isOptional = requiredEl.text().startsWith("Optional") + val serialFieldName = nameEl.text().trim() + val typeText = typeEl.text().trim() + val typeFieldInfo = serialTypeToKotlinTypeString(typeText, isOptional, serialFieldName) + val description = descriptionEl.text().trim() + + fields.add(BotApiElement.Field(serialFieldName, description, typeFieldInfo.kotlinType, isOptional, typeFieldInfo.defaultValue)) + } + + return fields + } + + private data class ResolvedTypeInfo(val kotlinType: KotlinType, val defaultValue: String?) + + private fun serialTypeToKotlinTypeString(serialType: String, isOptional: Boolean, serialFieldName: String? = null): ResolvedTypeInfo { + val result = FieldTypeGrammar.parse(serialType) + + val parsedType = result.getOrElse { + throw RuntimeException("Could not parse field type: '$serialType'", ParseException(it)) + } + + val resolvedType = serialFieldName?.let { resolveFieldTypeName(it, parsedType) } ?: parsedType + + val defaultValue = if (isOptional) "null" else null + return ResolvedTypeInfo(KotlinType(resolvedType), defaultValue) + } + +} + +@Suppress("MemberVisibilityCanBePrivate") +object FieldTypeGrammar : Grammar(ignoreCase = true) { + init { + regexToken("\\s+", ignored = true) + } + + val arrayOf by regexToken("Array of") + val int by regexToken("Integer or String|Integer") map { "Long" } + val double by regexToken("Float number|Float") map { "Double" } + val boolean by regexToken("Boolean|False|True") map { "Boolean" } + val string by regexToken("InputFile or String|InputFile") map { "String" } + val message by regexToken("Messages") map { "Message" } // typo in the original HTML spec + val replayMarkup by regexToken("InlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReply") map { "ReplyMarkup" } // this is a custom sealed type + val inputMedia by regexToken("InputMediaAudio, InputMediaDocument, InputMediaPhoto and InputMediaVideo") map { "InputMedia" } + val apiType by regexToken("\\w+") map { typeSubstitutions[it.text] ?: it.text } + + val simpleType by int or double or boolean or string or message or replayMarkup or inputMedia or apiType + val listType by parser { + val listDepth = repeatOneOrMore(arrayOf).size + val atom = simpleType() + "List<".repeat(listDepth) + atom + ">".repeat(listDepth) + } + + val fieldType by listType or simpleType + + override val root by fieldType +} + +private fun List.selectSections(startsSection: (T) -> Boolean, stopsSequence: (T) -> Boolean = { false }): List> { + val result = mutableListOf>() + var subList: MutableList? = null + + for (item in this) { + when { + stopsSequence(item) -> break + startsSection(item) -> { + subList?.let(result::add) + subList = mutableListOf(item) + } + + else -> subList?.add(item) + } + } + + subList?.let(result::add) + + return result +} diff --git a/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiGenerator.kt b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiGenerator.kt new file mode 100644 index 0000000..549826f --- /dev/null +++ b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/BotApiGenerator.kt @@ -0,0 +1,985 @@ +package me.alllex.tbot.apigen + +import java.io.File + +private val unionTypesWithExplicitMarker = setOf( + "PassportElementError" +) + +data class MethodVariation( + val methodName: String, + val requiredParams: List, + val skipParams: List, + val newMethodName: String, + val returnType: String, + val descriptionSubstitutions: List> = emptyList(), +) + +private val editedMessageDescriptionSubstitutions = listOf( + "On success, if the( edited)? message is not an inline message, the( edited)? Message is returned, otherwise True is returned.".toRegex() to "On success the edited Message is returned." +) + +private val editedInlineMessageDescriptionSubstitutions = listOf( + "On success, if the( edited)? message is not an inline message, the( edited)? Message is returned, otherwise True is returned.".toRegex() to "On success True is returned." +) + +val methodVariations = listOf( + MethodVariation( + "editMessageText", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "editMessageText", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "editMessageText", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "editInlineMessageText", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "editMessageCaption", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "editMessageCaption", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "editMessageCaption", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "editInlineMessageCaption", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "editMessageMedia", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "editMessageMedia", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "editMessageMedia", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "editInlineMessageMedia", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "editMessageLiveLocation", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "editMessageLiveLocation", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "editMessageLiveLocation", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "editInlineMessageLiveLocation", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "editMessageReplyMarkup", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "editMessageReplyMarkup", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "editMessageReplyMarkup", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "editInlineMessageReplyMarkup", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "stopMessageLiveLocation", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "stopMessageLiveLocation", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "stopMessageLiveLocation", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "stopInlineMessageLiveLocation", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), + + MethodVariation( + "setGameScore", listOf("chat_id", "message_id"), listOf("inline_message_id"), + "setGameScore", "Message", + editedMessageDescriptionSubstitutions, + ), + MethodVariation( + "setGameScore", listOf("inline_message_id"), listOf("chat_id", "message_id"), + "setInlineGameScore", "Boolean", + editedInlineMessageDescriptionSubstitutions, + ), +) + +data class ValueType( + val name: String, + val backingType: String, + val docString: String? = null, + val fieldPredicate: (type: BotApiElementName, field: BotApiElement.Field) -> Boolean +) + +val valueTypes = listOf( + ValueType("ChatId", "Long", "Chat identifier.") { type, field -> + (type.value == "Chat" && field.serialName == "id") || field.serialName.endsWith("chat_id") + }, + ValueType("UserId", "Long", "User identifier.") { type, field -> + (type.value == "User" && field.serialName == "id") || field.serialName.endsWith("user_id") + }, + ValueType("MessageId", "Long", "Opaque message identifier.") { _, field -> + !field.serialName.endsWith("inline_message_id") && field.serialName.endsWith("message_id") + }, + ValueType("InlineMessageId", "String", "Opaque inline message identifier.") { _, field -> + field.serialName.endsWith("inline_message_id") + }, + ValueType("MessageThreadId", "Long", "Opaque message thread identifier.") { _, field -> + field.serialName.endsWith("message_thread_id") + }, + ValueType("CallbackQueryId", "String", "Opaque [CallbackQuery] identifier.") { type, field -> + (type.value == "CallbackQuery" && field.serialName == "id") || field.serialName.endsWith("callback_query_id") + }, + ValueType("InlineQueryId", "String", "Opaque [InlineQuery] identifier.") { type, field -> + (type.value == "InlineQuery" && field.serialName == "id") || field.serialName.endsWith("inline_query_id") + }, + ValueType("InlineQueryResultId", "String", "Opaque [InlineQueryResult] identifier.") { type, field -> + (type.value.startsWith("InlineQuery") && field.serialName == "id") || + (type.value == "ChosenInlineResult" && field.serialName == "result_id") + }, + ValueType("FileId", "String", "Identifier for a file, which can be used to download or reuse the file.") { _, field -> + field.serialName.endsWith("file_id") + }, + ValueType( + "FileUniqueId", + "String", + "Unique identifier for a file, which is supposed to be the same over time and for different bots.\n\nIt can't be used to download or reuse the file." + ) { _, field -> + field.serialName.endsWith("file_unique_id") + }, + ValueType("ShippingQueryId", "String", "Opaque [ShippingQuery] identifier.") { type, field -> + (type.value == "ShippingQuery" && field.serialName == "id") || field.serialName.endsWith("shipping_query_id") + }, + ValueType("WebAppQueryId", "String", "Opaque web-app query identifier.") { _, field -> + field.serialName.endsWith("web_app_query_id") + }, + ValueType("CustomEmojiId", "String", "Opaque custom emoji identifier.") { _, field -> + field.serialName.endsWith("custom_emoji_id") + }, + ValueType("Seconds", "Long", "Duration in seconds.") { _, field -> + field.serialName in setOf("cache_time", "duration", "life_period", "open_period", "timeout", "retry_after") + }, + ValueType( + "UnixTimestamp", + "Long", + "Unix time - **number of seconds** that have elapsed since 00:00:00 UTC on 1 January 1970.", + ) { _, field -> + field.serialName in setOf( + "date", + "last_error_date", + "last_synchronization_error_date", + "emoji_status_expiration_date", + "forward_date", + "edit_date", + "close_date", + "start_date", + "expire_date", + "until_date", + "file_date", + ) + }, +) + +private val unionMarkerValueInDescriptionRe = Regex("""(?:must be|always) ["“”]?([\w_]+)["“”]?""") + +private val unionMarkerFieldNames = setOf("type", "status") + +fun BotApiElement.Field.isUnionDiscriminator(): Boolean { + return serialName in unionMarkerFieldNames +} + +fun BotApiElement.getUnionDiscriminatorFieldName(): String? { + return fields?.find { it.isUnionDiscriminator() }?.serialName +} + +private fun BotApiElementName.asMethodNameToRequestTypeName() = "${value.toTitleCase()}Request" + +data class FluentContextMethod( + val receiver: String, + val name: String, + val delegateName: String, + val args: Map +) { + constructor(receiver: String, name: String, args: Map) : this(receiver, name, name, args) +} + +/** + * Fluent methods move some of the parameters from the base method signatures + * into a direct receiver of the function, thus making it more idiomatic. + * The ability to call a base method is retained by having `TelegramBotApiContext` as a context receiver. + * + * Fluent methods generation happens after the [methodVariations] are expanded. + */ +val fluentMethods = listOf( + FluentContextMethod("Chat", "sendMessage", "sendMessage", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendMarkdown", "sendMessage", mapOf("chatId" to "id", "parseMode" to "ParseMode.MARKDOWN")), + FluentContextMethod("Chat", "sendMarkdownV2", "sendMessage", mapOf("chatId" to "id", "parseMode" to "ParseMode.MARKDOWN_V2")), + FluentContextMethod("Chat", "sendHtml", "sendMessage", mapOf("chatId" to "id", "parseMode" to "ParseMode.HTML")), + FluentContextMethod("ChatId", "sendMessage", "sendMessage", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendMarkdown", "sendMessage", mapOf("chatId" to "this", "parseMode" to "ParseMode.MARKDOWN")), + FluentContextMethod("ChatId", "sendMarkdownV2", "sendMessage", mapOf("chatId" to "this", "parseMode" to "ParseMode.MARKDOWN_V2")), + FluentContextMethod("ChatId", "sendHtml", "sendMessage", mapOf("chatId" to "this", "parseMode" to "ParseMode.HTML")), + + FluentContextMethod("Message", "reply", "sendMessage", mapOf("chatId" to "chat.id", "replyToMessageId" to "messageId")), + FluentContextMethod( + "Message", "replyMarkdown", + "sendMessage", mapOf("chatId" to "chat.id", "replyToMessageId" to "messageId", "parseMode" to "ParseMode.MARKDOWN") + ), + FluentContextMethod( + "Message", "replyMarkdownV2", + "sendMessage", mapOf("chatId" to "chat.id", "replyToMessageId" to "messageId", "parseMode" to "ParseMode.MARKDOWN_V2") + ), + FluentContextMethod( + "Message", "replyHtml", + "sendMessage", mapOf("chatId" to "chat.id", "replyToMessageId" to "messageId", "parseMode" to "ParseMode.HTML") + ), + + FluentContextMethod( + "Message", "editText", + "editMessageText", mapOf("chatId" to "chat.id", "messageId" to "messageId") + ), + FluentContextMethod( + "Message", "editTextMarkdown", + "editMessageText", + mapOf("chatId" to "chat.id", "messageId" to "messageId", "parseMode" to "ParseMode.MARKDOWN") + ), + FluentContextMethod( + "Message", "editTextMarkdownV2", + "editMessageText", + mapOf("chatId" to "chat.id", "messageId" to "messageId", "parseMode" to "ParseMode.MARKDOWN_V2") + ), + FluentContextMethod( + "Message", "editTextHtml", + "editMessageText", + mapOf("chatId" to "chat.id", "messageId" to "messageId", "parseMode" to "ParseMode.HTML") + ), + + FluentContextMethod("Message", "delete", "deleteMessage", mapOf("chatId" to "chat.id", "messageId" to "messageId")), + FluentContextMethod("Message", "forward", "forwardMessage", mapOf("fromChatId" to "chat.id", "messageId" to "messageId")), + FluentContextMethod("Message", "copyMessage", "copyMessage", mapOf("fromChatId" to "chat.id", "messageId" to "messageId")), + + FluentContextMethod("Chat", "sendPhoto", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendAudio", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendDocument", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendVideo", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendAnimation", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendVoice", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendVideoNote", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendMediaGroup", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendLocation", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendVenue", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendContact", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendPoll", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendDice", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "sendChatAction", mapOf("chatId" to "id")), + + FluentContextMethod("Chat", "getMemberCount", "getChatMemberCount", mapOf("chatId" to "id")), + FluentContextMethod("Chat", "getMember", "getChatMember", mapOf("chatId" to "id")), + + FluentContextMethod("ChatId", "sendPhoto", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendAudio", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendDocument", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendVideo", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendAnimation", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendVoice", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendVideoNote", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendMediaGroup", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendLocation", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendVenue", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendContact", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendPoll", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendDice", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "sendChatAction", mapOf("chatId" to "this")), + + FluentContextMethod("ChatId", "getMemberCount", "getChatMemberCount", mapOf("chatId" to "this")), + FluentContextMethod("ChatId", "getMember", "getChatMember", mapOf("chatId" to "this")), + + FluentContextMethod("User", "getProfilePhotos", mapOf("userId" to "id")), + + FluentContextMethod("UserId", "getProfilePhotos", mapOf("userId" to "this")), + + FluentContextMethod("CallbackQuery", "answer", "answerCallbackQuery", mapOf("callbackQueryId" to "id")), + FluentContextMethod("CallbackQueryId", "answer", "answerCallbackQuery", mapOf("callbackQueryId" to "this")), + + FluentContextMethod("InlineQuery", "answer", "answerInlineQuery", mapOf("inlineQueryId" to "id")), + FluentContextMethod("InlineQueryId", "answer", "answerInlineQuery", mapOf("inlineQueryId" to "this")), +) + +class BotApiGenerator { + + fun run( + html: String, + outputDirectory: File, + packageName: String = "", + wrapperPackageName: String = "", + ) { + val parser = BotApiDefinitionParser() + val botApi = parser.run(html) + + val allTypes = botApi.types + println("Parsed ${allTypes.size} types") + val allMethods = botApi.methods + println("Parsed ${allMethods.size} methods") + + val unionTypes = collectUnionTypes(allTypes) + val unionTypeParentByChild = unionTypes + .flatMap { (parent, children) -> children.map { it to parent } } + .toMap() + + val typesFileText = generateTypesFile(allTypes, unionTypeParentByChild, packageName) + val requestTypesFileText = generateRequestTypesFile(allMethods, packageName) + + val methodsSourceCodes = generateMethodsSourceCode(allMethods, packageName, wrapperPackageName) + + val outputPackageDir = outputDirectory.resolve(packageName.replace(".", "/")) + outputPackageDir.mkdirs() + + outputPackageDir.resolve("Types.kt").writeText(typesFileText) + outputPackageDir.resolve("RequestTypes.kt").writeText(requestTypesFileText) + outputPackageDir.resolve("TryRequestMethods.kt").writeText(methodsSourceCodes.tryRequestMethodSourceCode) + outputPackageDir.resolve("TryMethods.kt").writeText(methodsSourceCodes.tryMethodSourceCode) + outputPackageDir.resolve("TryWithContextMethods.kt").writeText(methodsSourceCodes.tryWithContextMethodSourceCode) + outputPackageDir.resolve("Methods.kt").writeText(methodsSourceCodes.methodSourceCode) + outputPackageDir.resolve("WithContextMethods.kt").writeText(methodsSourceCodes.withContextMethodSourceCode) + } + + private fun collectUnionTypes(elements: List): Map> { + return buildMap { + for (el in elements) { + if (el.unionTypes != null) { + put(el.name, el.unionTypes) + } + } + } + } + + private fun generateRequestTypesFile( + methodElements: List, + packageName: String + ): String = buildString { + + if (packageName.isNotEmpty()) { + appendLine("package $packageName") + appendLine() + } + appendLine("import kotlinx.serialization.Serializable") + appendLine("import kotlinx.serialization.encodeToString") + appendLine() + appendLine() + + for (el in methodElements) { + val requestTypeSourceCodeText = generateRequestTypeSourceCode(el.name, el.parameters) + if (requestTypeSourceCodeText.isNotEmpty()) { + appendLine(requestTypeSourceCodeText) + } + } + } + + private fun generateRequestTypeSourceCode( + elementName: BotApiElementName, + parameters: List, + ): String = buildString { + + if (parameters.isNotEmpty()) { + val requestTypeName = elementName.asMethodNameToRequestTypeName() + + appendLine("/**") + appendLine(" * Request body for [${elementName.value}].") + appendLine(" * ") + parameters.filter { it.description.isNotEmpty() }.forEach { + appendLine(" * @param ${it.name} ${it.description}") + } + appendLine(" */") + appendLine("@Serializable") + appendLine("data class $requestTypeName(") + for (parameter in parameters) { + appendFieldLine(elementName, parameter, true) + } + appendLine(") {") + appendLine(" ${generateDebugToString(requestTypeName, parameters)}") + + appendLine("}") + } + } + + private fun StringBuilder.header(packageName: String, wrapperPackageName: String, imports: List = emptyList()) { + if (packageName.isNotEmpty()) { + appendLine("package $packageName") + } + appendLine() + for (importStatement in imports) { + appendLine(importStatement) + } + if (wrapperPackageName.isNotEmpty() && wrapperPackageName != packageName) { + appendLine("import $wrapperPackageName.*") + } + appendLine() + appendLine() + } + + private fun generateMethodsSourceCode( + methodElements: List, + packageName: String, + wrapperPackageName: String + ): MethodOverloadsSourceCode { + + val methodsSourceCodes = methodElements.flatMap { method -> + val requestTypeName = method.name.asMethodNameToRequestTypeName() + + val variations = methodVariations.filter { it.methodName == method.name.value } + + if (variations.isEmpty()) { + return@flatMap listOf(generateMethodSourceCode(method, method.name.value, requestTypeName, useArgNames = false)) + } + + variations.map { variation -> + val variationMethod = method.copy( + parameters = method.parameters + .filterNot { it.serialName in variation.skipParams } + .map { + if (it.serialName in variation.requiredParams) it.copy(isOptional = false, defaultValue = null) else it + }, + returnType = KotlinType(variation.returnType), + description = variation.descriptionSubstitutions.fold(method.description) { acc, replacement -> + acc.replace(replacement.first, replacement.second) + } + ) + + generateMethodSourceCode(variationMethod, variation.newMethodName, requestTypeName, useArgNames = true) + } + } + + val tryRequestMethodsSourceCode = buildString { + header( + packageName, wrapperPackageName, listOf( + "import io.ktor.client.call.*", + "import io.ktor.client.request.*", + "import io.ktor.http.*", + ) + ) + + methodsSourceCodes.map { it.tryRequestMethodSourceCode }.filter { it.isNotEmpty() } + .forEach { appendLine(it) } + } + + val tryMethodsSourceCode = buildString { + header(packageName, wrapperPackageName) + methodsSourceCodes.map { it.tryMethodSourceCode }.filter { it.isNotEmpty() } + .forEach { append(it) } + } + + val tryWithContextMethodsSourceCode = buildString { + header(packageName, wrapperPackageName) + methodsSourceCodes.map { it.tryWithContextMethodSourceCode }.filter { it.isNotEmpty() } + .forEach { append(it) } + } + + val methodsSourceCode = buildString { + header(packageName, wrapperPackageName) + methodsSourceCodes.map { it.methodSourceCode }.filter { it.isNotEmpty() } + .forEach { append(it) } + } + + val withContextMethodsSourceCode = buildString { + header(packageName, wrapperPackageName) + methodsSourceCodes.map { it.withContextMethodSourceCode }.filter { it.isNotEmpty() } + .forEach { append(it) } + } + + return MethodOverloadsSourceCode( + tryRequestMethodsSourceCode, + tryMethodsSourceCode, + tryWithContextMethodsSourceCode, + methodsSourceCode, + withContextMethodsSourceCode + ) + } + + private fun StringBuilder.appendDescriptionDoc(description: String) { + description.split("\n").forEach { + appendLine(" * $it") + } + } + + private fun StringBuilder.appendParameters(elementName: BotApiElementName, parameters: List) { + if (parameters.isNotEmpty()) { + appendLine() + } + for (parameter in parameters) { + appendFieldLine(elementName, parameter, isProperty = false) + } + } + + private fun StringBuilder.appendMethodDoc(description: String, parameters: List) { + appendLine("/**") + appendDescriptionDoc(description) + if (parameters.isNotEmpty()) { + appendLine(" *") + } + parameters.filter { it.description.isNotEmpty() }.forEach { + appendLine(" * @param ${it.name} ${it.description}") + } + appendLine(" */") + } + + data class MethodOverloadsSourceCode( + val tryRequestMethodSourceCode: String, + val tryMethodSourceCode: String, + val tryWithContextMethodSourceCode: String, + val methodSourceCode: String, + val withContextMethodSourceCode: String, + ) + + private fun generateMethodSourceCode( + method: BotApiMethod, + methodBaseName: String, + requestTypeName: String, + useArgNames: Boolean + ): MethodOverloadsSourceCode { + + val apiMethodName = method.name + val description = method.description + val parameters = method.parameters + val returnType = method.returnType + + val tryMethodName = "try${methodBaseName.toTitleCase()}" + + val hasParams = parameters.isNotEmpty() + + val requestValueArg = + if (!hasParams) "" + else "${requestTypeName}(${parameters.joinToString { if (useArgNames) "${it.name} = ${it.name}" else it.name }})" + + // Core try-prefixed method that does the actual request + val httpMethod = if (parameters.isEmpty()) "get" else "post" + + val tryRequestMethodSourceCode = buildString { + appendLine("/**") + appendDescriptionDoc(description) + appendLine(" */") + append("suspend fun TelegramBotApiClient.$tryMethodName(") + if (hasParams) { + append("requestBody: $requestTypeName") + } + appendLine("): TelegramResponse<${returnType.value}> =") + appendLine(" executeRequest(\"$apiMethodName\", ${if (hasParams) "requestBody" else "null"}) {") + appendLine(" httpClient.$httpMethod {") + appendLine(" url {") + appendLine(" protocol = apiProtocol") + appendLine(" host = apiHost") + appendLine(" port = apiPort") + appendLine(" path(\"bot\$apiToken\", \"$apiMethodName\")") + appendLine(" }") + if (hasParams) { + appendLine(" contentType(ContentType.Application.Json)") + appendLine(" setBody(requestBody)") + } + appendLine(" }.body()") + appendLine(" }") + } + + val tryMethodSourceCode = buildString { + if (!hasParams) return@buildString + + appendLine() + appendMethodDoc(description, parameters) + append("suspend fun TelegramBotApiClient.$tryMethodName(") + appendParameters(apiMethodName, parameters) + appendLine("): TelegramResponse<${returnType.value}> =") + appendLine(" $tryMethodName($requestValueArg)") + } + + // Convenience try-prefixed method with context + val tryWithContextMethodSourceCode = buildString { + appendLine() + appendMethodDoc(description, parameters) + appendLine("context(TelegramBotApiContext)") + append("suspend fun $tryMethodName(") + appendParameters(apiMethodName, parameters) + appendLine("): TelegramResponse<${returnType.value}> =") + appendLine(" botApiClient.$tryMethodName($requestValueArg)") + } + + // Convenience method + val methodSourceCode = buildString { + appendLine() + appendMethodDoc(description, parameters) + appendLine("@Throws(TelegramBotApiException::class)") + append("suspend fun TelegramBotApiClient.$methodBaseName(") + appendParameters(apiMethodName, parameters) + appendLine("): ${returnType.value} =") + appendLine(" $tryMethodName($requestValueArg).getResultOrThrow()") + } + + // Convenience method with context + val methodWithContextSourceCode = buildString { + appendLine() + appendMethodDoc(description, parameters) + appendLine("context(TelegramBotApiContext)") + appendLine("@Throws(TelegramBotApiException::class)") + append("suspend fun $methodBaseName(") + appendParameters(apiMethodName, parameters) + appendLine("): ${returnType.value} =") + appendLine(" botApiClient.$tryMethodName($requestValueArg).getResultOrThrow()") + } + + val fluentContextMethods = fluentMethods.filter { it.delegateName == methodBaseName }.map { fluent -> + val unexpectedArgs = fluent.args.keys - parameters.map { it.name }.toSet() + check(unexpectedArgs.isEmpty()) { "Unexpected replacement args for fluent method ${fluent.name}/$methodBaseName: $unexpectedArgs" } + + buildString { + appendLine("context(TelegramBotApiContext)") + appendLine("@Throws(TelegramBotApiException::class)") + append("suspend fun ${fluent.receiver}.${fluent.name}(") + appendParameters(apiMethodName, parameters.filter { it.name !in fluent.args }) + appendLine("): ${returnType.value} =") + val adjustedRequestArg = parameters.map { it.name }.joinToString { fluent.args[it] ?: it } + appendLine(" ${fluent.delegateName}($adjustedRequestArg)") + } + } + + val combinedMethodWithContextSourceCode = buildString { + append(methodWithContextSourceCode) + fluentContextMethods.forEach { + appendLine() + append(it) + } + } + + return MethodOverloadsSourceCode( + tryRequestMethodSourceCode, + tryMethodSourceCode, + tryWithContextMethodSourceCode, + methodSourceCode, + combinedMethodWithContextSourceCode, + ) + } + + private fun generateTypesFile( + typeElements: List, + unionTypeParentByChild: Map, + packageName: String = "", + ) = buildString { + + appendLine("@file:OptIn(ExperimentalSerializationApi::class)") + appendLine() + + if (packageName.isNotEmpty()) { + appendLine("package $packageName") + appendLine() + } + appendLine("import kotlinx.serialization.json.*") + appendLine("import kotlinx.serialization.DeserializationStrategy") + appendLine("import kotlinx.serialization.ExperimentalSerializationApi") + appendLine("import kotlinx.serialization.SerialName") + appendLine("import kotlinx.serialization.Serializable") + appendLine("import kotlinx.serialization.encodeToString") + appendLine() + + val specialTypes: Map Unit> = mapOf( + "Update" to { generateSourceCodeForUpdate(it) }, + ) + + val processedSpecialTypes = mutableSetOf() + + for (el in typeElements) { + val specialSourceGeneration = specialTypes[el.name.value] + if (specialSourceGeneration != null) { + processedSpecialTypes += el.name.value + specialSourceGeneration(el) + } else if (el.fields != null) { + appendLine(generateContentfulTypeSourceCode(el.name, el.description, el.fields, unionTypeParentByChild)) + } else if (el.unionTypes != null) { + val unionTypes = el.unionTypes.map { + typeElements.find { typeElement -> typeElement.name == it } ?: error("Unknown union type: $it") + } + appendLine(generateUnionTypeSourceCode(el.name, el.description, unionTypes)) + } else { + error("Unknown type: $el") + } + } + + val unprocessedSpecialTypes = specialTypes.keys - processedSpecialTypes + check(unprocessedSpecialTypes.isEmpty()) { + "Special types not processed: $unprocessedSpecialTypes" + } + + for (valueType in valueTypes) { + appendLine(generateValueTypeSourceCode(valueType)) + } + } + + private fun generateValueTypeSourceCode(valueType: ValueType): String = buildString { + valueType.docString?.let { + appendLine("/**") + it.lines().forEach { line -> + appendLine(" * $line") + } + appendLine(" */") + } + appendLine("@Serializable") + appendLine("@JvmInline") + appendLine("value class ${valueType.name}(val value: ${valueType.backingType}) {") + appendLine(" override fun toString(): String = \"${valueType.name}(\${quoteWhenWhitespace(value)})\"") + appendLine("}") + } + + private fun StringBuilder.generateSourceCodeForUpdate(updateTypeElement: BotApiElement) { + val name = updateTypeElement.name.value + val types = updateTypeElement.fields?.filter { it.isOptional } ?: emptyList() + + fun BotApiElement.Field.enumValue() = serialName.snakeToLoudSnakeCase() + fun BotApiElement.Field.updateTypeName() = serialName.snakeToPascalCase() + "Update" + + appendLine("/**") + appendLine(" * Type of updates Telegram Bot can receive.") + appendLine(" */") + appendLine("enum class ${name}Type {") + for (updateField in types) { + appendLine(" @SerialName(\"${updateField.serialName}\") ${updateField.enumValue()},") + } + appendLine("}") + + appendLine() + appendLine("/**") + updateTypeElement.description.split("\n") + .filterNot { it.startsWith("At most one of the optional parameters") } + .forEach { + appendLine(" * $it") + } + appendLine(" *") + appendLine(" * Sub-types:") + for (updateType in types) { + appendLine(" * - [${updateType.updateTypeName()}]") + } + appendLine(" */ ") + appendLine("@Serializable(with = ${name}Serializer::class)") + appendLine("sealed class $name {") + appendLine(" abstract val updateId: Long") + appendLine(" abstract val updateType: UpdateType") + appendLine("}") + for (updateField in types) { + appendLine() + appendLine("/**") + updateField.description.removePrefix("Optional.").split("\n").forEach { + appendLine(" * ${it.trim()}") + } + appendLine(" */") + appendLine("@Serializable") + appendLine("data class ${updateField.updateTypeName()}(") + appendLine(" override val updateId: Long,") + appendLine(" val ${updateField.name}: ${updateField.type},") + appendLine("): $name() {") + appendLine(" override val updateType: UpdateType get() = UpdateType.${updateField.enumValue()}") + appendLine("}") + } + + appendLine() + appendLine("object ${name}Serializer : JsonContentPolymorphicSerializer<$name>($name::class) {") + appendLine(" override fun selectDeserializer(element: JsonElement): DeserializationStrategy<$name> {") + appendLine(" val json = element.jsonObject") + appendLine(" return when {") + for (updateField in types) { + appendLine(" \"${updateField.serialName}\" in json -> ${updateField.updateTypeName()}.serializer()") + } + // TODO: do not fail here, as new update types may be added in the future, and we want the bot to gracefully ignore them + appendLine(" else -> error(\"Failed to deserialize an update type: \$json\")") + appendLine(" }") + appendLine(" }") + appendLine("}") + } + + private fun generateUnionTypeSourceCode( + name: BotApiElementName, + description: String, + unionTypes: List + ): String = buildString { + + appendLine("/**") + description.split("\n").forEach { + appendLine(" * $it") + } + for (unionType in unionTypes) { + appendLine(" * - [${unionType.name.value}]") + } + appendLine(" */ ") + + val discriminatorFieldNames = unionTypes.mapNotNull { it.getUnionDiscriminatorFieldName() } + .toSet() + + val discriminatorFieldName = when (discriminatorFieldNames.size) { + 0 -> null + 1 -> discriminatorFieldNames.single() + else -> error("Multiple discriminator field names found: $discriminatorFieldNames") + } + + if (discriminatorFieldName == null) { + appendLine("@Serializable(with = ${name}Serializer::class)") + } else { + appendLine("@Serializable") + appendLine("@JsonClassDiscriminator(\"$discriminatorFieldName\")") + } + + appendLine("sealed class ${name.value}") + + if (discriminatorFieldName == null) { + val avoidFields = setOf("description") + val discriminatorFieldByType = unionTypes.associate { unionType -> + val otherFieldNames = unionTypes + .filter { it != unionType } + .flatMap { it.fields ?: emptyList() } + .map { it.serialName } + .toSet() + val discriminatorField = unionType.fields?.find { it.serialName !in otherFieldNames && it.serialName !in avoidFields } + ?: error("Failed to find discriminator field for type ${unionType.name}, with fields: ${unionType.fields?.map { it.serialName }}") + unionType.name to discriminatorField + } + + appendLine() + appendLine("object ${name}Serializer : JsonContentPolymorphicSerializer<$name>($name::class) {") + appendLine(" override fun selectDeserializer(element: JsonElement): DeserializationStrategy<$name> {") + appendLine(" val json = element.jsonObject") + appendLine(" return when {") + for (unionType in unionTypes) { + val discriminatorField = discriminatorFieldByType[unionType.name] + ?: error("Failed to find discriminator field for type ${unionType.name}") + appendLine(" \"${discriminatorField.serialName}\" in json -> ${unionType.name.value}.serializer()") + } + appendLine(" else -> error(\"Failed to deserialize an update type: \$json\")") + appendLine(" }") + appendLine(" }") + appendLine("}") + } + } + + private fun generateContentfulTypeSourceCode( + typeName: BotApiElementName, + description: String, + fields: List, + unionTypeParentByChild: Map + ): String = buildString { + + val sealedParentName = unionTypeParentByChild[typeName] + + // For sealed classes the "type" field will be automatically added by kotlinx.serialization + // See: https://github.com/Kotlin/kotlinx.serialization/blob/master/docs/polymorphism.md#custom-subclass-serial-name + val trueFields = when { + sealedParentName != null && sealedParentName.value !in unionTypesWithExplicitMarker -> { + fields.filterNot { it.isUnionDiscriminator() } + } + + else -> fields + } + + appendLine("/**") + description.split("\n").forEach { + appendLine(" * $it") + } + trueFields.filter { it.description.isNotEmpty() }.forEach { + appendLine(" * @param ${it.name} ${it.description}") + } + appendLine(" */") + appendLine("@Serializable") + if (sealedParentName != null && sealedParentName.value !in unionTypesWithExplicitMarker) { + val markerField = fields.firstOrNull { it.isUnionDiscriminator() } + if (markerField != null) { + val fieldDescription = markerField.description + val unionMarkerValue = unionMarkerValueInDescriptionRe.find(fieldDescription) + ?.groupValues?.get(1) + ?: error("Can't find union marker value for ${typeName.value} in description: '$fieldDescription'") + appendLine("@SerialName(\"${unionMarkerValue}\")") + } + } + + if (trueFields.isEmpty()) { + // https://kotlinlang.org/docs/object-declarations.html#data-objects + append("data object ") + append(typeName.value) + if (sealedParentName != null) { + append(" : ${sealedParentName.value}()") + } + appendLine() + } else { + appendLine("data class ${typeName.value}(") + + for (field in trueFields) { + appendFieldLine(typeName, field, true) + } + + append(")") + if (sealedParentName != null) { + append(" : ${sealedParentName.value}()") + } + appendLine(" {") + appendLine(" ${generateDebugToString(typeName.value, trueFields)}") + appendLine("}") + } + } + + private fun generateDebugToString(typeName: String, fields: List): String = buildString { + append("override fun toString() = DebugStringBuilder(\"$typeName\")") + append(fields.map { it.name }.joinToString("") { ".prop(\"$it\", $it)" }) + append(".toString()") + } + + private fun resolveFieldType(elementType: BotApiElementName, field: BotApiElement.Field): String { + val specType = field.type.value + + valueTypes.find { it.backingType == specType && it.fieldPredicate(elementType, field) }?.let { + return it.name + } + + return specType + } + + private fun StringBuilder.appendFieldLine(elementType: BotApiElementName, field: BotApiElement.Field, isProperty: Boolean) { + appendLine { + append(" ") + if (isProperty) { + append("val ") + } + append(field.name) + append(": ") + val type = resolveFieldType(elementType, field) + append(type) + if (field.isOptional) { + append("?") + } + if (field.defaultValue != null) { + append(" = ${field.defaultValue}") + } + append(",") + } + } + + companion object { + + fun generateFromSpec( + telegramApiHtmlSpec: String, + outputDirectory: File, + packageName: String, + wrapperPackageName: String, + ) { + BotApiGenerator().run( + telegramApiHtmlSpec, + outputDirectory, + packageName, + wrapperPackageName, + ) + } + + @JvmStatic + fun main(args: Array) { + val specFile = args.firstOrNull() + ?: error("Telegram Bot API HTML spec file is not specified as the first argument") + val outputDirectory = args.getOrNull(1) + ?: error("Output directory is not specified as the second argument") + + generateFromSpec( + telegramApiHtmlSpec = File(specFile).readText(), + outputDirectory = File(outputDirectory), + packageName = "me.alllex.tbot.api.model", + wrapperPackageName = "me.alllex.tbot.api.client", + ) + } + } + +} diff --git a/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/util.kt b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/util.kt new file mode 100644 index 0000000..436dcfc --- /dev/null +++ b/buildSrc/src/main/kotlin/me/alllex/tbot/apigen/util.kt @@ -0,0 +1,35 @@ +package me.alllex.tbot.apigen + +import java.util.* + + +/** + * Converts snake_case to camelCase. + */ +fun String.snakeToCamelCase() = + lowercase(Locale.getDefault()) + .split("_") + .let { parts -> + parts.first() + parts.drop(1).joinToString("") { it.toTitleCase() } + } + +/** + * Converts snake_case to SNAKE_CASE. + */ +fun String.snakeToLoudSnakeCase() = uppercase(Locale.getDefault()) + +/** + * Converts snake_case to PascalCase. + */ +fun String.snakeToPascalCase() = snakeToCamelCase().toTitleCase() + +fun String.toTitleCase() = + replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } + +/** + * Runs [block] and appends a new line at the end + */ +inline fun StringBuilder.appendLine(block: StringBuilder.() -> Unit) { + block() + appendLine() +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..5a348b9 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.caching=true +# Publishing and Dokka do not work well with CC +#org.gradle.configuration-cache=true diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..bc6957b --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,45 @@ +[versions] +jdkTarget = "8" +jvmToolchain = "21" +kotlinTarget = "1.9.0" +kotlinPlugin = "1.9.10" +kotlinx-coroutines = "1.6.4" +kotlinx-serialization = "1.5.1" +ktor = "2.3.2" +log4j = "2.20.0" +junit5 = "5.10.0" + +[libraries] +kotlin-test-junit5 = { module = "org.jetbrains.kotlin:kotlin-test-junit5", version.ref = "kotlinPlugin" } + +kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinx-coroutines" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } + +alllex-tbot-api = { module = "me.alllex.telegram.botkit:tbot-api" } # no version, because substituted by an included build + +ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } +ktor-client-java = { module = "io.ktor:ktor-client-java", version.ref = "ktor" } +ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } +ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } +ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } + +slf4j-api = { module = "org.slf4j:slf4j-api", version = "1.7.36" } + +log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" } +log4j-core = { module = "org.apache.logging.log4j:log4j-core", version.ref = "log4j" } +log4j-slf4j-impl = { module = "org.apache.logging.log4j:log4j-slf4j-impl", version.ref = "log4j" } + +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit5" } +assertk-jvm = { module = "com.willowtreeapps.assertk:assertk-jvm", version = "0.26.1" } + +[bundles] +log4j = ["log4j-api", "log4j-core", "log4j-slf4j-impl"] + +[plugins] +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlinPlugin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinPlugin" } +kotlinx-binaryCompatibilityValidator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.13.2" } +dokka = { id = "org.jetbrains.dokka", version = "1.9.0" } +nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version = "1.3.0" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7f93135c49b765f8051ef9d0a6055ff8e46073d8 GIT binary patch literal 63721 zcmb5Wb9gP!wgnp7wrv|bwr$&XvSZt}Z6`anZSUAlc9NHKf9JdJ;NJVr`=eI(_pMp0 zy1VAAG3FfAOI`{X1O)&90s;U4K;XLp008~hCjbEC_fbYfS%6kTR+JtXK>nW$ZR+`W ze|#J8f4A@M|F5BpfUJb5h>|j$jOe}0oE!`Zf6fM>CR?!y@zU(cL8NsKk`a z6tx5mAkdjD;J=LcJ;;Aw8p!v#ouk>mUDZF@ zK>yvw%+bKu+T{Nk@LZ;zkYy0HBKw06_IWcMHo*0HKpTsEFZhn5qCHH9j z)|XpN&{`!0a>Vl+PmdQc)Yg4A(AG-z!+@Q#eHr&g<9D?7E)_aEB?s_rx>UE9TUq|? z;(ggJt>9l?C|zoO@5)tu?EV0x_7T17q4fF-q3{yZ^ipUbKcRZ4Qftd!xO(#UGhb2y>?*@{xq%`(-`2T^vc=#< zx!+@4pRdk&*1ht2OWk^Z5IAQ0YTAXLkL{(D*$gENaD)7A%^XXrCchN&z2x+*>o2FwPFjWpeaL=!tzv#JOW#( z$B)Nel<+$bkH1KZv3&-}=SiG~w2sbDbAWarg%5>YbC|}*d9hBjBkR(@tyM0T)FO$# zPtRXukGPnOd)~z=?avu+4Co@wF}1T)-uh5jI<1$HLtyDrVak{gw`mcH@Q-@wg{v^c zRzu}hMKFHV<8w}o*yg6p@Sq%=gkd~;`_VGTS?L@yVu`xuGy+dH6YOwcP6ZE`_0rK% zAx5!FjDuss`FQ3eF|mhrWkjux(Pny^k$u_)dyCSEbAsecHsq#8B3n3kDU(zW5yE|( zgc>sFQywFj5}U*qtF9Y(bi*;>B7WJykcAXF86@)z|0-Vm@jt!EPoLA6>r)?@DIobIZ5Sx zsc@OC{b|3%vaMbyeM|O^UxEYlEMHK4r)V-{r)_yz`w1*xV0|lh-LQOP`OP`Pk1aW( z8DSlGN>Ts|n*xj+%If~+E_BxK)~5T#w6Q1WEKt{!Xtbd`J;`2a>8boRo;7u2M&iOop4qcy<)z023=oghSFV zST;?S;ye+dRQe>ygiJ6HCv4;~3DHtJ({fWeE~$H@mKn@Oh6Z(_sO>01JwH5oA4nvK zr5Sr^g+LC zLt(i&ecdmqsIJGNOSUyUpglvhhrY8lGkzO=0USEKNL%8zHshS>Qziu|`eyWP^5xL4 zRP122_dCJl>hZc~?58w~>`P_s18VoU|7(|Eit0-lZRgLTZKNq5{k zE?V=`7=R&ro(X%LTS*f+#H-mGo_j3dm@F_krAYegDLk6UV{`UKE;{YSsn$ z(yz{v1@p|p!0>g04!eRSrSVb>MQYPr8_MA|MpoGzqyd*$@4j|)cD_%^Hrd>SorF>@ zBX+V<@vEB5PRLGR(uP9&U&5=(HVc?6B58NJT_igiAH*q~Wb`dDZpJSKfy5#Aag4IX zj~uv74EQ_Q_1qaXWI!7Vf@ZrdUhZFE;L&P_Xr8l@GMkhc#=plV0+g(ki>+7fO%?Jb zl+bTy7q{w^pTb{>(Xf2q1BVdq?#f=!geqssXp z4pMu*q;iiHmA*IjOj4`4S&|8@gSw*^{|PT}Aw~}ZXU`6=vZB=GGeMm}V6W46|pU&58~P+?LUs%n@J}CSrICkeng6YJ^M? zS(W?K4nOtoBe4tvBXs@@`i?4G$S2W&;$z8VBSM;Mn9 zxcaEiQ9=vS|bIJ>*tf9AH~m&U%2+Dim<)E=}KORp+cZ^!@wI`h1NVBXu{@%hB2Cq(dXx_aQ9x3mr*fwL5!ZryQqi|KFJuzvP zK1)nrKZ7U+B{1ZmJub?4)Ln^J6k!i0t~VO#=q1{?T)%OV?MN}k5M{}vjyZu#M0_*u z8jwZKJ#Df~1jcLXZL7bnCEhB6IzQZ-GcoQJ!16I*39iazoVGugcKA{lhiHg4Ta2fD zk1Utyc5%QzZ$s3;p0N+N8VX{sd!~l*Ta3|t>lhI&G`sr6L~G5Lul`>m z{!^INm?J|&7X=;{XveF!(b*=?9NAp4y&r&N3(GKcW4rS(Ejk|Lzs1PrxPI_owB-`H zg3(Rruh^&)`TKA6+_!n>RdI6pw>Vt1_j&+bKIaMTYLiqhZ#y_=J8`TK{Jd<7l9&sY z^^`hmi7^14s16B6)1O;vJWOF$=$B5ONW;;2&|pUvJlmeUS&F;DbSHCrEb0QBDR|my zIs+pE0Y^`qJTyH-_mP=)Y+u^LHcuZhsM3+P||?+W#V!_6E-8boP#R-*na4!o-Q1 zVthtYhK{mDhF(&7Okzo9dTi03X(AE{8cH$JIg%MEQca`S zy@8{Fjft~~BdzWC(di#X{ny;!yYGK9b@=b|zcKZ{vv4D8i+`ilOPl;PJl{!&5-0!w z^fOl#|}vVg%=n)@_e1BrP)`A zKPgs`O0EO}Y2KWLuo`iGaKu1k#YR6BMySxQf2V++Wo{6EHmK>A~Q5o73yM z-RbxC7Qdh0Cz!nG+7BRZE>~FLI-?&W_rJUl-8FDIaXoNBL)@1hwKa^wOr1($*5h~T zF;%f^%<$p8Y_yu(JEg=c_O!aZ#)Gjh$n(hfJAp$C2he555W5zdrBqjFmo|VY+el;o z=*D_w|GXG|p0**hQ7~9-n|y5k%B}TAF0iarDM!q-jYbR^us(>&y;n^2l0C%@2B}KM zyeRT9)oMt97Agvc4sEKUEy%MpXr2vz*lb zh*L}}iG>-pqDRw7ud{=FvTD?}xjD)w{`KzjNom-$jS^;iw0+7nXSnt1R@G|VqoRhE%12nm+PH?9`(4rM0kfrZzIK9JU=^$YNyLvAIoxl#Q)xxDz!^0@zZ zSCs$nfcxK_vRYM34O<1}QHZ|hp4`ioX3x8(UV(FU$J@o%tw3t4k1QPmlEpZa2IujG&(roX_q*%e`Hq|);0;@k z0z=fZiFckp#JzW0p+2A+D$PC~IsakhJJkG(c;CqAgFfU0Z`u$PzG~-9I1oPHrCw&)@s^Dc~^)#HPW0Ra}J^=|h7Fs*<8|b13ZzG6MP*Q1dkoZ6&A^!}|hbjM{2HpqlSXv_UUg1U4gn z3Q)2VjU^ti1myodv+tjhSZp%D978m~p& z43uZUrraHs80Mq&vcetqfQpQP?m!CFj)44t8Z}k`E798wxg&~aCm+DBoI+nKq}&j^ zlPY3W$)K;KtEajks1`G?-@me7C>{PiiBu+41#yU_c(dITaqE?IQ(DBu+c^Ux!>pCj zLC|HJGU*v+!it1(;3e`6igkH(VA)-S+k(*yqxMgUah3$@C zz`7hEM47xr>j8^g`%*f=6S5n>z%Bt_Fg{Tvmr+MIsCx=0gsu_sF`q2hlkEmisz#Fy zj_0;zUWr;Gz}$BS%Y`meb(=$d%@Crs(OoJ|}m#<7=-A~PQbyN$x%2iXP2@e*nO0b7AwfH8cCUa*Wfu@b)D_>I*%uE4O3 z(lfnB`-Xf*LfC)E}e?%X2kK7DItK6Tf<+M^mX0Ijf_!IP>7c8IZX%8_#0060P{QMuV^B9i<^E`_Qf0pv9(P%_s8D`qvDE9LK9u-jB}J2S`(mCO&XHTS04Z5Ez*vl^T%!^$~EH8M-UdwhegL>3IQ*)(MtuH2Xt1p!fS4o~*rR?WLxlA!sjc2(O znjJn~wQ!Fp9s2e^IWP1C<4%sFF}T4omr}7+4asciyo3DntTgWIzhQpQirM$9{EbQd z3jz9vS@{aOqTQHI|l#aUV@2Q^Wko4T0T04Me4!2nsdrA8QY1%fnAYb~d2GDz@lAtfcHq(P7 zaMBAGo}+NcE-K*@9y;Vt3*(aCaMKXBB*BJcD_Qnxpt75r?GeAQ}*|>pYJE=uZb73 zC>sv)18)q#EGrTG6io*}JLuB_jP3AU1Uiu$D7r|2_zlIGb9 zjhst#ni)Y`$)!fc#reM*$~iaYoz~_Cy7J3ZTiPm)E?%`fbk`3Tu-F#`{i!l5pNEn5 zO-Tw-=TojYhzT{J=?SZj=Z8#|eoF>434b-DXiUsignxXNaR3 zm_}4iWU$gt2Mw5NvZ5(VpF`?X*f2UZDs1TEa1oZCif?Jdgr{>O~7}-$|BZ7I(IKW`{f;@|IZFX*R8&iT= zoWstN8&R;}@2Ka%d3vrLtR|O??ben;k8QbS-WB0VgiCz;<$pBmIZdN!aalyCSEm)crpS9dcD^Y@XT1a3+zpi-`D}e#HV<} z$Y(G&o~PvL-xSVD5D?JqF3?B9rxGWeb=oEGJ3vRp5xfBPlngh1O$yI95EL+T8{GC@ z98i1H9KhZGFl|;`)_=QpM6H?eDPpw~^(aFQWwyXZ8_EEE4#@QeT_URray*mEOGsGc z6|sdXtq!hVZo=d#+9^@lm&L5|q&-GDCyUx#YQiccq;spOBe3V+VKdjJA=IL=Zn%P} zNk=_8u}VhzFf{UYZV0`lUwcD&)9AFx0@Fc6LD9A6Rd1=ga>Mi0)_QxM2ddCVRmZ0d z+J=uXc(?5JLX3=)e)Jm$HS2yF`44IKhwRnm2*669_J=2LlwuF5$1tAo@ROSU@-y+;Foy2IEl2^V1N;fk~YR z?&EP8#t&m0B=?aJeuz~lHjAzRBX>&x=A;gIvb>MD{XEV zV%l-+9N-)i;YH%nKP?>f`=?#`>B(`*t`aiPLoQM(a6(qs4p5KFjDBN?8JGrf3z8>= zi7sD)c)Nm~x{e<^jy4nTx${P~cwz_*a>%0_;ULou3kHCAD7EYkw@l$8TN#LO9jC( z1BeFW`k+bu5e8Ns^a8dPcjEVHM;r6UX+cN=Uy7HU)j-myRU0wHd$A1fNI~`4;I~`zC)3ul#8#^rXVSO*m}Ag>c%_;nj=Nv$rCZ z*~L@C@OZg%Q^m)lc-kcX&a*a5`y&DaRxh6O*dfhLfF+fU5wKs(1v*!TkZidw*)YBP za@r`3+^IHRFeO%!ai%rxy;R;;V^Fr=OJlpBX;(b*3+SIw}7= zIq$*Thr(Zft-RlY)D3e8V;BmD&HOfX+E$H#Y@B3?UL5L~_fA-@*IB-!gItK7PIgG9 zgWuGZK_nuZjHVT_Fv(XxtU%)58;W39vzTI2n&)&4Dmq7&JX6G>XFaAR{7_3QB6zsT z?$L8c*WdN~nZGiscY%5KljQARN;`w$gho=p006z;n(qIQ*Zu<``TMO3n0{ARL@gYh zoRwS*|Niw~cR!?hE{m*y@F`1)vx-JRfqET=dJ5_(076st(=lFfjtKHoYg`k3oNmo_ zNbQEw8&sO5jAYmkD|Zaz_yUb0rC})U!rCHOl}JhbYIDLzLvrZVw0~JO`d*6f;X&?V=#T@ND*cv^I;`sFeq4 z##H5;gpZTb^0Hz@3C*~u0AqqNZ-r%rN3KD~%Gw`0XsIq$(^MEb<~H(2*5G^<2(*aI z%7}WB+TRlMIrEK#s0 z93xn*Ohb=kWFc)BNHG4I(~RPn-R8#0lqyBBz5OM6o5|>x9LK@%HaM}}Y5goCQRt2C z{j*2TtT4ne!Z}vh89mjwiSXG=%DURar~=kGNNaO_+Nkb+tRi~Rkf!7a$*QlavziD( z83s4GmQ^Wf*0Bd04f#0HX@ua_d8 z23~z*53ePD6@xwZ(vdl0DLc=>cPIOPOdca&MyR^jhhKrdQO?_jJh`xV3GKz&2lvP8 zEOwW6L*ufvK;TN{=S&R@pzV^U=QNk^Ec}5H z+2~JvEVA{`uMAr)?Kf|aW>33`)UL@bnfIUQc~L;TsTQ6>r-<^rB8uoNOJ>HWgqMI8 zSW}pZmp_;z_2O5_RD|fGyTxaxk53Hg_3Khc<8AUzV|ZeK{fp|Ne933=1&_^Dbv5^u zB9n=*)k*tjHDRJ@$bp9mrh}qFn*s}npMl5BMDC%Hs0M0g-hW~P*3CNG06G!MOPEQ_ zi}Qs-6M8aMt;sL$vlmVBR^+Ry<64jrm1EI1%#j?c?4b*7>)a{aDw#TfTYKq+SjEFA z(aJ&z_0?0JB83D-i3Vh+o|XV4UP+YJ$9Boid2^M2en@APw&wx7vU~t$r2V`F|7Qfo z>WKgI@eNBZ-+Og<{u2ZiG%>YvH2L3fNpV9J;WLJoBZda)01Rn;o@){01{7E#ke(7U zHK>S#qZ(N=aoae*4X!0A{)nu0R_sKpi1{)u>GVjC+b5Jyl6#AoQ-1_3UDovNSo`T> z?c-@7XX*2GMy?k?{g)7?Sv;SJkmxYPJPs!&QqB12ejq`Lee^-cDveVWL^CTUldb(G zjDGe(O4P=S{4fF=#~oAu>LG>wrU^z_?3yt24FOx>}{^lCGh8?vtvY$^hbZ)9I0E3r3NOlb9I?F-Yc=r$*~l`4N^xzlV~N zl~#oc>U)Yjl0BxV>O*Kr@lKT{Z09OXt2GlvE38nfs+DD7exl|&vT;)>VFXJVZp9Np zDK}aO;R3~ag$X*|hRVY3OPax|PG`@_ESc8E!mHRByJbZQRS38V2F__7MW~sgh!a>98Q2%lUNFO=^xU52|?D=IK#QjwBky-C>zOWlsiiM&1n z;!&1((Xn1$9K}xabq~222gYvx3hnZPg}VMF_GV~5ocE=-v>V=T&RsLBo&`)DOyIj* zLV{h)JU_y*7SdRtDajP_Y+rBkNN*1_TXiKwHH2&p51d(#zv~s#HwbNy?<+(=9WBvo zw2hkk2Dj%kTFhY+$T+W-b7@qD!bkfN#Z2ng@Pd=i3-i?xYfs5Z*1hO?kd7Sp^9`;Y zM2jeGg<-nJD1er@Pc_cSY7wo5dzQX44=%6rn}P_SRbpzsA{6B+!$3B0#;}qwO37G^ zL(V_5JK`XT?OHVk|{_$vQ|oNEpab*BO4F zUTNQ7RUhnRsU`TK#~`)$icsvKh~(pl=3p6m98@k3P#~upd=k*u20SNcb{l^1rUa)>qO997)pYRWMncC8A&&MHlbW?7i^7M`+B$hH~Y|J zd>FYOGQ;j>Zc2e7R{KK7)0>>nn_jYJy&o@sK!4G>-rLKM8Hv)f;hi1D2fAc$+six2 zyVZ@wZ6x|fJ!4KrpCJY=!Mq0;)X)OoS~{Lkh6u8J`eK%u0WtKh6B>GW_)PVc zl}-k`p09qwGtZ@VbYJC!>29V?Dr>>vk?)o(x?!z*9DJ||9qG-&G~#kXxbw{KKYy}J zQKa-dPt~M~E}V?PhW0R26xdA%1T*%ra6SguGu50YHngOTIv)@N|YttEXo#OZfgtP7;H?EeZZxo<}3YlYxtBq znJ!WFR^tmGf0Py}N?kZ(#=VtpC@%xJkDmfcCoBTxq zr_|5gP?u1@vJZbxPZ|G0AW4=tpb84gM2DpJU||(b8kMOV1S3|(yuwZJ&rIiFW(U;5 zUtAW`O6F6Zy+eZ1EDuP~AAHlSY-+A_eI5Gx)%*uro5tljy}kCZU*_d7)oJ>oQSZ3* zneTn`{gnNC&uJd)0aMBzAg021?YJ~b(fmkwZAd696a=0NzBAqBN54KuNDwa*no(^O z6p05bioXUR^uXjpTol*ppHp%1v9e)vkoUAUJyBx3lw0UO39b0?^{}yb!$yca(@DUn zCquRF?t=Zb9`Ed3AI6|L{eX~ijVH`VzSMheKoP7LSSf4g>md>`yi!TkoG5P>Ofp+n z(v~rW+(5L96L{vBb^g51B=(o)?%%xhvT*A5btOpw(TKh^g^4c zw>0%X!_0`{iN%RbVk+A^f{w-4-SSf*fu@FhruNL##F~sF24O~u zyYF<3el2b$$wZ_|uW#@Ak+VAGk#e|kS8nL1g>2B-SNMjMp^8;-FfeofY2fphFHO!{ z*!o4oTb{4e;S<|JEs<1_hPsmAlVNk?_5-Fp5KKU&d#FiNW~Y+pVFk@Cua1I{T+1|+ zHx6rFMor)7L)krbilqsWwy@T+g3DiH5MyVf8Wy}XbEaoFIDr~y;@r&I>FMW{ z?Q+(IgyebZ)-i4jNoXQhq4Muy9Fv+OxU;9_Jmn+<`mEC#%2Q_2bpcgzcinygNI!&^ z=V$)o2&Yz04~+&pPWWn`rrWxJ&}8khR)6B(--!9Q zubo}h+1T)>a@c)H^i``@<^j?|r4*{;tQf78(xn0g39IoZw0(CwY1f<%F>kEaJ zp9u|IeMY5mRdAlw*+gSN^5$Q)ShM<~E=(c8QM+T-Qk)FyKz#Sw0EJ*edYcuOtO#~Cx^(M7w5 z3)rl#L)rF|(Vun2LkFr!rg8Q@=r>9p>(t3Gf_auiJ2Xx9HmxYTa|=MH_SUlYL`mz9 zTTS$`%;D-|Jt}AP1&k7PcnfFNTH0A-*FmxstjBDiZX?}%u%Yq94$fUT&z6od+(Uk> zuqsld#G(b$G8tus=M!N#oPd|PVFX)?M?tCD0tS%2IGTfh}3YA3f&UM)W$_GNV8 zQo+a(ml2Km4o6O%gKTCSDNq+#zCTIQ1*`TIJh~k6Gp;htHBFnne))rlFdGqwC6dx2+La1&Mnko*352k0y z+tQcwndQlX`nc6nb$A9?<-o|r*%aWXV#=6PQic0Ok_D;q>wbv&j7cKc!w4~KF#-{6 z(S%6Za)WpGIWf7jZ3svNG5OLs0>vCL9{V7cgO%zevIVMH{WgP*^D9ws&OqA{yr|m| zKD4*07dGXshJHd#e%x%J+qmS^lS|0Bp?{drv;{@{l9ArPO&?Q5=?OO9=}h$oVe#3b z3Yofj&Cb}WC$PxmRRS)H%&$1-)z7jELS}!u!zQ?A^Y{Tv4QVt*vd@uj-^t2fYRzQj zfxGR>-q|o$3sGn^#VzZ!QQx?h9`njeJry}@x?|k0-GTTA4y3t2E`3DZ!A~D?GiJup z)8%PK2^9OVRlP(24P^4_<|D=H^7}WlWu#LgsdHzB%cPy|f8dD3|A^mh4WXxhLTVu_ z@abE{6Saz|Y{rXYPd4$tfPYo}ef(oQWZ=4Bct-=_9`#Qgp4ma$n$`tOwq#&E18$B; z@Bp)bn3&rEi0>fWWZ@7k5WazfoX`SCO4jQWwVuo+$PmSZn^Hz?O(-tW@*DGxuf)V1 zO_xm&;NVCaHD4dqt(-MlszI3F-p?0!-e$fbiCeuaw66h^TTDLWuaV<@C-`=Xe5WL) zwooG7h>4&*)p3pKMS3O!4>-4jQUN}iAMQ)2*70?hP~)TzzR?-f@?Aqy$$1Iy8VGG$ zMM?8;j!pUX7QQD$gRc_#+=raAS577ga-w?jd`vCiN5lu)dEUkkUPl9!?{$IJNxQys z*E4e$eF&n&+AMRQR2gcaFEjAy*r)G!s(P6D&TfoApMFC_*Ftx0|D0@E-=B7tezU@d zZ{hGiN;YLIoSeRS;9o%dEua4b%4R3;$SugDjP$x;Z!M!@QibuSBb)HY!3zJ7M;^jw zlx6AD50FD&p3JyP*>o+t9YWW8(7P2t!VQQ21pHJOcG_SXQD;(5aX#M6x##5H_Re>6lPyDCjxr*R(+HE%c&QN+b^tbT zXBJk?p)zhJj#I?&Y2n&~XiytG9!1ox;bw5Rbj~)7c(MFBb4>IiRATdhg zmiEFlj@S_hwYYI(ki{}&<;_7(Z0Qkfq>am z&LtL=2qc7rWguk3BtE4zL41@#S;NN*-jWw|7Kx7H7~_%7fPt;TIX}Ubo>;Rmj94V> zNB1=;-9AR7s`Pxn}t_6^3ahlq53e&!Lh85uG zec0vJY_6e`tg7LgfrJ3k!DjR)Bi#L@DHIrZ`sK=<5O0Ip!fxGf*OgGSpP@Hbbe&$9 z;ZI}8lEoC2_7;%L2=w?tb%1oL0V+=Z`7b=P&lNGY;yVBazXRYu;+cQDKvm*7NCxu&i;zub zAJh#11%?w>E2rf2e~C4+rAb-&$^vsdACs7 z@|Ra!OfVM(ke{vyiqh7puf&Yp6cd6{DptUteYfIRWG3pI+5< zBVBI_xkBAc<(pcb$!Y%dTW(b;B;2pOI-(QCsLv@U-D1XJ z(Gk8Q3l7Ws46Aktuj>|s{$6zA&xCPuXL-kB`CgYMs}4IeyG*P51IDwW?8UNQd+$i~ zlxOPtSi5L|gJcF@DwmJA5Ju8HEJ>o{{upwIpb!f{2(vLNBw`7xMbvcw<^{Fj@E~1( z?w`iIMieunS#>nXlmUcSMU+D3rX28f?s7z;X=se6bo8;5vM|O^(D6{A9*ChnGH!RG zP##3>LDC3jZPE4PH32AxrqPk|yIIrq~`aL-=}`okhNu9aT%q z1b)7iJ)CN=V#Ly84N_r7U^SH2FGdE5FpTO2 z630TF$P>GNMu8`rOytb(lB2};`;P4YNwW1<5d3Q~AX#P0aX}R2b2)`rgkp#zTxcGj zAV^cvFbhP|JgWrq_e`~exr~sIR$6p5V?o4Wym3kQ3HA+;Pr$bQ0(PmADVO%MKL!^q z?zAM8j1l4jrq|5X+V!8S*2Wl@=7*pPgciTVK6kS1Ge zMsd_u6DFK$jTnvVtE;qa+8(1sGBu~n&F%dh(&c(Zs4Fc#A=gG^^%^AyH}1^?|8quj zl@Z47h$){PlELJgYZCIHHL= z{U8O>Tw4x3<1{?$8>k-P<}1y9DmAZP_;(3Y*{Sk^H^A=_iSJ@+s5ktgwTXz_2$~W9>VVZsfwCm@s0sQ zeB50_yu@uS+e7QoPvdCwDz{prjo(AFwR%C?z`EL{1`|coJHQTk^nX=tvs1<0arUOJ z!^`*x&&BvTYmemyZ)2p~{%eYX=JVR?DYr(rNgqRMA5E1PR1Iw=prk=L2ldy3r3Vg@27IZx43+ywyzr-X*p*d@tZV+!U#~$-q=8c zgdSuh#r?b4GhEGNai)ayHQpk>5(%j5c@C1K3(W1pb~HeHpaqijJZa-e6vq_8t-^M^ zBJxq|MqZc?pjXPIH}70a5vt!IUh;l}<>VX<-Qcv^u@5(@@M2CHSe_hD$VG-eiV^V( zj7*9T0?di?P$FaD6oo?)<)QT>Npf6Og!GO^GmPV(Km0!=+dE&bk#SNI+C9RGQ|{~O*VC+tXK3!n`5 zHfl6>lwf_aEVV3`0T!aHNZLsj$paS$=LL(?b!Czaa5bbSuZ6#$_@LK<(7yrrl+80| z{tOFd=|ta2Z`^ssozD9BINn45NxUeCQis?-BKmU*Kt=FY-NJ+)8S1ecuFtN-M?&42 zl2$G>u!iNhAk*HoJ^4v^9#ORYp5t^wDj6|lx~5w45#E5wVqI1JQ~9l?nPp1YINf++ zMAdSif~_ETv@Er(EFBI^@L4BULFW>)NI+ejHFP*T}UhWNN`I)RRS8za? z*@`1>9ZB}An%aT5K=_2iQmfE;GcBVHLF!$`I99o5GO`O%O_zLr9AG18>&^HkG(;=V z%}c!OBQ~?MX(9h~tajX{=x)+!cbM7$YzTlmsPOdp2L-?GoW`@{lY9U3f;OUo*BwRB z8A+nv(br0-SH#VxGy#ZrgnGD(=@;HME;yd46EgWJ`EL%oXc&lFpc@Y}^>G(W>h_v_ zlN!`idhX+OjL+~T?19sroAFVGfa5tX-D49w$1g2g_-T|EpHL6}K_aX4$K=LTvwtlF zL*z}j{f+Uoe7{-px3_5iKPA<_7W=>Izkk)!l9ez2w%vi(?Y;i8AxRNLSOGDzNoqoI zP!1uAl}r=_871(G?y`i&)-7{u=%nxk7CZ_Qh#!|ITec zwQn`33GTUM`;D2POWnkqngqJhJRlM>CTONzTG}>^Q0wUunQyn|TAiHzyX2_%ATx%P z%7gW)%4rA9^)M<_%k@`Y?RbC<29sWU&5;@|9thf2#zf8z12$hRcZ!CSb>kUp=4N#y zl3hE#y6>kkA8VY2`W`g5Ip?2qC_BY$>R`iGQLhz2-S>x(RuWv)SPaGdl^)gGw7tjR zH@;jwk!jIaCgSg_*9iF|a);sRUTq30(8I(obh^|}S~}P4U^BIGYqcz;MPpC~Y@k_m zaw4WG1_vz2GdCAX!$_a%GHK**@IrHSkGoN>)e}>yzUTm52on`hYot7cB=oA-h1u|R ztH$11t?54Qg2L+i33FPFKKRm1aOjKST{l1*(nps`>sv%VqeVMWjl5+Gh+9);hIP8? zA@$?}Sc z3qIRpba+y5yf{R6G(u8Z^vkg0Fu&D-7?1s=QZU`Ub{-!Y`I?AGf1VNuc^L3v>)>i# z{DV9W$)>34wnzAXUiV^ZpYKw>UElrN_5Xj6{r_3| z$X5PK`e5$7>~9Dj7gK5ash(dvs`vwfk}&RD`>04;j62zoXESkFBklYaKm5seyiX(P zqQ-;XxlV*yg?Dhlx%xt!b0N3GHp@(p$A;8|%# zZ5m2KL|{on4nr>2_s9Yh=r5ScQ0;aMF)G$-9-Ca6%wA`Pa)i?NGFA|#Yi?{X-4ZO_ z^}%7%vkzvUHa$-^Y#aA+aiR5sa%S|Ebyn`EV<3Pc?ax_f>@sBZF1S;7y$CXd5t5=WGsTKBk8$OfH4v|0?0I=Yp}7c=WBSCg!{0n)XmiU;lfx)**zZaYqmDJelxk$)nZyx5`x$6R|fz(;u zEje5Dtm|a%zK!!tk3{i9$I2b{vXNFy%Bf{50X!x{98+BsDr_u9i>G5%*sqEX|06J0 z^IY{UcEbj6LDwuMh7cH`H@9sVt1l1#8kEQ(LyT@&+K}(ReE`ux8gb0r6L_#bDUo^P z3Ka2lRo52Hdtl_%+pwVs14=q`{d^L58PsU@AMf(hENumaxM{7iAT5sYmWh@hQCO^ zK&}ijo=`VqZ#a3vE?`7QW0ZREL17ZvDfdqKGD?0D4fg{7v%|Yj&_jcKJAB)>=*RS* zto8p6@k%;&^ZF>hvXm&$PCuEp{uqw3VPG$9VMdW5$w-fy2CNNT>E;>ejBgy-m_6`& z97L1p{%srn@O_JQgFpa_#f(_)eb#YS>o>q3(*uB;uZb605(iqM$=NK{nHY=+X2*G) zO3-_Xh%aG}fHWe*==58zBwp%&`mge<8uq8;xIxOd=P%9EK!34^E9sk|(Zq1QSz-JVeP12Fp)-`F|KY$LPwUE?rku zY@OJ)Z9A!ojfzfeyJ9;zv2EM7ZQB)AR5xGa-tMn^bl)FmoIiVyJ@!~@%{}qXXD&Ns zPnfe5U+&ohKefILu_1mPfLGuapX@btta5C#gPB2cjk5m4T}Nfi+Vfka!Yd(L?-c~5 z#ZK4VeQEXNPc4r$K00Fg>g#_W!YZ)cJ?JTS<&68_$#cZT-ME`}tcwqg3#``3M3UPvn+pi}(VNNx6y zFIMVb6OwYU(2`at$gHba*qrMVUl8xk5z-z~fb@Q3Y_+aXuEKH}L+>eW__!IAd@V}L zkw#s%H0v2k5-=vh$^vPCuAi22Luu3uKTf6fPo?*nvj$9(u)4$6tvF-%IM+3pt*cgs z_?wW}J7VAA{_~!?))?s6{M=KPpVhg4fNuU*|3THp@_(q!b*hdl{fjRVFWtu^1dV(f z6iOux9hi&+UK=|%M*~|aqFK{Urfl!TA}UWY#`w(0P!KMe1Si{8|o))Gy6d7;!JQYhgMYmXl?3FfOM2nQGN@~Ap6(G z3+d_5y@=nkpKAhRqf{qQ~k7Z$v&l&@m7Ppt#FSNzKPZM z8LhihcE6i=<(#87E|Wr~HKvVWhkll4iSK$^mUHaxgy8*K$_Zj;zJ`L$naPj+^3zTi z-3NTaaKnD5FPY-~?Tq6QHnmDDRxu0mh0D|zD~Y=vv_qig5r-cIbCpxlju&8Sya)@{ zsmv6XUSi)@(?PvItkiZEeN*)AE~I_?#+Ja-r8$(XiXei2d@Hi7Rx8+rZZb?ZLa{;@*EHeRQ-YDadz~M*YCM4&F-r;E#M+@CSJMJ0oU|PQ^ z=E!HBJDMQ2TN*Y(Ag(ynAL8%^v;=~q?s4plA_hig&5Z0x_^Oab!T)@6kRN$)qEJ6E zNuQjg|G7iwU(N8pI@_6==0CL;lRh1dQF#wePhmu@hADFd3B5KIH#dx(2A zp~K&;Xw}F_N6CU~0)QpQk7s$a+LcTOj1%=WXI(U=Dv!6 z{#<#-)2+gCyyv=Jw?Ab#PVkxPDeH|sAxyG`|Ys}A$PW4TdBv%zDz z^?lwrxWR<%Vzc8Sgt|?FL6ej_*e&rhqJZ3Y>k=X(^dytycR;XDU16}Pc9Vn0>_@H+ zQ;a`GSMEG64=JRAOg%~L)x*w{2re6DVprNp+FcNra4VdNjiaF0M^*>CdPkt(m150rCue?FVdL0nFL$V%5y6N z%eLr5%YN7D06k5ji5*p4v$UMM)G??Q%RB27IvH7vYr_^3>1D-M66#MN8tWGw>WED} z5AhlsanO=STFYFs)Il_0i)l)f<8qn|$DW7ZXhf5xI;m+7M5-%P63XFQrG9>DMqHc} zsgNU9nR`b}E^mL5=@7<1_R~j@q_2U^3h|+`7YH-?C=vme1C3m`Fe0HC>pjt6f_XMh zy~-i-8R46QNYneL4t@)<0VU7({aUO?aH`z4V2+kxgH5pYD5)wCh75JqQY)jIPN=U6 z+qi8cGiOtXG2tXm;_CfpH9ESCz#i5B(42}rBJJF$jh<1sbpj^8&L;gzGHb8M{of+} zzF^8VgML2O9nxBW7AvdEt90vp+#kZxWf@A)o9f9}vKJy9NDBjBW zSt=Hcs=YWCwnfY1UYx*+msp{g!w0HC<_SM!VL1(I2PE?CS}r(eh?{I)mQixmo5^p# zV?2R!R@3GV6hwTCrfHiK#3Orj>I!GS2kYhk1S;aFBD_}u2v;0HYFq}Iz1Z(I4oca4 zxquja8$+8JW_EagDHf$a1OTk5S97umGSDaj)gH=fLs9>_=XvVj^Xj9a#gLdk=&3tl zfmK9MNnIX9v{?%xdw7568 zNrZ|roYs(vC4pHB5RJ8>)^*OuyNC>x7ad)tB_}3SgQ96+-JT^Qi<`xi=)_=$Skwv~ zdqeT9Pa`LYvCAn&rMa2aCDV(TMI#PA5g#RtV|CWpgDYRA^|55LLN^uNh*gOU>Z=a06qJ;$C9z8;n-Pq=qZnc1zUwJ@t)L;&NN+E5m zRkQ(SeM8=l-aoAKGKD>!@?mWTW&~)uF2PYUJ;tB^my`r9n|Ly~0c%diYzqs9W#FTjy?h&X3TnH zXqA{QI82sdjPO->f=^K^f>N`+B`q9&rN0bOXO79S&a9XX8zund(kW7O76f4dcWhIu zER`XSMSFbSL>b;Rp#`CuGJ&p$s~G|76){d?xSA5wVg##_O0DrmyEYppyBr%fyWbbv zp`K84JwRNP$d-pJ!Qk|(RMr?*!wi1if-9G#0p>>1QXKXWFy)eB3ai)l3601q8!9JC zvU#ZWWDNKq9g6fYs?JQ)Q4C_cgTy3FhgKb8s&m)DdmL5zhNK#8wWg!J*7G7Qhe9VU zha?^AQTDpYcuN!B+#1dE*X{<#!M%zfUQbj=zLE{dW0XeQ7-oIsGY6RbkP2re@Q{}r_$iiH0xU%iN*ST`A)-EH6eaZB$GA#v)cLi z*MpA(3bYk$oBDKAzu^kJoSUsDd|856DApz={3u8sbQV@JnRkp2nC|)m;#T=DvIL-O zI4vh;g7824l}*`_p@MT4+d`JZ2%6NQh=N9bmgJ#q!hK@_<`HQq3}Z8Ij>3%~<*= zcv=!oT#5xmeGI92lqm9sGVE%#X$ls;St|F#u!?5Y7syhx6q#MVRa&lBmmn%$C0QzU z);*ldgwwCmzM3uglr}!Z2G+?& zf%Dpo&mD%2ZcNFiN-Z0f;c_Q;A%f@>26f?{d1kxIJD}LxsQkB47SAdwinfMILZdN3 zfj^HmTzS3Ku5BxY>ANutS8WPQ-G>v4^_Qndy==P3pDm+Xc?>rUHl-4+^%Sp5atOja z2oP}ftw-rqnb}+khR3CrRg^ibi6?QYk1*i^;kQGirQ=uB9Sd1NTfT-Rbv;hqnY4neE5H1YUrjS2m+2&@uXiAo- zrKUX|Ohg7(6F(AoP~tj;NZlV#xsfo-5reuQHB$&EIAhyZk;bL;k9ouDmJNBAun;H& zn;Of1z_Qj`x&M;5X;{s~iGzBQTY^kv-k{ksbE*Dl%Qf%N@hQCfY~iUw!=F-*$cpf2 z3wix|aLBV0b;W@z^%7S{>9Z^T^fLOI68_;l@+Qzaxo`nAI8emTV@rRhEKZ z?*z_{oGdI~R*#<2{bkz$G~^Qef}$*4OYTgtL$e9q!FY7EqxJ2`zk6SQc}M(k(_MaV zSLJnTXw&@djco1~a(vhBl^&w=$fa9{Sru>7g8SHahv$&Bl(D@(Zwxo_3r=;VH|uc5 zi1Ny)J!<(KN-EcQ(xlw%PNwK8U>4$9nVOhj(y0l9X^vP1TA>r_7WtSExIOsz`nDOP zs}d>Vxb2Vo2e5x8p(n~Y5ggAyvib>d)6?)|E@{FIz?G3PVGLf7-;BxaP;c?7ddH$z zA+{~k^V=bZuXafOv!RPsE1GrR3J2TH9uB=Z67gok+u`V#}BR86hB1xl}H4v`F+mRfr zYhortD%@IGfh!JB(NUNSDh+qDz?4ztEgCz&bIG-Wg7w-ua4ChgQR_c+z8dT3<1?uX z*G(DKy_LTl*Ea!%v!RhpCXW1WJO6F`bgS-SB;Xw9#! z<*K}=#wVu9$`Yo|e!z-CPYH!nj7s9dEPr-E`DXUBu0n!xX~&|%#G=BeM?X@shQQMf zMvr2!y7p_gD5-!Lnm|a@z8Of^EKboZsTMk%5VsJEm>VsJ4W7Kv{<|#4f-qDE$D-W>gWT%z-!qXnDHhOvLk=?^a1*|0j z{pW{M0{#1VcR5;F!!fIlLVNh_Gj zbnW(_j?0c2q$EHIi@fSMR{OUKBcLr{Y&$hrM8XhPByyZaXy|dd&{hYQRJ9@Fn%h3p7*VQolBIV@Eq`=y%5BU~3RPa^$a?ixp^cCg z+}Q*X+CW9~TL29@OOng(#OAOd!)e$d%sr}^KBJ-?-X&|4HTmtemxmp?cT3uA?md4% zT8yZ0U;6Rg6JHy3fJae{6TMGS?ZUX6+gGTT{Q{)SI85$5FD{g-eR%O0KMpWPY`4@O zx!hen1*8^E(*}{m^V_?}(b5k3hYo=T+$&M32+B`}81~KKZhY;2H{7O-M@vbCzuX0n zW-&HXeyr1%I3$@ns-V1~Lb@wIpkmx|8I~ob1Of7i6BTNysEwI}=!nU%q7(V_^+d*G z7G;07m(CRTJup!`cdYi93r^+LY+`M*>aMuHJm(A8_O8C#A*$!Xvddgpjx5)?_EB*q zgE8o5O>e~9IiSC@WtZpF{4Bj2J5eZ>uUzY%TgWF7wdDE!fSQIAWCP)V{;HsU3ap?4 znRsiiDbtN7i9hapO;(|Ew>Ip2TZSvK9Z^N21%J?OiA_&eP1{(Pu_=%JjKy|HOardq ze?zK^K zA%sjF64*Wufad%H<) z^|t>e*h+Z1#l=5wHexzt9HNDNXgM=-OPWKd^5p!~%SIl>Fo&7BvNpbf8{NXmH)o{r zO=aBJ;meX1^{O%q;kqdw*5k!Y7%t_30 zy{nGRVc&5qt?dBwLs+^Sfp;f`YVMSB#C>z^a9@fpZ!xb|b-JEz1LBX7ci)V@W+kvQ89KWA0T~Lj$aCcfW#nD5bt&Y_< z-q{4ZXDqVg?|0o)j1%l0^_it0WF*LCn-+)c!2y5yS7aZIN$>0LqNnkujV*YVes(v$ zY@_-!Q;!ZyJ}Bg|G-~w@or&u0RO?vlt5*9~yeoPV_UWrO2J54b4#{D(D>jF(R88u2 zo#B^@iF_%S>{iXSol8jpmsZuJ?+;epg>k=$d`?GSegAVp3n$`GVDvK${N*#L_1`44 z{w0fL{2%)0|E+qgZtjX}itZz^KJt4Y;*8uSK}Ft38+3>j|K(PxIXXR-t4VopXo#9# zt|F{LWr-?34y`$nLBVV_*UEgA6AUI65dYIbqpNq9cl&uLJ0~L}<=ESlOm?Y-S@L*d z<7vt}`)TW#f%Rp$Q}6@3=j$7Tze@_uZO@aMn<|si{?S}~maII`VTjs&?}jQ4_cut9$)PEqMukwoXobzaKx^MV z2fQwl+;LSZ$qy%Tys0oo^K=jOw$!YwCv^ei4NBVauL)tN%=wz9M{uf{IB(BxK|lT*pFkmNK_1tV`nb%jH=a0~VNq2RCKY(rG7jz!-D^k)Ec)yS%17pE#o6&eY+ z^qN(hQT$}5F(=4lgNQhlxj?nB4N6ntUY6(?+R#B?W3hY_a*)hnr4PA|vJ<6p`K3Z5Hy z{{8(|ux~NLUW=!?9Qe&WXMTAkQnLXg(g=I@(VG3{HE13OaUT|DljyWXPs2FE@?`iU z4GQlM&Q=T<4&v@Fe<+TuXiZQT3G~vZ&^POfmI1K2h6t4eD}Gk5XFGpbj1n_g*{qmD6Xy z`6Vv|lLZtLmrnv*{Q%xxtcWVj3K4M%$bdBk_a&ar{{GWyu#ljM;dII;*jP;QH z#+^o-A4np{@|Mz+LphTD0`FTyxYq#wY)*&Ls5o{0z9yg2K+K7ZN>j1>N&;r+Z`vI| zDzG1LJZ+sE?m?>x{5LJx^)g&pGEpY=fQ-4}{x=ru;}FL$inHemOg%|R*ZXPodU}Kh zFEd5#+8rGq$Y<_?k-}r5zgQ3jRV=ooHiF|@z_#D4pKVEmn5CGV(9VKCyG|sT9nc=U zEoT67R`C->KY8Wp-fEcjjFm^;Cg(ls|*ABVHq8clBE(;~K^b+S>6uj70g? z&{XQ5U&!Z$SO7zfP+y^8XBbiu*Cv-yJG|l-oe*!s5$@Lh_KpxYL2sx`B|V=dETN>5K+C+CU~a_3cI8{vbu$TNVdGf15*>D zz@f{zIlorkY>TRh7mKuAlN9A0>N>SV`X)+bEHms=mfYTMWt_AJtz_h+JMmrgH?mZt zm=lfdF`t^J*XLg7v+iS)XZROygK=CS@CvUaJo&w2W!Wb@aa?~Drtf`JV^cCMjngVZ zv&xaIBEo8EYWuML+vxCpjjY^s1-ahXJzAV6hTw%ZIy!FjI}aJ+{rE&u#>rs)vzuxz z+$5z=7W?zH2>Eb32dvgHYZtCAf!=OLY-pb4>Ae79rd68E2LkVPj-|jFeyqtBCCwiW zkB@kO_(3wFq)7qwV}bA=zD!*@UhT`geq}ITo%@O(Z5Y80nEX~;0-8kO{oB6|(4fQh z);73T!>3@{ZobPwRv*W?7m0Ml9GmJBCJd&6E?hdj9lV= z4flNfsc(J*DyPv?RCOx!MSvk(M952PJ-G|JeVxWVjN~SNS6n-_Ge3Q;TGE;EQvZg86%wZ`MB zSMQua(i*R8a75!6$QRO^(o7sGoomb+Y{OMy;m~Oa`;P9Yqo>?bJAhqXxLr7_3g_n>f#UVtxG!^F#1+y@os6x(sg z^28bsQ@8rw%Gxk-stAEPRbv^}5sLe=VMbkc@Jjimqjvmd!3E7+QnL>|(^3!R} zD-l1l7*Amu@j+PWLGHXXaFG0Ct2Q=}5YNUxEQHCAU7gA$sSC<5OGylNnQUa>>l%sM zyu}z6i&({U@x^hln**o6r2s-(C-L50tQvz|zHTqW!ir?w&V23tuYEDJVV#5pE|OJu z7^R!A$iM$YCe?8n67l*J-okwfZ+ZTkGvZ)tVPfR;|3gyFjF)8V zyXXN=!*bpyRg9#~Bg1+UDYCt0 ztp4&?t1X0q>uz;ann$OrZs{5*r`(oNvw=$7O#rD|Wuv*wIi)4b zGtq4%BX+kkagv3F9Id6~-c+1&?zny%w5j&nk9SQfo0k4LhdSU_kWGW7axkfpgR`8* z!?UTG*Zi_baA1^0eda8S|@&F z{)Rad0kiLjB|=}XFJhD(S3ssKlveFFmkN{Vl^_nb!o5M!RC=m)V&v2%e?ZoRC@h3> zJ(?pvToFd`*Zc@HFPL#=otWKwtuuQ_dT-Hr{S%pQX<6dqVJ8;f(o)4~VM_kEQkMR+ zs1SCVi~k>M`u1u2xc}>#D!V&6nOOh-E$O&SzYrjJdZpaDv1!R-QGA141WjQe2s0J~ zQ;AXG)F+K#K8_5HVqRoRM%^EduqOnS(j2)|ctA6Q^=|s_WJYU;Z%5bHp08HPL`YF2 zR)Ad1z{zh`=sDs^&V}J z%$Z$!jd7BY5AkT?j`eqMs%!Gm@T8)4w3GYEX~IwgE~`d|@T{WYHkudy(47brgHXx& zBL1yFG6!!!VOSmDxBpefy2{L_u5yTwja&HA!mYA#wg#bc-m%~8aRR|~AvMnind@zs zy>wkShe5&*un^zvSOdlVu%kHsEo>@puMQ`b1}(|)l~E{5)f7gC=E$fP(FC2=F<^|A zxeIm?{EE!3sO!Gr7e{w)Dx(uU#3WrFZ>ibmKSQ1tY?*-Nh1TDHLe+k*;{Rp!Bmd_m zb#^kh`Y*8l|9Cz2e{;RL%_lg{#^Ar+NH|3z*Zye>!alpt{z;4dFAw^^H!6ING*EFc z_yqhr8d!;%nHX9AKhFQZBGrSzfzYCi%C!(Q5*~hX>)0N`vbhZ@N|i;_972WSx*>LH z87?en(;2_`{_JHF`Sv6Wlps;dCcj+8IJ8ca6`DsOQCMb3n# z3)_w%FuJ3>fjeOOtWyq)ag|PmgQbC-s}KRHG~enBcIwqIiGW8R8jFeBNY9|YswRY5 zjGUxdGgUD26wOpwM#8a!Nuqg68*dG@VM~SbOroL_On0N6QdT9?)NeB3@0FCC?Z|E0 z6TPZj(AsPtwCw>*{eDEE}Gby>0q{*lI+g2e&(YQrsY&uGM{O~}(oM@YWmb*F zA0^rr5~UD^qmNljq$F#ARXRZ1igP`MQx4aS6*MS;Ot(1L5jF2NJ;de!NujUYg$dr# z=TEL_zTj2@>ZZN(NYCeVX2==~=aT)R30gETO{G&GM4XN<+!&W&(WcDP%oL8PyIVUC zs5AvMgh6qr-2?^unB@mXK*Dbil^y-GTC+>&N5HkzXtozVf93m~xOUHn8`HpX=$_v2 z61H;Z1qK9o;>->tb8y%#4H)765W4E>TQ1o0PFj)uTOPEvv&}%(_mG0ISmyhnQV33Z$#&yd{ zc{>8V8XK$3u8}04CmAQ#I@XvtmB*s4t8va?-IY4@CN>;)mLb_4!&P3XSw4pA_NzDb zORn!blT-aHk1%Jpi>T~oGLuh{DB)JIGZ9KOsciWs2N7mM1JWM+lna4vkDL?Q)z_Ct z`!mi0jtr+4*L&N7jk&LodVO#6?_qRGVaucqVB8*us6i3BTa^^EI0x%EREQSXV@f!lak6Wf1cNZ8>*artIJ(ADO*=<-an`3zB4d*oO*8D1K!f z*A@P1bZCNtU=p!742MrAj%&5v%Xp_dSX@4YCw%F|%Dk=u|1BOmo)HsVz)nD5USa zR~??e61sO(;PR)iaxK{M%QM_rIua9C^4ppVS$qCT9j2%?*em?`4Z;4@>I(c%M&#cH z>4}*;ej<4cKkbCAjjDsyKS8rIm90O)Jjgyxj5^venBx&7B!xLmzxW3jhj7sR(^3Fz z84EY|p1NauwXUr;FfZjdaAfh%ivyp+^!jBjJuAaKa!yCq=?T_)R!>16?{~p)FQ3LDoMyG%hL#pR!f@P%*;#90rs_y z@9}@r1BmM-SJ#DeuqCQk=J?ixDSwL*wh|G#us;dd{H}3*-Y7Tv5m=bQJMcH+_S`zVtf;!0kt*(zwJ zs+kedTm!A}cMiM!qv(c$o5K%}Yd0|nOd0iLjus&;s0Acvoi-PFrWm?+q9f^FslxGi z6ywB`QpL$rJzWDg(4)C4+!2cLE}UPCTBLa*_=c#*$b2PWrRN46$y~yST3a2$7hEH= zNjux+wna^AzQ=KEa_5#9Ph=G1{S0#hh1L3hQ`@HrVnCx{!fw_a0N5xV(iPdKZ-HOM za)LdgK}1ww*C_>V7hbQnTzjURJL`S%`6nTHcgS+dB6b_;PY1FsrdE8(2K6FN>37!62j_cBlui{jO^$dPkGHV>pXvW0EiOA zqW`YaSUBWg_v^Y5tPJfWLcLpsA8T zG)!x>pKMpt!lv3&KV!-um= zKCir6`bEL_LCFx4Z5bAFXW$g3Cq`?Q%)3q0r852XI*Der*JNuKUZ`C{cCuu8R8nkt z%pnF>R$uY8L+D!V{s^9>IC+bmt<05h**>49R*#vpM*4i0qRB2uPbg8{{s#9yC;Z18 zD7|4m<9qneQ84uX|J&f-g8a|nFKFt34@Bt{CU`v(SYbbn95Q67*)_Esl_;v291s=9 z+#2F2apZU4Tq=x+?V}CjwD(P=U~d<=mfEFuyPB`Ey82V9G#Sk8H_Ob_RnP3s?)S_3 zr%}Pb?;lt_)Nf>@zX~D~TBr;-LS<1I##8z`;0ZCvI_QbXNh8Iv)$LS=*gHr;}dgb=w5$3k2la1keIm|=7<-JD>)U%=Avl0Vj@+&vxn zt-)`vJxJr88D&!}2^{GPXc^nmRf#}nb$4MMkBA21GzB`-Or`-3lq^O^svO7Vs~FdM zv`NvzyG+0T!P8l_&8gH|pzE{N(gv_tgDU7SWeiI-iHC#0Ai%Ixn4&nt{5y3(GQs)i z&uA;~_0shP$0Wh0VooIeyC|lak__#KVJfxa7*mYmZ22@(<^W}FdKjd*U1CqSjNKW% z*z$5$=t^+;Ui=MoDW~A7;)Mj%ibX1_p4gu>RC}Z_pl`U*{_z@+HN?AF{_W z?M_X@o%w8fgFIJ$fIzBeK=v#*`mtY$HC3tqw7q^GCT!P$I%=2N4FY7j9nG8aIm$c9 zeKTxVKN!UJ{#W)zxW|Q^K!3s;(*7Gbn;e@pQBCDS(I|Y0euK#dSQ_W^)sv5pa%<^o zyu}3d?Lx`)3-n5Sy9r#`I{+t6x%I%G(iewGbvor&I^{lhu-!#}*Q3^itvY(^UWXgvthH52zLy&T+B)Pw;5>4D6>74 zO_EBS)>l!zLTVkX@NDqyN2cXTwsUVao7$HcqV2%t$YzdAC&T)dwzExa3*kt9d(}al zA~M}=%2NVNUjZiO7c>04YH)sRelXJYpWSn^aC$|Ji|E13a^-v2MB!Nc*b+=KY7MCm zqIteKfNkONq}uM;PB?vvgQvfKLPMB8u5+Am=d#>g+o&Ysb>dX9EC8q?D$pJH!MTAqa=DS5$cb+;hEvjwVfF{4;M{5U&^_+r zvZdu_rildI!*|*A$TzJ&apQWV@p{!W`=?t(o0{?9y&vM)V)ycGSlI3`;ps(vf2PUq zX745#`cmT*ra7XECC0gKkpu2eyhFEUb?;4@X7weEnLjXj_F~?OzL1U1L0|s6M+kIhmi%`n5vvDALMagi4`wMc=JV{XiO+^ z?s9i7;GgrRW{Mx)d7rj)?(;|b-`iBNPqdwtt%32se@?w4<^KU&585_kZ=`Wy^oLu9 z?DQAh5z%q;UkP48jgMFHTf#mj?#z|=w= z(q6~17Vn}P)J3M?O)x))%a5+>TFW3No~TgP;f}K$#icBh;rSS+R|}l鯊%1Et zwk~hMkhq;MOw^Q5`7oC{CUUyTw9x>^%*FHx^qJw(LB+E0WBX@{Ghw;)6aA-KyYg8p z7XDveQOpEr;B4je@2~usI5BlFadedX^ma{b{ypd|RNYqo#~d*mj&y`^iojR}s%~vF z(H!u`yx68D1Tj(3(m;Q+Ma}s2n#;O~bcB1`lYk%Irx60&-nWIUBr2x&@}@76+*zJ5 ze&4?q8?m%L9c6h=J$WBzbiTf1Z-0Eb5$IZs>lvm$>1n_Mezp*qw_pr8<8$6f)5f<@ zyV#tzMCs51nTv_5ca`x`yfE5YA^*%O_H?;tWYdM_kHPubA%vy47i=9>Bq) zRQ&0UwLQHeswmB1yP)+BiR;S+Vc-5TX84KUA;8VY9}yEj0eESSO`7HQ4lO z4(CyA8y1G7_C;6kd4U3K-aNOK!sHE}KL_-^EDl(vB42P$2Km7$WGqNy=%fqB+ zSLdrlcbEH=T@W8V4(TgoXZ*G1_aq$K^@ek=TVhoKRjw;HyI&coln|uRr5mMOy2GXP zwr*F^Y|!Sjr2YQXX(Fp^*`Wk905K%$bd03R4(igl0&7IIm*#f`A!DCarW9$h$z`kYk9MjjqN&5-DsH@8xh63!fTNPxWsFQhNv z#|3RjnP$Thdb#Ys7M+v|>AHm0BVTw)EH}>x@_f4zca&3tXJhTZ8pO}aN?(dHo)44Z z_5j+YP=jMlFqwvf3lq!57-SAuRV2_gJ*wsR_!Y4Z(trO}0wmB9%f#jNDHPdQGHFR; zZXzS-$`;7DQ5vF~oSgP3bNV$6Z(rwo6W(U07b1n3UHqml>{=6&-4PALATsH@Bh^W? z)ob%oAPaiw{?9HfMzpGb)@Kys^J$CN{uf*HX?)z=g`J(uK1YO^8~s1(ZIbG%Et(|q z$D@_QqltVZu9Py4R0Ld8!U|#`5~^M=b>fnHthzKBRr=i+w@0Vr^l|W;=zFT#PJ?*a zbC}G#It}rQP^Ait^W&aa6B;+0gNvz4cWUMzpv(1gvfw-X4xJ2Sv;mt;zb2Tsn|kSS zo*U9N?I{=-;a-OybL4r;PolCfiaL=y@o9{%`>+&FI#D^uy#>)R@b^1ue&AKKwuI*` zx%+6r48EIX6nF4o;>)zhV_8(IEX})NGU6Vs(yslrx{5fII}o3SMHW7wGtK9oIO4OM&@@ECtXSICLcPXoS|{;=_yj>hh*%hP27yZwOmj4&Lh z*Nd@OMkd!aKReoqNOkp5cW*lC)&C$P?+H3*%8)6HcpBg&IhGP^77XPZpc%WKYLX$T zsSQ$|ntaVVOoRat$6lvZO(G-QM5s#N4j*|N_;8cc2v_k4n6zx9c1L4JL*83F-C1Cn zaJhd;>rHXB%%ZN=3_o3&Qd2YOxrK~&?1=UuN9QhL$~OY-Qyg&})#ez*8NpQW_*a&kD&ANjedxT0Ar z<6r{eaVz3`d~+N~vkMaV8{F?RBVemN(jD@S8qO~L{rUw#=2a$V(7rLE+kGUZ<%pdr z?$DP|Vg#gZ9S}w((O2NbxzQ^zTot=89!0^~hE{|c9q1hVzv0?YC5s42Yx($;hAp*E zyoGuRyphQY{Q2ee0Xx`1&lv(l-SeC$NEyS~8iil3_aNlnqF_G|;zt#F%1;J)jnPT& z@iU0S;wHJ2$f!juqEzPZeZkjcQ+Pa@eERSLKsWf=`{R@yv7AuRh&ALRTAy z8=g&nxsSJCe!QLchJ=}6|LshnXIK)SNd zRkJNiqHwKK{SO;N5m5wdL&qK`v|d?5<4!(FAsDxR>Ky#0#t$8XCMptvNo?|SY?d8b z`*8dVBlXTUanlh6n)!EHf2&PDG8sXNAt6~u-_1EjPI1|<=33T8 zEnA00E!`4Ave0d&VVh0e>)Dc}=FfAFxpsC1u9ATfQ`-Cu;mhc8Z>2;uyXtqpLb7(P zd2F9<3cXS} znMg?{&8_YFTGRQZEPU-XPq55%51}RJpw@LO_|)CFAt62-_!u_Uq$csc+7|3+TV_!h z+2a7Yh^5AA{q^m|=KSJL+w-EWDBc&I_I1vOr^}P8i?cKMhGy$CP0XKrQzCheG$}G# zuglf8*PAFO8%xop7KSwI8||liTaQ9NCAFarr~psQt)g*pC@9bORZ>m`_GA`_K@~&% zijH0z;T$fd;-Liw8%EKZas>BH8nYTqsK7F;>>@YsE=Rqo?_8}UO-S#|6~CAW0Oz1} z3F(1=+#wrBJh4H)9jTQ_$~@#9|Bc1Pd3rAIA_&vOpvvbgDJOM(yNPhJJq2%PCcMaI zrbe~toYzvkZYQ{ea(Wiyu#4WB#RRN%bMe=SOk!CbJZv^m?Flo5p{W8|0i3`hI3Np# zvCZqY%o258CI=SGb+A3yJe~JH^i{uU`#U#fvSC~rWTq+K`E%J@ zasU07&pB6A4w3b?d?q}2=0rA#SA7D`X+zg@&zm^iA*HVi z009#PUH<%lk4z~p^l0S{lCJk1Uxi=F4e_DwlfHA`X`rv(|JqWKAA5nH+u4Da+E_p+ zVmH@lg^n4ixs~*@gm_dgQ&eDmE1mnw5wBz9Yg?QdZwF|an67Xd*x!He)Gc8&2!urh z4_uXzbYz-aX)X1>&iUjGp;P1u8&7TID0bTH-jCL&Xk8b&;;6p2op_=y^m@Nq*0{#o!!A;wNAFG@0%Z9rHo zcJs?Th>Ny6+hI`+1XoU*ED$Yf@9f91m9Y=#N(HJP^Y@ZEYR6I?oM{>&Wq4|v0IB(p zqX#Z<_3X(&{H+{3Tr|sFy}~=bv+l=P;|sBz$wk-n^R`G3p0(p>p=5ahpaD7>r|>pm zv;V`_IR@tvZreIuv2EM7ZQHhO+qUgw#kOs%*ekY^n|=1#x9&c;Ro&I~{rG-#_3ZB1 z?|9}IFdbP}^DneP*T-JaoYHt~r@EfvnPE5EKUwIxjPbsr$% zfWW83pgWST7*B(o=kmo)74$8UU)v0{@4DI+ci&%=#90}!CZz|rnH+Mz=HN~97G3~@ z;v5(9_2%eca(9iu@J@aqaMS6*$TMw!S>H(b z4(*B!|H|8&EuB%mITr~O?vVEf%(Gr)6E=>H~1VR z&1YOXluJSG1!?TnT)_*YmJ*o_Q@om~(GdrhI{$Fsx_zrkupc#y{DK1WOUR>tk>ZE) ziOLoBkhZZ?0Uf}cm>GsA>Rd6V8@JF)J*EQlQ<=JD@m<)hyElXR0`pTku*3MU`HJn| zIf7$)RlK^pW-$87U;431;Ye4Ie+l~_B3*bH1>*yKzn23cH0u(i5pXV! z4K?{3oF7ZavmmtTq((wtml)m6i)8X6ot_mrE-QJCW}Yn!(3~aUHYG=^fA<^~`e3yc z-NWTb{gR;DOUcK#zPbN^D*e=2eR^_!(!RKkiwMW@@yYtEoOp4XjOGgzi`;=8 zi3`Ccw1%L*y(FDj=C7Ro-V?q)-%p?Ob2ZElu`eZ99n14-ZkEV#y5C+{Pq87Gu3&>g zFy~Wk7^6v*)4pF3@F@rE__k3ikx(hzN3@e*^0=KNA6|jC^B5nf(XaoQaZN?Xi}Rn3 z$8&m*KmWvPaUQ(V<#J+S&zO|8P-#!f%7G+n_%sXp9=J%Z4&9OkWXeuZN}ssgQ#Tcj z8p6ErJQJWZ+fXLCco=RN8D{W%+*kko*2-LEb))xcHwNl~Xmir>kmAxW?eW50Osw3# zki8Fl$#fvw*7rqd?%E?}ZX4`c5-R&w!Y0#EBbelVXSng+kUfeUiqofPehl}$ormli zg%r)}?%=?_pHb9`Cq9Z|B`L8b>(!+8HSX?`5+5mm81AFXfnAt1*R3F z%b2RPIacKAddx%JfQ8l{3U|vK@W7KB$CdLqn@wP^?azRks@x8z59#$Q*7q!KilY-P zHUbs(IFYRGG1{~@RF;Lqyho$~7^hNC`NL3kn^Td%A7dRgr_&`2k=t+}D-o9&C!y^? z6MsQ=tc3g0xkK(O%DzR9nbNB(r@L;1zQrs8mzx&4dz}?3KNYozOW5;=w18U6$G4U2 z#2^qRLT*Mo4bV1Oeo1PKQ2WQS2Y-hv&S|C7`xh6=Pj7MNLC5K-zokZ67S)C;(F0Dd zloDK2_o1$Fmza>EMj3X9je7e%Q`$39Dk~GoOj89-6q9|_WJlSl!!+*{R=tGp z8u|MuSwm^t7K^nUe+^0G3dkGZr3@(X+TL5eah)K^Tn zXEtHmR9UIaEYgD5Nhh(s*fcG_lh-mfy5iUF3xxpRZ0q3nZ=1qAtUa?(LnT9I&~uxX z`pV?+=|-Gl(kz?w!zIieXT}o}7@`QO>;u$Z!QB${a08_bW0_o@&9cjJUXzVyNGCm8 zm=W+$H!;_Kzp6WQqxUI;JlPY&`V}9C$8HZ^m?NvI*JT@~BM=()T()Ii#+*$y@lTZBkmMMda>7s#O(1YZR+zTG@&}!EXFG{ zEWPSDI5bFi;NT>Yj*FjH((=oe%t%xYmE~AGaOc4#9K_XsVpl<4SP@E!TgC0qpe1oi zNpxU2b0(lEMcoibQ-G^cxO?ySVW26HoBNa;n0}CWL*{k)oBu1>F18X061$SP{Gu67 z-v-Fa=Fl^u3lnGY^o5v)Bux}bNZ~ z5pL+7F_Esoun8^5>z8NFoIdb$sNS&xT8_|`GTe8zSXQzs4r^g0kZjg(b0bJvz`g<70u9Z3fQILX1Lj@;@+##bP|FAOl)U^9U>0rx zGi)M1(Hce)LAvQO-pW!MN$;#ZMX?VE(22lTlJrk#pB0FJNqVwC+*%${Gt#r_tH9I_ z;+#)#8cWAl?d@R+O+}@1A^hAR1s3UcW{G+>;X4utD2d9X(jF555}!TVN-hByV6t+A zdFR^aE@GNNgSxxixS2p=on4(+*+f<8xrwAObC)D5)4!z7)}mTpb7&ofF3u&9&wPS< zB62WHLGMhmrmOAgmJ+|c>qEWTD#jd~lHNgT0?t-p{T=~#EMcB| z=AoDKOL+qXCfk~F)-Rv**V}}gWFl>liXOl7Uec_8v)(S#av99PX1sQIVZ9eNLkhq$ zt|qu0b?GW_uo}TbU8!jYn8iJeIP)r@;!Ze_7mj{AUV$GEz6bDSDO=D!&C9!M@*S2! zfGyA|EPlXGMjkH6x7OMF?gKL7{GvGfED=Jte^p=91FpCu)#{whAMw`vSLa`K#atdN zThnL+7!ZNmP{rc=Z>%$meH;Qi1=m1E3Lq2D_O1-X5C;!I0L>zur@tPAC9*7Jeh)`;eec}1`nkRP(%iv-`N zZ@ip-g|7l6Hz%j%gcAM}6-nrC8oA$BkOTz^?dakvX?`^=ZkYh%vUE z9+&)K1UTK=ahYiaNn&G5nHUY5niLGus@p5E2@RwZufRvF{@$hW{;{3QhjvEHMvduO z#Wf-@oYU4ht?#uP{N3utVzV49mEc9>*TV_W2TVC`6+oI)zAjy$KJrr=*q##&kobiQ z1vNbya&OVjK`2pdRrM?LuK6BgrLN7H_3m z!qpNKg~87XgCwb#I=Q&0rI*l$wM!qTkXrx1ko5q-f;=R2fImRMwt5Qs{P*p^z@9ex z`2#v(qE&F%MXlHpdO#QEZyZftn4f05ab^f2vjxuFaat2}jke{j?5GrF=WYBR?gS(^ z9SBiNi}anzBDBRc+QqizTTQuJrzm^bNA~A{j%ugXP7McZqJ}65l10({wk++$=e8O{ zxWjG!Qp#5OmI#XRQQM?n6?1ztl6^D40hDJr?4$Wc&O_{*OfMfxe)V0=e{|N?J#fgE>j9jAajze$iN!*yeF%jJU#G1c@@rm zolGW!j?W6Q8pP=lkctNFdfgUMg92wlM4E$aks1??M$~WQfzzzXtS)wKrr2sJeCN4X zY(X^H_c^PzfcO8Bq(Q*p4c_v@F$Y8cHLrH$`pJ2}=#*8%JYdqsqnGqEdBQMpl!Ot04tUGSXTQdsX&GDtjbWD=prcCT9(+ z&UM%lW%Q3yrl1yiYs;LxzIy>2G}EPY6|sBhL&X&RAQrSAV4Tlh2nITR?{6xO9ujGu zr*)^E`>o!c=gT*_@6S&>0POxcXYNQd&HMw6<|#{eSute2C3{&h?Ah|cw56-AP^f8l zT^kvZY$YiH8j)sk7_=;gx)vx-PW`hbSBXJGCTkpt;ap(}G2GY=2bbjABU5)ty%G#x zAi07{Bjhv}>OD#5zh#$0w;-vvC@^}F! z#X$@)zIs1L^E;2xDAwEjaXhTBw2<{&JkF*`;c3<1U@A4MaLPe{M5DGGkL}#{cHL%* zYMG+-Fm0#qzPL#V)TvQVI|?_M>=zVJr9>(6ib*#z8q@mYKXDP`k&A4A};xMK0h=yrMp~JW{L?mE~ph&1Y1a#4%SO)@{ zK2juwynUOC)U*hVlJU17%llUxAJFuKZh3K0gU`aP)pc~bE~mM!i1mi!~LTf>1Wp< zuG+ahp^gH8g8-M$u{HUWh0m^9Rg@cQ{&DAO{PTMudV6c?ka7+AO& z746QylZ&Oj`1aqfu?l&zGtJnpEQOt;OAFq19MXTcI~`ZcoZmyMrIKDFRIDi`FH)w; z8+*8tdevMDv*VtQi|e}CnB_JWs>fhLOH-+Os2Lh!&)Oh2utl{*AwR)QVLS49iTp{6 z;|172Jl!Ml17unF+pd+Ff@jIE-{Oxv)5|pOm@CkHW?{l}b@1>Pe!l}VccX#xp@xgJ zyE<&ep$=*vT=}7vtvif0B?9xw_3Gej7mN*dOHdQPtW5kA5_zGD zpA4tV2*0E^OUimSsV#?Tg#oiQ>%4D@1F5@AHwT8Kgen$bSMHD3sXCkq8^(uo7CWk`mT zuslYq`6Yz;L%wJh$3l1%SZv#QnG3=NZ=BK4yzk#HAPbqXa92;3K5?0kn4TQ`%E%X} z&>Lbt!!QclYKd6+J7Nl@xv!uD%)*bY-;p`y^ZCC<%LEHUi$l5biu!sT3TGGSTPA21 zT8@B&a0lJHVn1I$I3I1I{W9fJAYc+8 zVj8>HvD}&O`TqU2AAb={?eT;0hyL(R{|h23=4fDSZKC32;wWxsVj`P z3J3{M$PwdH!ro*Cn!D&=jnFR>BNGR<<|I8CI@+@658Dy(lhqbhXfPTVecY@L8%`3Q z1Fux2w?2C3th60jI~%OC9BtpNF$QPqcG+Pz96qZJ71_`0o0w_q7|h&O>`6U+^BA&5 zXd5Zp1Xkw~>M%RixTm&OqpNl8Q+ue=92Op_>T~_9UON?ZM2c0aGm=^A4ejrXj3dV9 zhh_bCt-b9`uOX#cFLj!vhZ#lS8Tc47OH>*)y#{O9?AT~KR9LntM|#l#Dlm^8{nZdk zjMl#>ZM%#^nK2TPzLcKxqx24P7R1FPlBy7LSBrRvx>fE$9AJ;7{PQm~^LBX^k#6Zq zw*Z(zJC|`!6_)EFR}8|n8&&Rbj8y028~P~sFXBFRt+tmqH-S3<%N;C&WGH!f3{7cm zy_fCAb9@HqaXa1Y5vFbxWf%#zg6SI$C+Uz5=CTO}e|2fjWkZ;Dx|84Ow~bkI=LW+U zuq;KSv9VMboRvs9)}2PAO|b(JCEC_A0wq{uEj|3x@}*=bOd zwr{TgeCGG>HT<@Zeq8y}vTpwDg#UBvD)BEs@1KP$^3$sh&_joQPn{hjBXmLPJ{tC) z*HS`*2+VtJO{|e$mM^|qv1R*8i(m1`%)}g=SU#T#0KlTM2RSvYUc1fP+va|4;5}Bfz98UvDCpq7}+SMV&;nX zQw~N6qOX{P55{#LQkrZk(e5YGzr|(B;Q;ju;2a`q+S9bsEH@i1{_Y0;hWYn1-79jl z5c&bytD*k)GqrVcHn6t-7kinadiD>B{Tl`ZY@`g|b~pvHh5!gKP4({rp?D0aFd_cN zhHRo4dd5^S6ViN(>(28qZT6E>??aRhc($kP`>@<+lIKS5HdhjVU;>f7<4))E*5|g{ z&d1}D|vpuV^eRj5j|xx9nwaCxXFG?Qbjn~_WSy=N}P0W>MP zG-F%70lX5Xr$a)2i6?i|iMyM|;Jtf*hO?=Jxj12oz&>P=1#h~lf%#fc73M2_(SUM- zf&qnjS80|_Y0lDgl&I?*eMumUklLe_=Td!9G@eR*tcPOgIShJipp3{A10u(4eT~DY zHezEj8V+7m!knn7)W!-5QI3=IvC^as5+TW1@Ern@yX| z7Nn~xVx&fGSr+L%4iohtS3w^{-H1A_5=r&x8}R!YZvp<2T^YFvj8G_vm}5q;^UOJf ztl=X3iL;;^^a#`t{Ae-%5Oq{?M#s6Npj+L(n-*LMI-yMR{)qki!~{5z{&`-iL}lgW zxo+tnvICK=lImjV$Z|O_cYj_PlEYCzu-XBz&XC-JVxUh9;6*z4fuBG+H{voCC;`~GYV|hj%j_&I zDZCj>Q_0RCwFauYoVMiUSB+*Mx`tg)bWmM^SwMA+?lBg12QUF_x2b)b?qb88K-YUd z0dO}3k#QirBV<5%jL$#wlf!60dizu;tsp(7XLdI=eQs?P`tOZYMjVq&jE)qK*6B^$ zBe>VvH5TO>s>izhwJJ$<`a8fakTL!yM^Zfr2hV9`f}}VVUXK39p@G|xYRz{fTI+Yq z20d=)iwjuG9RB$%$^&8#(c0_j0t_C~^|n+c`Apu|x7~;#cS-s=X1|C*YxX3ailhg_|0`g!E&GZJEr?bh#Tpb8siR=JxWKc{#w7g zWznLwi;zLFmM1g8V5-P#RsM@iX>TK$xsWuujcsVR^7TQ@!+vCD<>Bk9tdCo7Mzgq5 zv8d>dK9x8C@Qoh01u@3h0X_`SZluTb@5o;{4{{eF!-4405x8X7hewZWpz z2qEi4UTiXTvsa(0X7kQH{3VMF>W|6;6iTrrYD2fMggFA&-CBEfSqPlQDxqsa>{e2M z(R5PJ7uOooFc|9GU0ELA%m4&4Ja#cQpNw8i8ACAoK6?-px+oBl_yKmenZut#Xumjz zk8p^OV2KY&?5MUwGrBOo?ki`Sxo#?-Q4gw*Sh0k`@ zFTaYK2;}%Zk-68`#5DXU$2#=%YL#S&MTN8bF+!J2VT6x^XBci6O)Q#JfW{YMz) zOBM>t2rSj)n#0a3cjvu}r|k3od6W(SN}V-cL?bi*Iz-8uOcCcsX0L>ZXjLqk zZu2uHq5B|Kt>e+=pPKu=1P@1r9WLgYFq_TNV1p9pu0erHGd!+bBp!qGi+~4A(RsYN@CyXNrC&hxGmW)u5m35OmWwX`I+0yByglO`}HC4nGE^_HUs^&A(uaM zKPj^=qI{&ayOq#z=p&pnx@@k&I1JI>cttJcu@Ihljt?6p^6{|ds`0MoQwp+I{3l6` zB<9S((RpLG^>=Kic`1LnhpW2=Gu!x`m~=y;A`Qk!-w`IN;S8S930#vBVMv2vCKi}u z6<-VPrU0AnE&vzwV(CFC0gnZYcpa-l5T0ZS$P6(?9AM;`Aj~XDvt;Jua=jIgF=Fm? zdp=M$>`phx%+Gu};;-&7T|B1AcC#L4@mW5SV_^1BRbo6;2PWe$r+npRV`yc;T1mo& z+~_?7rA+(Um&o@Tddl zL_hxvWk~a)yY}%j`Y+200D%9$bWHy&;(yj{jpi?Rtz{J66ANw)UyPOm;t6FzY3$hx zcn)Ir79nhFvNa7^a{SHN7XH*|Vlsx`CddPnA&Qvh8aNhEA;mPVv;Ah=k<*u!Zq^7 z<=xs*iQTQOMMcg|(NA_auh@x`3#_LFt=)}%SQppP{E>mu_LgquAWvh<>L7tf9+~rO znwUDS52u)OtY<~!d$;m9+87aO+&`#2ICl@Y>&F{jI=H(K+@3M1$rr=*H^dye#~TyD z!){#Pyfn+|ugUu}G;a~!&&0aqQ59U@UT3|_JuBlYUpT$2+11;}JBJ`{+lQN9T@QFY z5+`t;6(TS0F?OlBTE!@7D`8#URDNqx2t6`GZ{ZgXeS@v%-eJzZOHz18aS|svxII$a zZeFjrJ*$IwX$f-Rzr_G>xbu@euGl)B7pC&S+CmDJBg$BoV~jxSO#>y z33`bupN#LDoW0feZe0%q8un0rYN|eRAnwDHQ6e_)xBTbtoZtTA=Fvk){q}9Os~6mQ zKB80VI_&6iSq`LnK7*kfHZoeX6?WE}8yjuDn=2#JG$+;-TOA1%^=DnXx%w{b=w}tS zQbU3XxtOI8E(!%`64r2`zog;5<0b4i)xBmGP^jiDZ2%HNSxIf3@wKs~uk4%3Mxz;~ zts_S~E4>W+YwI<-*-$U8*^HKDEa8oLbmqGg?3vewnaNg%Mm)W=)lcC_J+1ov^u*N3 zXJ?!BrH-+wGYziJq2Y#vyry6Z>NPgkEk+Ke`^DvNRdb>Q2Nlr#v%O@<5hbflI6EKE z9dWc0-ORk^T}jP!nkJ1imyjdVX@GrjOs%cpgA8-c&FH&$(4od#x6Y&=LiJZPINVyW z0snY$8JW@>tc2}DlrD3StQmA0Twck~@>8dSix9CyQOALcREdxoM$Sw*l!}bXKq9&r zysMWR@%OY24@e`?+#xV2bk{T^C_xSo8v2ZI=lBI*l{RciPwuE>L5@uhz@{!l)rtVlWC>)6(G)1~n=Q|S!{E9~6*fdpa*n z!()-8EpTdj=zr_Lswi;#{TxbtH$8*G=UM`I+icz7sr_SdnHXrv=?iEOF1UL+*6O;% zPw>t^kbW9X@oEXx<97%lBm-9?O_7L!DeD)Me#rwE54t~UBu9VZ zl_I1tBB~>jm@bw0Aljz8! zXBB6ATG6iByKIxs!qr%pz%wgqbg(l{65DP4#v(vqhhL{0b#0C8mq`bnqZ1OwFV z7mlZZJFMACm>h9v^2J9+^_zc1=JjL#qM5ZHaThH&n zXPTsR8(+)cj&>Un{6v*z?@VTLr{TmZ@-fY%*o2G}*G}#!bmqpoo*Ay@U!JI^Q@7gj;Kg-HIrLj4}#ec4~D2~X6vo;ghep-@&yOivYP zC19L0D`jjKy1Yi-SGPAn94(768Tcf$urAf{)1)9W58P`6MA{YG%O?|07!g9(b`8PXG1B1Sh0?HQmeJtP0M$O$hI z{5G`&9XzYhh|y@qsF1GnHN|~^ru~HVf#)lOTSrv=S@DyR$UKQk zjdEPFDz{uHM&UM;=mG!xKvp;xAGHOBo~>_=WFTmh$chpC7c`~7?36h)7$fF~Ii}8q zF|YXxH-Z?d+Q+27Rs3X9S&K3N+)OBxMHn1u(vlrUC6ckBY@@jl+mgr#KQUKo#VeFm zFwNYgv0<%~Wn}KeLeD9e1$S>jhOq&(e*I@L<=I5b(?G(zpqI*WBqf|Zge0&aoDUsC zngMRA_Kt0>La+Erl=Uv_J^p(z=!?XHpenzn$%EA`JIq#yYF?JLDMYiPfM(&Csr#f{ zdd+LJL1by?xz|D8+(fgzRs~(N1k9DSyK@LJygwaYX8dZl0W!I&c^K?7)z{2is;OkE zd$VK-(uH#AUaZrp=1z;O*n=b?QJkxu`Xsw&7yrX0?(CX=I-C#T;yi8a<{E~?vr3W> zQrpPqOW2M+AnZ&p{hqmHZU-;Q(7?- zP8L|Q0RM~sB0w1w53f&Kd*y}ofx@c z5Y6B8qGel+uT1JMot$nT1!Tim6{>oZzJXdyA+4euOLME?5Fd_85Uk%#E*ln%y{u8Q z$|?|R@Hpb~yTVK-Yr_S#%NUy7EBfYGAg>b({J|5b+j-PBpPy$Ns`PaJin4JdRfOaS zE|<HjH%NuJgsd2wOlv>~y=np%=2)$M9LS|>P)zJ+Fei5vYo_N~B0XCn+GM76 z)Xz3tg*FRVFgIl9zpESgdpWAavvVViGlU8|UFY{{gVJskg*I!ZjWyk~OW-Td4(mZ6 zB&SQreAAMqwp}rjy`HsG({l2&q5Y52<@AULVAu~rWI$UbFuZs>Sc*x+XI<+ez%$U)|a^unjpiW0l0 zj1!K0(b6$8LOjzRqQ~K&dfbMIE=TF}XFAi)$+h}5SD3lo z%%Qd>p9se=VtQG{kQ;N`sI)G^u|DN#7{aoEd zkksYP%_X$Rq08);-s6o>CGJ<}v`qs%eYf+J%DQ^2k68C%nvikRsN?$ap--f+vCS`K z#&~)f7!N^;sdUXu54gl3L=LN>FB^tuK=y2e#|hWiWUls__n@L|>xH{%8lIJTd5`w? zSwZbnS;W~DawT4OwSJVdAylbY+u5S+ZH{4hAi2&}Iv~W(UvHg(1GTZRPz`@{SOqzy z(8g&Dz=$PfRV=6FgxN~zo+G8OoPI&d-thcGVR*_^(R8COTM@bq?fDwY{}WhsQS1AK zF6R1t8!RdFmfocpJ6?9Yv~;WYi~XPgs(|>{5})j!AR!voO7y9&cMPo#80A(`za@t>cx<0;qxM@S*m(jYP)dMXr*?q0E`oL;12}VAep179uEr8c<=D zr5?A*C{eJ`z9Ee;E$8)MECqatHkbHH z&Y+ho0B$31MIB-xm&;xyaFCtg<{m~M-QDbY)fQ>Q*Xibb~8ytxZQ?QMf9!%cV zU0_X1@b4d+Pg#R!`OJ~DOrQz3@cpiGy~XSKjZQQ|^4J1puvwKeScrH8o{bscBsowomu z^f12kTvje`yEI3eEXDHJ6L+O{Jv$HVj%IKb|J{IvD*l6IG8WUgDJ*UGz z3!C%>?=dlfSJ>4U88)V+`U-!9r^@AxJBx8R;)J4Fn@`~k>8>v0M9xp90OJElWP&R5 zM#v*vtT}*Gm1^)Bv!s72T3PB0yVIjJW)H7a)ilkAvoaH?)jjb`MP>2z{%Y?}83 zUIwBKn`-MSg)=?R)1Q0z3b>dHE^)D8LFs}6ASG1|daDly_^lOSy&zIIhm*HXm1?VS=_iacG);_I9c zUQH1>i#*?oPIwBMJkzi_*>HoUe}_4o>2(SHWzqQ=;TyhAHS;Enr7!#8;sdlty&(>d zl%5cjri8`2X^Ds`jnw7>A`X|bl=U8n+3LKLy(1dAu8`g@9=5iw$R0qk)w8Vh_Dt^U zIglK}sn^)W7aB(Q>HvrX=rxB z+*L)3DiqpQ_%~|m=44LcD4-bxO3OO*LPjsh%p(k?&jvLp0py57oMH|*IMa(<|{m1(0S|x)?R-mqJ=I;_YUZA>J z62v*eSK;5w!h8J+6Z2~oyGdZ68waWfy09?4fU&m7%u~zi?YPHPgK6LDwphgaYu%0j zurtw)AYOpYKgHBrkX189mlJ`q)w-f|6>IER{5Lk97%P~a-JyCRFjejW@L>n4vt6#hq;!|m;hNE||LK3nw1{bJOy+eBJjK=QqNjI;Q6;Rp5 z&035pZDUZ#%Oa;&_7x0T<7!RW`#YBOj}F380Bq?MjjEhrvlCATPdkCTTl+2efTX$k zH&0zR1n^`C3ef~^sXzJK-)52(T}uTG%OF8yDhT76L~|^+hZ2hiSM*QA9*D5odI1>& z9kV9jC~twA5MwyOx(lsGD_ggYmztXPD`2=_V|ks_FOx!_J8!zM zTzh^cc+=VNZ&(OdN=y4Juw)@8-85lwf_#VMN!Ed(eQiRiLB2^2e`4dp286h@v@`O%_b)Y~A; zv}r6U?zs&@uD_+(_4bwoy7*uozNvp?bXFoB8?l8yG0qsm1JYzIvB_OH4_2G*IIOwT zVl%HX1562vLVcxM_RG*~w_`FbIc!(T=3>r528#%mwwMK}uEhJ()3MEby zQQjzqjWkwfI~;Fuj(Lj=Ug0y`>~C7`w&wzjK(rPw+Hpd~EvQ-ufQOiB4OMpyUKJhw zqEt~jle9d7S~LI~$6Z->J~QJ{Vdn3!c}g9}*KG^Kzr^(7VI5Gk(mHLL{itj_hG?&K4Ws0+T4gLfi3eu$N=`s36geNC?c zm!~}vG6lx9Uf^5M;bWntF<-{p^bruy~f?sk9 zcETAPQZLoJ8JzMMg<-=ju4keY@SY%Wo?u9Gx=j&dfa6LIAB|IrbORLV1-H==Z1zCM zeZcOYpm5>U2fU7V*h;%n`8 zN95QhfD994={1*<2vKLCNF)feKOGk`R#K~G=;rfq}|)s20&MCa65 zUM?xF5!&e0lF%|U!#rD@I{~OsS_?=;s_MQ_b_s=PuWdC)q|UQ&ea)DMRh5>fpQjXe z%9#*x=7{iRCtBKT#H>#v%>77|{4_slZ)XCY{s3j_r{tdpvb#|r|sbS^dU1x70$eJMU!h{Y7Kd{dl}9&vxQl6Jt1a` zHQZrWyY0?!vqf@u-fxU_@+}u(%Wm>0I#KP48tiAPYY!TdW(o|KtVI|EUB9V`CBBNaBLVih7+yMVF|GSoIQD0Jfb{ z!OXq;(>Z?O`1gap(L~bUcp>Lc@Jl-})^=6P%<~~9ywY=$iu8pJ0m*hOPzr~q`23eX zgbs;VOxxENe0UMVeN*>uCn9Gk!4siN-e>x)pIKAbQz!G)TcqIJ0`JBBaX>1-4_XO_-HCS^vr2vjv#7KltDZdyQ{tlWh4$Gm zB>|O1cBDC)yG(sbnc*@w6e%e}r*|IhpXckx&;sQCwGdKH+3oSG-2)Bf#x`@<4ETAr z0My%7RFh6ZLiZ_;X6Mu1YmXx7C$lSZ^}1h;j`EZd6@%JNUe=btBE z%s=Xmo1Ps?8G`}9+6>iaB8bgjUdXT?=trMu|4yLX^m0Dg{m7rpKNJey|EwHI+nN1e zL^>qN%5Fg)dGs4DO~uwIdXImN)QJ*Jhpj7$fq_^`{3fwpztL@WBB}OwQ#Epo-mqMO zsM$UgpFiG&d#)lzEQ{3Q;)&zTw;SzGOah-Dpm{!q7<8*)Ti_;xvV2TYXa}=faXZy? z3y?~GY@kl)>G&EvEijk9y1S`*=zBJSB1iet>0;x1Ai)*`^{pj0JMs)KAM=@UyOGtO z3y0BouW$N&TnwU6!%zS%nIrnANvZF&vB1~P5_d`x-giHuG zPJ;>XkVoghm#kZXRf>qxxEix;2;D1CC~NrbO6NBX!`&_$iXwP~P*c($EVV|669kDO zKoTLZNF4Cskh!Jz5ga9uZ`3o%7Pv`d^;a=cXI|>y;zC3rYPFLQkF*nv(r>SQvD*## z(Vo%^9g`%XwS0t#94zPq;mYGLKu4LU3;txF26?V~A0xZbU4Lmy`)>SoQX^m7fd^*E z+%{R4eN!rIk~K)M&UEzxp9dbY;_I^c} zOc{wlIrN_P(PPqi51k_$>Lt|X6A^|CGYgKAmoI#Li?;Wq%q~q*L7ehZkUrMxW67Jl zhsb~+U?33QS>eqyN{(odAkbopo=Q$Az?L+NZW>j;#~@wCDX?=L5SI|OxI~7!Pli;e zELMFcZtJY3!|=Gr2L4>z8yQ-{To>(f80*#;6`4IAiqUw`=Pg$%C?#1 z_g@hIGerILSU>=P>z{gM|DS91A4cT@PEIB^hSop!uhMo#2G;+tQSpDO_6nOnPWSLU zS;a9m^DFMXR4?*X=}d7l;nXuHk&0|m`NQn%d?8|Ab3A9l9Jh5s120ibWBdB z$5YwsK3;wvp!Kn@)Qae{ef`0#NwlRpQ}k^r>yos_Ne1;xyKLO?4)t_G4eK~wkUS2A&@_;)K0-03XGBzU+5f+uMDxC z(s8!8!RvdC#@`~fx$r)TKdLD6fWEVdEYtV#{ncT-ZMX~eI#UeQ-+H(Z43vVn%Yj9X zLdu9>o%wnWdvzA-#d6Z~vzj-}V3FQ5;axDIZ;i(95IIU=GQ4WuU{tl-{gk!5{l4_d zvvb&uE{%!iFwpymz{wh?bKr1*qzeZb5f6e6m_ozRF&zux2mlK=v_(_s^R6b5lu?_W4W3#<$zeG~Pd)^!4tzhs}-Sx$FJP>)ZGF(hVTH|C3(U zs0PO&*h_ zNA-&qZpTP$$LtIgfiCn07}XDbK#HIXdmv8zdz4TY;ifNIH-0jy(gMSByG2EF~Th#eb_TueZC` zE?3I>UTMpKQ})=C;6p!?G)M6w^u*A57bD?2X`m3X^6;&4%i_m(uGJ3Z5h`nwxM<)H z$I5m?wN>O~8`BGnZ=y^p6;0+%_0K}Dcg|K;+fEi|qoBqvHj(M&aHGqNF48~XqhtU? z^ogwBzRlOfpAJ+Rw7IED8lRbTdBdyEK$gPUpUG}j-M42xDj_&qEAQEtbs>D#dRd7Y z<&TpSZ(quQDHiCFn&0xsrz~4`4tz!CdL8m~HxZM_agu@IrBpyeL1Ft}V$HX_ZqDPm z-f89)pjuEzGdq-PRu`b1m+qBGY{zr_>{6Ss>F|xHZlJj9dt5HD$u`1*WZe)qEIuDSR)%z+|n zatVlhQ?$w#XRS7xUrFE;Y8vMGhQS5*T{ZnY=q1P?w5g$OKJ#M&e??tAmPWHMj3xhS ziGxapy?kn@$~2%ZY;M8Bc@%$pkl%Rvj!?o%agBvpQ-Q61n9kznC4ttrRNQ4%GFR5u zyv%Yo9~yxQJWJSfj z?#HY$y=O~F|2pZs22pu|_&Ajd+D(Mt!nPUG{|1nlvP`=R#kKH zO*s$r_%ss5h1YO7k0bHJ2CXN)Yd6CHn~W!R=SqkWe=&nAZu(Q1G!xgcUilM@YVei@2@a`8he z9@pM`)VB*=e7-MWgLlXlc)t;fF&-AwM{E-EX}pViFn0I0CNw2bNEnN2dj!^4(^zS3 zobUm1uQnpqk_4q{pl*n06=TfK_C>UgurKFjRXsK_LEn};=79`TB12tv6KzwSu*-C8 z;=~ohDLZylHQ|Mpx-?yql>|e=vI1Z!epyUpAcDCp4T|*RV&X`Q$0ogNwy6mFALo^@ z9=&(9txO8V@E!@6^(W0{*~CT>+-MA~vnJULBxCTUW>X5>r7*eXYUT0B6+w@lzw%n> z_VjJ<2qf|(d6jYq2(x$(ZDf!yVkfnbvNmb5c|hhZ^2TV_LBz`9w!e_V*W_(MiA7|= z&EeIIkw*+$Xd!)j8<@_<}A5;~A_>3JT*kX^@}cDoLd>Qj<`Se^wdUa(j0dp+Tl8EptwBm{9OGsdFEq zM`!pjf(Lm(`$e3FLOjqA5LnN5o!}z{ zNf}rJuZh@yUtq&ErjHeGzX4(!luV!jB&;FAP|!R_QHYw#^Z1LwTePAKJ6X&IDNO#; z)#I@Xnnzyij~C@UH~X51JCgQeF0&hTXnuoElz#m{heZRexWc0k4<>0+ClX7%0 zEBqCCld1tD9Zwkr4{?Nor19#E5-YKfB8d?qgR82-Ow2^AuNevly2*tHA|sK!ybYkX zm-sLQH72P&{vEAW6+z~O5d0qd=xW~rua~5a?ymYFSD@8&gV)E5@RNNBAj^C99+Z5Z zR@Pq55mbCQbz+Mn$d_CMW<-+?TU960agEk1J<>d>0K=pF19yN))a~4>m^G&tc*xR+yMD*S=yip-q=H zIlredHpsJV8H(32@Zxc@bX6a21dUV95Th--8pE6C&3F>pk=yv$yd6@Haw;$v4+Fcb zRwn{Qo@0`7aPa2LQOP}j9v>sjOo5Kqvn|`FLizX zB+@-u4Lw|jsvz{p^>n8Vo8H2peIqJJnMN}A)q6%$Tmig7eu^}K2 zrh$X?T|ZMsoh{6pdw1G$_T<`Ds-G=jc;qcGdK4{?dN2-XxjDNbb(7pk|3JUVCU4y; z)?LXR>f+AAu)JEiti_Zy#z5{RgsC}R(@jl%9YZ>zu~hKQ*AxbvhC378-I@{~#%Y`Z zy=a=9YpewPIC+gkEUUwtUL7|RU7=!^Aa}Mk^6uxOgRGA#JXjWLsjFUnix|Mau{hDT z7mn*z1m5g`vP(#tjT0Zy4eAY(br&!RiiXE=ZI!{sE1#^#%x^Z7t1U)b<;%Y}Q9=5v z;wpDCEZ@OE36TWT=|gxigT@VaW9BvHS05;_P(#s z8zI4XFQys}q)<`tkX$WnSarn{3e!s}4(J!=Yf>+Y>cP3f;vr63f2{|S^`_pWc)^5_!R z*(x-fuBxL51@xe!lnDBKi}Br$c$BMZ3%f2Sa6kLabiBS{pq*yj;q|k(86x`PiC{p6 z_bxCW{>Q2BA8~Ggz&0jkrcU+-$ANBsOop*ms>34K9lNYil@}jC;?cYP(m^P}nR6FV zk(M%48Z&%2Rx$A&FhOEirEhY0(dn;-k(qkTU)sFQ`+-ih+s@A8g?r8Pw+}2;35WYf zi}VO`jS`p(tc)$X$a>-#WXoW!phhatC*$}|rk>|wUU71eUJG^$c6_jwX?iSHM@6__ zvV|6%U*$sSXJu9SX?2%M^kK|}a2QJ8AhF{fuXrHZxXsI~O zGKX45!K7p*MCPEQ=gp?eu&#AW*pR{lhQR##P_*{c_DjMGL|3T3-bSJ(o$|M{ytU}> zAV>wq*uE*qFo9KvnA^@juy{x<-u*#2NvkV={Ly}ysKYB-k`K3@K#^S1Bb$8Y#0L0# z`6IkSG&|Z$ODy|VLS+y5pFJx&8tvPmMd8c9FhCyiU8~k6FwkakUd^(_ml8`rnl>JS zZV){9G*)xBqPz^LDqRwyS6w86#D^~xP4($150M)SOZRe9sn=>V#aG0Iy(_^YcPpIz8QYM-#s+n% z@Jd?xQq?Xk6=<3xSY7XYP$$yd&Spu{A#uafiIfy8gRC`o0nk{ezEDjb=q_qRAlR1d zFq^*9Gn)yTG4b}R{!+3hWQ+u3GT~8nwl2S1lpw`s0X_qpxv)g+JIkVKl${sYf_nV~B>Em>M;RlqGb5WVil(89 zs=ld@|#;dq1*vQGz=7--Br-|l) zZ%Xh@v8>B7P?~}?Cg$q9_={59l%m~O&*a6TKsCMAzG&vD>k2WDzJ6!tc!V)+oxF;h zJH;apM=wO?r_+*#;ulohuP=E>^zon}a$NnlcQ{1$SO*i=jnGVcQa^>QOILc)e6;eNTI>os=eaJ{*^DE+~jc zS}TYeOykDmJ=6O%>m`i*>&pO_S;qMySJIyP=}4E&J%#1zju$RpVAkZbEl+p%?ZP^C z*$$2b4t%a(e+%>a>d_f_<JjxI#J1x;=hPd1zFPx=6T$;;X1TD*2(edZ3f46zaAoW>L53vS_J*N8TMB|n+;LD| zC=GkQPpyDY#Am4l49chDv*gojhRj_?63&&8#doW`INATAo(qY#{q}%nf@eTIXmtU< zdB<7YWfyCmBs|c)cK>1)v&M#!yNj#4d$~pVfDWQc_ke1?fw{T1Nce_b`v|Vp5ig(H zJvRD^+ps46^hLX;=e2!2e;w9y1D@!D$c@Jc&%%%IL=+xzw55&2?darw=9g~>P z9>?Kdc$r?6c$m%x2S$sdpPl>GQZ{rC9mPS63*qjCVa?OIBj!fW zm|g?>CVfGXNjOfcyqImXR_(tXS(F{FcoNzKvG5R$IgGaxC@)i(e+$ME}vPVIhd|mx2IIE+f zM?9opQHIVgBWu)^A|RzXw!^??S!x)SZOwZaJkGjc<_}2l^eSBm!eAJG9T>EC6I_sy z?bxzDIAn&K5*mX)$RQzDA?s)-no-XF(g*yl4%+GBf`##bDXJ==AQk*xmnatI;SsLp zP9XTHq5mmS=iWu~9ES>b%Q=1aMa|ya^vj$@qz9S!ih{T8_PD%Sf_QrNKwgrXw9ldm zHRVR98*{C?_XNpJn{abA!oix_mowRMu^2lV-LPi;0+?-F(>^5#OHX-fPED zCu^l7u3E%STI}c4{J2!)9SUlGP_@!d?5W^QJXOI-Ea`hFMKjR7TluLvzC-ozCPn1`Tpy z!vlv@_Z58ILX6>nDjTp-1LlFMx~-%GA`aJvG$?8*Ihn;mH37eK**rmOEwqegf-Ccx zrIX4;{c~RK>XuTXxYo5kMiWMy)!IC{*DHG@E$hx?RwP@+wuad(P1{@%tRkyJRqD)3 zMHHHZ4boqDn>-=DgR5VlhQTpfVy182Gk;A_S8A1-;U1RR>+$62>(MUx@Nox$vTjHq z%QR=j!6Gdyb5wu7y(YUktwMuW5<@jl?m4cv4BODiT5o8qVdC0MBqGr@-YBIwnpZAY znX9(_uQjP}JJ=!~Ve9#5I~rUnN|P_3D$LqZcvBnywYhjlMSFHm`;u9GPla{5QD7(7*6Tb3Svr8;(nuAd81q$*uq6HC_&~je*Ca7hP4sJp0av{M8480wF zxASi7Qv+~@2U%Nu1Ud;s-G4CTVWIPyx!sg&8ZG0Wq zG_}i3C(6_1>q3w!EH7$Kwq8uBp2F2N7}l65mk1p*9v0&+;th=_E-W)E;w}P(j⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ac72c34 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..0adc8e1 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..e2a396d --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,14 @@ +plugins { + `gradle-enterprise` + id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0" +} + +rootProject.name = "tbot-api" + +gradleEnterprise { + buildScan { + termsOfServiceUrl = "https://gradle.com/terms-of-service" + termsOfServiceAgree = "yes" + publishAlwaysIf(System.getenv("CI") == "true") + } +} diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/Methods.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/Methods.kt new file mode 100644 index 0000000..d8da3f2 --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/Methods.kt @@ -0,0 +1,2170 @@ +package me.alllex.tbot.api.model + +import me.alllex.tbot.api.client.* + + + +/** + * Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects. + * + * @param offset Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten. + * @param limit Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. + * @param timeout Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getUpdates( + offset: Long? = null, + limit: Long? = null, + timeout: Seconds? = null, + allowedUpdates: List? = null, +): List = + tryGetUpdates(GetUpdatesRequest(offset, limit, timeout, allowedUpdates)).getResultOrThrow() + +/** + * Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. + * + * If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content. + * + * @param url HTTPS URL to send updates to. Use an empty string to remove webhook integration + * @param certificate Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details. + * @param ipAddress The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS + * @param maxConnections The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time. + * @param dropPendingUpdates Pass True to drop all pending updates + * @param secretToken A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setWebhook( + url: String, + certificate: String? = null, + ipAddress: String? = null, + maxConnections: Long? = null, + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null, + secretToken: String? = null, +): Boolean = + trySetWebhook(SetWebhookRequest(url, certificate, ipAddress, maxConnections, allowedUpdates, dropPendingUpdates, secretToken)).getResultOrThrow() + +/** + * Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. + * + * @param dropPendingUpdates Pass True to drop all pending updates + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteWebhook( + dropPendingUpdates: Boolean? = null, +): Boolean = + tryDeleteWebhook(DeleteWebhookRequest(dropPendingUpdates)).getResultOrThrow() + +/** + * Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the url field empty. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getWebhookInfo(): WebhookInfo = + tryGetWebhookInfo().getResultOrThrow() + +/** + * A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMe(): User = + tryGetMe().getResultOrThrow() + +/** + * Use this method to log out from the cloud Bot API server before launching the bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. After a successful call, you can immediately log in on a local server, but will not be able to log in back to the cloud Bot API server for 10 minutes. Returns True on success. Requires no parameters. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.logOut(): Boolean = + tryLogOut().getResultOrThrow() + +/** + * Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart. The method will return error 429 in the first 10 minutes after the bot is launched. Returns True on success. Requires no parameters. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.close(): Boolean = + tryClose().getResultOrThrow() + +/** + * Use this method to send text messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param text Text of the message to be sent, 1-4096 characters after entities parsing + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendMessage( + chatId: ChatId, + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendMessage(SendMessageRequest(chatId, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the forwarded message from forwarding and saving + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.forwardMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, +): Message = + tryForwardMessage(ForwardMessageRequest(chatId, fromChatId, messageId, messageThreadId, disableNotification, protectContent)).getResultOrThrow() + +/** + * Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept + * @param parseMode Mode for parsing entities in the new caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.copyMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): MessageIdResult = + tryCopyMessage(CopyMessageRequest(chatId, fromChatId, messageId, messageThreadId, caption, parseMode, captionEntities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send photos. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the photo needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendPhoto( + chatId: ChatId, + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendPhoto(SendPhotoRequest(chatId, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + * + * For sending voice messages, use the sendVoice method instead. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param audio Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Audio caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the audio in seconds + * @param performer Performer + * @param title Track name + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendAudio( + chatId: ChatId, + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendAudio(SendAudioRequest(chatId, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param document File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Disables automatic server-side content type detection for files uploaded using multipart/form-data + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendDocument( + chatId: ChatId, + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendDocument(SendDocumentRequest(chatId, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param video Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param width Video width + * @param height Video height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the video needs to be covered with a spoiler animation + * @param supportsStreaming Pass True if the uploaded video is suitable for streaming + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendVideo( + chatId: ChatId, + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendVideo(SendVideoRequest(chatId, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param animation Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent animation in seconds + * @param width Animation width + * @param height Animation height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Animation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the animation needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendAnimation( + chatId: ChatId, + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendAnimation(SendAnimationRequest(chatId, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param voice Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Voice message caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the voice message in seconds + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendVoice( + chatId: ChatId, + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendVoice(SendVoiceRequest(chatId, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param videoNote Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param length Video width and height, i.e. diameter of the video message + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendVideoNote( + chatId: ChatId, + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendVideoNote(SendVideoNoteRequest(chatId, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param media A JSON-serialized array describing messages to be sent, must include 2-10 items + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends messages silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent messages from forwarding and saving + * @param replyToMessageId If the messages are a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendMediaGroup( + chatId: ChatId, + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): List = + trySendMediaGroup(SendMediaGroupRequest(chatId, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply)).getResultOrThrow() + +/** + * Use this method to send point on the map. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the location + * @param longitude Longitude of the location + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Period in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400. + * @param heading For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendLocation( + chatId: ChatId, + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendLocation(SendLocationRequest(chatId, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send information about a venue. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the venue + * @param longitude Longitude of the venue + * @param title Name of the venue + * @param address Address of the venue + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param foursquareId Foursquare identifier of the venue + * @param foursquareType Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Google Places identifier of the venue + * @param googlePlaceType Google Places type of the venue. (See supported types.) + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendVenue( + chatId: ChatId, + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendVenue(SendVenueRequest(chatId, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send phone contacts. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param lastName Contact's last name + * @param vcard Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendContact( + chatId: ChatId, + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendContact(SendContactRequest(chatId, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send a native poll. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param question Poll question, 1-300 characters + * @param options A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param isAnonymous True, if the poll needs to be anonymous, defaults to True + * @param type Poll type, “quiz” or “regular”, defaults to “regular” + * @param allowsMultipleAnswers True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False + * @param correctOptionId 0-based identifier of the correct answer option, required for polls in quiz mode + * @param explanation Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + * @param explanationParseMode Mode for parsing entities in the explanation. See formatting options for more details. + * @param explanationEntities A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode + * @param openPeriod Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. + * @param closeDate Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. + * @param isClosed Pass True if the poll needs to be immediately closed. This can be useful for poll preview. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendPoll( + chatId: ChatId, + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendPoll(SendPollRequest(chatId, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji on which the dice throw animation is based. Currently, must be one of “”, “”, “”, “”, “”, or “”. Dice can have values 1-6 for “”, “” and “”, values 1-5 for “” and “”, and values 1-64 for “”. Defaults to “” + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendDice( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendDice(SendDiceRequest(chatId, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. + * + * Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. + * + * We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param action Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. + * @param messageThreadId Unique identifier for the target message thread; supergroups only + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendChatAction( + chatId: ChatId, + action: String, + messageThreadId: MessageThreadId? = null, +): Boolean = + trySendChatAction(SendChatActionRequest(chatId, action, messageThreadId)).getResultOrThrow() + +/** + * Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. + * + * @param userId Unique identifier of the target user + * @param offset Sequential number of the first photo to be returned. By default, all photos are returned. + * @param limit Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getUserProfilePhotos( + userId: UserId, + offset: Long? = null, + limit: Long? = null, +): UserProfilePhotos = + tryGetUserProfilePhotos(GetUserProfilePhotosRequest(userId, offset, limit)).getResultOrThrow() + +/** + * Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. + * + * @param fileId File identifier to get information about + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getFile( + fileId: FileId, +): File = + tryGetFile(GetFileRequest(fileId)).getResultOrThrow() + +/** + * Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param untilDate Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + * @param revokeMessages Pass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.banChatMember( + chatId: ChatId, + userId: UserId, + untilDate: UnixTimestamp? = null, + revokeMessages: Boolean? = null, +): Boolean = + tryBanChatMember(BanChatMemberRequest(chatId, userId, untilDate, revokeMessages)).getResultOrThrow() + +/** + * Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param onlyIfBanned Do nothing if the user is not banned + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unbanChatMember( + chatId: ChatId, + userId: UserId, + onlyIfBanned: Boolean? = null, +): Boolean = + tryUnbanChatMember(UnbanChatMemberRequest(chatId, userId, onlyIfBanned)).getResultOrThrow() + +/** + * Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param permissions A JSON-serialized object for new user permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + * @param untilDate Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.restrictChatMember( + chatId: ChatId, + userId: UserId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, + untilDate: UnixTimestamp? = null, +): Boolean = + tryRestrictChatMember(RestrictChatMemberRequest(chatId, userId, permissions, useIndependentChatPermissions, untilDate)).getResultOrThrow() + +/** + * Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param isAnonymous Pass True if the administrator's presence in the chat is hidden + * @param canManageChat Pass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canPostMessages Pass True if the administrator can post messages in the channel; channels only + * @param canEditMessages Pass True if the administrator can edit messages of other users and can pin messages; channels only + * @param canDeleteMessages Pass True if the administrator can delete messages of other users + * @param canPostStories Pass True if the administrator can post stories in the channel; channels only + * @param canEditStories Pass True if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Pass True if the administrator can delete stories posted by other users; channels only + * @param canManageVideoChats Pass True if the administrator can manage video chats + * @param canRestrictMembers Pass True if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers Pass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) + * @param canChangeInfo Pass True if the administrator can change chat title, photo and other settings + * @param canInviteUsers Pass True if the administrator can invite new users to the chat + * @param canPinMessages Pass True if the administrator can pin messages, supergroups only + * @param canManageTopics Pass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.promoteChatMember( + chatId: ChatId, + userId: UserId, + isAnonymous: Boolean? = null, + canManageChat: Boolean? = null, + canPostMessages: Boolean? = null, + canEditMessages: Boolean? = null, + canDeleteMessages: Boolean? = null, + canPostStories: Boolean? = null, + canEditStories: Boolean? = null, + canDeleteStories: Boolean? = null, + canManageVideoChats: Boolean? = null, + canRestrictMembers: Boolean? = null, + canPromoteMembers: Boolean? = null, + canChangeInfo: Boolean? = null, + canInviteUsers: Boolean? = null, + canPinMessages: Boolean? = null, + canManageTopics: Boolean? = null, +): Boolean = + tryPromoteChatMember(PromoteChatMemberRequest(chatId, userId, isAnonymous, canManageChat, canPostMessages, canEditMessages, canDeleteMessages, canPostStories, canEditStories, canDeleteStories, canManageVideoChats, canRestrictMembers, canPromoteMembers, canChangeInfo, canInviteUsers, canPinMessages, canManageTopics)).getResultOrThrow() + +/** + * Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param customTitle New custom title for the administrator; 0-16 characters, emoji are not allowed + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatAdministratorCustomTitle( + chatId: ChatId, + userId: UserId, + customTitle: String, +): Boolean = + trySetChatAdministratorCustomTitle(SetChatAdministratorCustomTitleRequest(chatId, userId, customTitle)).getResultOrThrow() + +/** + * Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.banChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): Boolean = + tryBanChatSenderChat(BanChatSenderChatRequest(chatId, senderChatId)).getResultOrThrow() + +/** + * Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unbanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): Boolean = + tryUnbanChatSenderChat(UnbanChatSenderChatRequest(chatId, senderChatId)).getResultOrThrow() + +/** + * Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param permissions A JSON-serialized object for new default chat permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatPermissions( + chatId: ChatId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, +): Boolean = + trySetChatPermissions(SetChatPermissionsRequest(chatId, permissions, useIndependentChatPermissions)).getResultOrThrow() + +/** + * Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.exportChatInviteLink( + chatId: ChatId, +): String = + tryExportChatInviteLink(ExportChatInviteLinkRequest(chatId)).getResultOrThrow() + +/** + * Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.createChatInviteLink( + chatId: ChatId, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): ChatInviteLink = + tryCreateChatInviteLink(CreateChatInviteLinkRequest(chatId, name, expireDate, memberLimit, createsJoinRequest)).getResultOrThrow() + +/** + * Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to edit + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editChatInviteLink( + chatId: ChatId, + inviteLink: String, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): ChatInviteLink = + tryEditChatInviteLink(EditChatInviteLinkRequest(chatId, inviteLink, name, expireDate, memberLimit, createsJoinRequest)).getResultOrThrow() + +/** + * Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object. + * + * @param chatId Unique identifier of the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to revoke + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.revokeChatInviteLink( + chatId: ChatId, + inviteLink: String, +): ChatInviteLink = + tryRevokeChatInviteLink(RevokeChatInviteLinkRequest(chatId, inviteLink)).getResultOrThrow() + +/** + * Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.approveChatJoinRequest( + chatId: ChatId, + userId: UserId, +): Boolean = + tryApproveChatJoinRequest(ApproveChatJoinRequestRequest(chatId, userId)).getResultOrThrow() + +/** + * Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.declineChatJoinRequest( + chatId: ChatId, + userId: UserId, +): Boolean = + tryDeclineChatJoinRequest(DeclineChatJoinRequestRequest(chatId, userId)).getResultOrThrow() + +/** + * Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo New chat photo, uploaded using multipart/form-data + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatPhoto( + chatId: ChatId, + photo: String, +): Boolean = + trySetChatPhoto(SetChatPhotoRequest(chatId, photo)).getResultOrThrow() + +/** + * Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteChatPhoto( + chatId: ChatId, +): Boolean = + tryDeleteChatPhoto(DeleteChatPhotoRequest(chatId)).getResultOrThrow() + +/** + * Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title New chat title, 1-128 characters + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatTitle( + chatId: ChatId, + title: String, +): Boolean = + trySetChatTitle(SetChatTitleRequest(chatId, title)).getResultOrThrow() + +/** + * Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param description New chat description, 0-255 characters + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatDescription( + chatId: ChatId, + description: String? = null, +): Boolean = + trySetChatDescription(SetChatDescriptionRequest(chatId, description)).getResultOrThrow() + +/** + * Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to pin + * @param disableNotification Pass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.pinChatMessage( + chatId: ChatId, + messageId: MessageId, + disableNotification: Boolean? = null, +): Boolean = + tryPinChatMessage(PinChatMessageRequest(chatId, messageId, disableNotification)).getResultOrThrow() + +/** + * Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unpinChatMessage( + chatId: ChatId, + messageId: MessageId? = null, +): Boolean = + tryUnpinChatMessage(UnpinChatMessageRequest(chatId, messageId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unpinAllChatMessages( + chatId: ChatId, +): Boolean = + tryUnpinAllChatMessages(UnpinAllChatMessagesRequest(chatId)).getResultOrThrow() + +/** + * Use this method for your bot to leave a group, supergroup or channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.leaveChat( + chatId: ChatId, +): Boolean = + tryLeaveChat(LeaveChatRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getChat( + chatId: ChatId, +): Chat = + tryGetChat(GetChatRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getChatAdministrators( + chatId: ChatId, +): List = + tryGetChatAdministrators(GetChatAdministratorsRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get the number of members in a chat. Returns Int on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getChatMemberCount( + chatId: ChatId, +): Int = + tryGetChatMemberCount(GetChatMemberCountRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getChatMember( + chatId: ChatId, + userId: UserId, +): ChatMember = + tryGetChatMember(GetChatMemberRequest(chatId, userId)).getResultOrThrow() + +/** + * Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param stickerSetName Name of the sticker set to be set as the group sticker set + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatStickerSet( + chatId: ChatId, + stickerSetName: String, +): Boolean = + trySetChatStickerSet(SetChatStickerSetRequest(chatId, stickerSetName)).getResultOrThrow() + +/** + * Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteChatStickerSet( + chatId: ChatId, +): Boolean = + tryDeleteChatStickerSet(DeleteChatStickerSetRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getForumTopicIconStickers(): List = + tryGetForumTopicIconStickers().getResultOrThrow() + +/** + * Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name Topic name, 1-128 characters + * @param iconColor Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F) + * @param iconCustomEmojiId Unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.createForumTopic( + chatId: ChatId, + name: String, + iconColor: Long? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): ForumTopic = + tryCreateForumTopic(CreateForumTopicRequest(chatId, name, iconColor, iconCustomEmojiId)).getResultOrThrow() + +/** + * Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + * @param name New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept + * @param iconCustomEmojiId New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, + name: String? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): Boolean = + tryEditForumTopic(EditForumTopicRequest(chatId, messageThreadId, name, iconCustomEmojiId)).getResultOrThrow() + +/** + * Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.closeForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + tryCloseForumTopic(CloseForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.reopenForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + tryReopenForumTopic(ReopenForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + tryDeleteForumTopic(DeleteForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unpinAllForumTopicMessages( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + tryUnpinAllForumTopicMessages(UnpinAllForumTopicMessagesRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name New topic name, 1-128 characters + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editGeneralForumTopic( + chatId: ChatId, + name: String, +): Boolean = + tryEditGeneralForumTopic(EditGeneralForumTopicRequest(chatId, name)).getResultOrThrow() + +/** + * Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.closeGeneralForumTopic( + chatId: ChatId, +): Boolean = + tryCloseGeneralForumTopic(CloseGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.reopenGeneralForumTopic( + chatId: ChatId, +): Boolean = + tryReopenGeneralForumTopic(ReopenGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.hideGeneralForumTopic( + chatId: ChatId, +): Boolean = + tryHideGeneralForumTopic(HideGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unhideGeneralForumTopic( + chatId: ChatId, +): Boolean = + tryUnhideGeneralForumTopic(UnhideGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.unpinAllGeneralForumTopicMessages( + chatId: ChatId, +): Boolean = + tryUnpinAllGeneralForumTopicMessages(UnpinAllGeneralForumTopicMessagesRequest(chatId)).getResultOrThrow() + +/** + * Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. + * + * Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * + * @param callbackQueryId Unique identifier for the query to be answered + * @param text Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters + * @param showAlert If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. + * @param url URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * @param cacheTime The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.answerCallbackQuery( + callbackQueryId: CallbackQueryId, + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): Boolean = + tryAnswerCallbackQuery(AnswerCallbackQueryRequest(callbackQueryId, text, showAlert, url, cacheTime)).getResultOrThrow() + +/** + * Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success. + * + * @param commands A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setMyCommands( + commands: List, + scope: BotCommandScope? = null, + languageCode: String? = null, +): Boolean = + trySetMyCommands(SetMyCommandsRequest(commands, scope, languageCode)).getResultOrThrow() + +/** + * Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success. + * + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): Boolean = + tryDeleteMyCommands(DeleteMyCommandsRequest(scope, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned. + * + * @param scope A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): List = + tryGetMyCommands(GetMyCommandsRequest(scope, languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's name. Returns True on success. + * + * @param name New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setMyName( + name: String? = null, + languageCode: String? = null, +): Boolean = + trySetMyName(SetMyNameRequest(name, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot name for the given user language. Returns BotName on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMyName( + languageCode: String? = null, +): BotName = + tryGetMyName(GetMyNameRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success. + * + * @param description New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setMyDescription( + description: String? = null, + languageCode: String? = null, +): Boolean = + trySetMyDescription(SetMyDescriptionRequest(description, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot description for the given user language. Returns BotDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMyDescription( + languageCode: String? = null, +): BotDescription = + tryGetMyDescription(GetMyDescriptionRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success. + * + * @param shortDescription New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setMyShortDescription( + shortDescription: String? = null, + languageCode: String? = null, +): Boolean = + trySetMyShortDescription(SetMyShortDescriptionRequest(shortDescription, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMyShortDescription( + languageCode: String? = null, +): BotShortDescription = + tryGetMyShortDescription(GetMyShortDescriptionRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be changed + * @param menuButton A JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setChatMenuButton( + chatId: ChatId? = null, + menuButton: MenuButton? = null, +): Boolean = + trySetChatMenuButton(SetChatMenuButtonRequest(chatId, menuButton)).getResultOrThrow() + +/** + * Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be returned + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getChatMenuButton( + chatId: ChatId? = null, +): MenuButton = + tryGetChatMenuButton(GetChatMenuButtonRequest(chatId)).getResultOrThrow() + +/** + * Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success. + * + * @param rights A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared. + * @param forChannels Pass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setMyDefaultAdministratorRights( + rights: ChatAdministratorRights? = null, + forChannels: Boolean? = null, +): Boolean = + trySetMyDefaultAdministratorRights(SetMyDefaultAdministratorRightsRequest(rights, forChannels)).getResultOrThrow() + +/** + * Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success. + * + * @param forChannels Pass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getMyDefaultAdministratorRights( + forChannels: Boolean? = null, +): ChatAdministratorRights = + tryGetMyDefaultAdministratorRights(GetMyDefaultAdministratorRightsRequest(forChannels)).getResultOrThrow() + +/** + * Use this method to edit text and game messages. On success the edited Message is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editMessageText( + text: String, + chatId: ChatId, + messageId: MessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryEditMessageText(EditMessageTextRequest(text = text, chatId = chatId, messageId = messageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit text and game messages. On success True is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editInlineMessageText( + text: String, + inlineMessageId: InlineMessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryEditInlineMessageText(EditMessageTextRequest(text = text, inlineMessageId = inlineMessageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit captions of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editMessageCaption( + chatId: ChatId, + messageId: MessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryEditMessageCaption(EditMessageCaptionRequest(chatId = chatId, messageId = messageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit captions of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editInlineMessageCaption( + inlineMessageId: InlineMessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryEditInlineMessageCaption(EditMessageCaptionRequest(inlineMessageId = inlineMessageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success the edited Message is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editMessageMedia( + media: InputMedia, + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryEditMessageMedia(EditMessageMediaRequest(media = media, chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success True is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editInlineMessageMedia( + media: InputMedia, + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryEditInlineMessageMedia(EditMessageMediaRequest(media = media, inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success the edited Message is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editMessageLiveLocation( + latitude: Double, + longitude: Double, + chatId: ChatId, + messageId: MessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryEditMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, chatId = chatId, messageId = messageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success True is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editInlineMessageLiveLocation( + latitude: Double, + longitude: Double, + inlineMessageId: InlineMessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryEditInlineMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, inlineMessageId = inlineMessageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop updating a live location message before live_period expires. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message with live location to stop + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.stopMessageLiveLocation( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryStopMessageLiveLocation(StopMessageLiveLocationRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop updating a live location message before live_period expires. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.stopInlineMessageLiveLocation( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryStopInlineMessageLiveLocation(StopMessageLiveLocationRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit only the reply markup of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editMessageReplyMarkup( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + tryEditMessageReplyMarkup(EditMessageReplyMarkupRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit only the reply markup of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.editInlineMessageReplyMarkup( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + tryEditInlineMessageReplyMarkup(EditMessageReplyMarkupRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the original message with the poll + * @param replyMarkup A JSON-serialized object for a new message inline keyboard. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.stopPoll( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Poll = + tryStopPoll(StopPollRequest(chatId, messageId, replyMarkup)).getResultOrThrow() + +/** + * Use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Service messages about a supergroup, channel, or forum topic creation can't be deleted. - A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots can delete incoming messages in private chats. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the message to delete + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteMessage( + chatId: ChatId, + messageId: MessageId, +): Boolean = + tryDeleteMessage(DeleteMessageRequest(chatId, messageId)).getResultOrThrow() + +/** + * Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param sticker Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji associated with the sticker; only for just uploaded stickers + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendSticker( + chatId: ChatId, + sticker: String, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + trySendSticker(SendStickerRequest(chatId, sticker, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to get a sticker set. On success, a StickerSet object is returned. + * + * @param name Name of the sticker set + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getStickerSet( + name: String, +): StickerSet = + tryGetStickerSet(GetStickerSetRequest(name)).getResultOrThrow() + +/** + * Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects. + * + * @param customEmojiIds List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getCustomEmojiStickers( + customEmojiIds: List, +): List = + tryGetCustomEmojiStickers(GetCustomEmojiStickersRequest(customEmojiIds)).getResultOrThrow() + +/** + * Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success. + * + * @param userId User identifier of sticker file owner + * @param sticker A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files » + * @param stickerFormat Format of the sticker, must be one of “static”, “animated”, “video” + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.uploadStickerFile( + userId: UserId, + sticker: String, + stickerFormat: String, +): File = + tryUploadStickerFile(UploadStickerFileRequest(userId, sticker, stickerFormat)).getResultOrThrow() + +/** + * Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success. + * + * @param userId User identifier of created sticker set owner + * @param name Short name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_". is case insensitive. 1-64 characters. + * @param title Sticker set title, 1-64 characters + * @param stickers A JSON-serialized list of 1-50 initial stickers to be added to the sticker set + * @param stickerFormat Format of stickers in the set, must be one of “static”, “animated”, “video” + * @param stickerType Type of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created. + * @param needsRepainting Pass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.createNewStickerSet( + userId: UserId, + name: String, + title: String, + stickers: List, + stickerFormat: String, + stickerType: String? = null, + needsRepainting: Boolean? = null, +): Boolean = + tryCreateNewStickerSet(CreateNewStickerSetRequest(userId, name, title, stickers, stickerFormat, stickerType, needsRepainting)).getResultOrThrow() + +/** + * Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success. + * + * @param userId User identifier of sticker set owner + * @param name Sticker set name + * @param sticker A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.addStickerToSet( + userId: UserId, + name: String, + sticker: InputSticker, +): Boolean = + tryAddStickerToSet(AddStickerToSetRequest(userId, name, sticker)).getResultOrThrow() + +/** + * Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param position New sticker position in the set, zero-based + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerPositionInSet( + sticker: String, + position: Long, +): Boolean = + trySetStickerPositionInSet(SetStickerPositionInSetRequest(sticker, position)).getResultOrThrow() + +/** + * Use this method to delete a sticker from a set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteStickerFromSet( + sticker: String, +): Boolean = + tryDeleteStickerFromSet(DeleteStickerFromSetRequest(sticker)).getResultOrThrow() + +/** + * Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param emojiList A JSON-serialized list of 1-20 emoji associated with the sticker + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerEmojiList( + sticker: String, + emojiList: List, +): Boolean = + trySetStickerEmojiList(SetStickerEmojiListRequest(sticker, emojiList)).getResultOrThrow() + +/** + * Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param keywords A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerKeywords( + sticker: String, + keywords: List? = null, +): Boolean = + trySetStickerKeywords(SetStickerKeywordsRequest(sticker, keywords)).getResultOrThrow() + +/** + * Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param maskPosition A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerMaskPosition( + sticker: String, + maskPosition: MaskPosition? = null, +): Boolean = + trySetStickerMaskPosition(SetStickerMaskPositionRequest(sticker, maskPosition)).getResultOrThrow() + +/** + * Use this method to set the title of a created sticker set. Returns True on success. + * + * @param name Sticker set name + * @param title Sticker set title, 1-64 characters + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerSetTitle( + name: String, + title: String, +): Boolean = + trySetStickerSetTitle(SetStickerSetTitleRequest(name, title)).getResultOrThrow() + +/** + * Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success. + * + * @param name Sticker set name + * @param userId User identifier of the sticker set owner + * @param thumbnail A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setStickerSetThumbnail( + name: String, + userId: UserId, + thumbnail: String? = null, +): Boolean = + trySetStickerSetThumbnail(SetStickerSetThumbnailRequest(name, userId, thumbnail)).getResultOrThrow() + +/** + * Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success. + * + * @param name Sticker set name + * @param customEmojiId Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setCustomEmojiStickerSetThumbnail( + name: String, + customEmojiId: CustomEmojiId? = null, +): Boolean = + trySetCustomEmojiStickerSetThumbnail(SetCustomEmojiStickerSetThumbnailRequest(name, customEmojiId)).getResultOrThrow() + +/** + * Use this method to delete a sticker set that was created by the bot. Returns True on success. + * + * @param name Sticker set name + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.deleteStickerSet( + name: String, +): Boolean = + tryDeleteStickerSet(DeleteStickerSetRequest(name)).getResultOrThrow() + +/** + * Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. + * + * @param inlineQueryId Unique identifier for the answered query + * @param results A JSON-serialized array of results for the inline query + * @param cacheTime The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. + * @param isPersonal Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query. + * @param nextOffset Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes. + * @param button A JSON-serialized object describing a button to be shown above inline query results + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.answerInlineQuery( + inlineQueryId: InlineQueryId, + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): Boolean = + tryAnswerInlineQuery(AnswerInlineQueryRequest(inlineQueryId, results, cacheTime, isPersonal, nextOffset, button)).getResultOrThrow() + +/** + * Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned. + * + * @param webAppQueryId Unique identifier for the query to be answered + * @param result A JSON-serialized object describing the message to be sent + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.answerWebAppQuery( + webAppQueryId: WebAppQueryId, + result: InlineQueryResult, +): SentWebAppMessage = + tryAnswerWebAppQuery(AnswerWebAppQueryRequest(webAppQueryId, result)).getResultOrThrow() + +/** + * Use this method to send invoices. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param startParameter Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to provider + * @param isFlexible Pass True if the final price depends on the shipping method + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendInvoice( + chatId: ChatId, + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + messageThreadId: MessageThreadId? = null, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + startParameter: String? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + trySendInvoice(SendInvoiceRequest(chatId, title, description, payload, providerToken, currency, prices, messageThreadId, maxTipAmount, suggestedTipAmounts, startParameter, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to create a link for an invoice. Returns the created invoice link as String on success. + * + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to the provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to the provider + * @param isFlexible Pass True if the final price depends on the shipping method + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.createInvoiceLink( + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, +): String = + tryCreateInvoiceLink(CreateInvoiceLinkRequest(title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible)).getResultOrThrow() + +/** + * If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. + * + * @param shippingQueryId Unique identifier for the query to be answered + * @param ok Pass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible) + * @param shippingOptions Required if ok is True. A JSON-serialized array of available shipping options. + * @param errorMessage Required if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.answerShippingQuery( + shippingQueryId: ShippingQueryId, + ok: Boolean, + shippingOptions: List? = null, + errorMessage: String? = null, +): Boolean = + tryAnswerShippingQuery(AnswerShippingQueryRequest(shippingQueryId, ok, shippingOptions, errorMessage)).getResultOrThrow() + +/** + * Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + * + * @param preCheckoutQueryId Unique identifier for the query to be answered + * @param ok Specify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems. + * @param errorMessage Required if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.answerPreCheckoutQuery( + preCheckoutQueryId: String, + ok: Boolean, + errorMessage: String? = null, +): Boolean = + tryAnswerPreCheckoutQuery(AnswerPreCheckoutQueryRequest(preCheckoutQueryId, ok, errorMessage)).getResultOrThrow() + +/** + * Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success. + * + * Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues. + * + * @param userId User identifier + * @param errors A JSON-serialized array describing the errors + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setPassportDataErrors( + userId: UserId, + errors: List, +): Boolean = + trySetPassportDataErrors(SetPassportDataErrorsRequest(userId, errors)).getResultOrThrow() + +/** + * Use this method to send a game. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat + * @param gameShortName Short name of the game, serves as the unique identifier for the game. Set up your games via @BotFather. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game. + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.sendGame( + chatId: ChatId, + gameShortName: String, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + trySendGame(SendGameRequest(chatId, gameShortName, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to set the score of the specified user in a game message. On success the edited Message is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + chatId: ChatId, + messageId: MessageId, +): Message = + trySetGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, chatId = chatId, messageId = messageId)).getResultOrThrow() + +/** + * Use this method to set the score of the specified user in a game message. On success True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.setInlineGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + inlineMessageId: InlineMessageId, +): Boolean = + trySetInlineGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, inlineMessageId = inlineMessageId)).getResultOrThrow() + +/** + * Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects. + * + * This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change. + * + * @param userId Target user id + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +@Throws(TelegramBotApiException::class) +suspend fun TelegramBotApiClient.getGameHighScores( + userId: UserId, + chatId: ChatId? = null, + messageId: MessageId? = null, + inlineMessageId: InlineMessageId? = null, +): List = + tryGetGameHighScores(GetGameHighScoresRequest(userId, chatId, messageId, inlineMessageId)).getResultOrThrow() diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/RequestTypes.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/RequestTypes.kt new file mode 100644 index 0000000..64edaa2 --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/RequestTypes.kt @@ -0,0 +1,2122 @@ +package me.alllex.tbot.api.model + +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString + + +/** + * Request body for [getUpdates]. + * + * @param offset Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten. + * @param limit Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. + * @param timeout Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time. + */ +@Serializable +data class GetUpdatesRequest( + val offset: Long? = null, + val limit: Long? = null, + val timeout: Seconds? = null, + val allowedUpdates: List? = null, +) { + override fun toString() = DebugStringBuilder("GetUpdatesRequest").prop("offset", offset).prop("limit", limit).prop("timeout", timeout).prop("allowedUpdates", allowedUpdates).toString() +} + +/** + * Request body for [setWebhook]. + * + * @param url HTTPS URL to send updates to. Use an empty string to remove webhook integration + * @param certificate Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details. + * @param ipAddress The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS + * @param maxConnections The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time. + * @param dropPendingUpdates Pass True to drop all pending updates + * @param secretToken A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you. + */ +@Serializable +data class SetWebhookRequest( + val url: String, + val certificate: String? = null, + val ipAddress: String? = null, + val maxConnections: Long? = null, + val allowedUpdates: List? = null, + val dropPendingUpdates: Boolean? = null, + val secretToken: String? = null, +) { + override fun toString() = DebugStringBuilder("SetWebhookRequest").prop("url", url).prop("certificate", certificate).prop("ipAddress", ipAddress).prop("maxConnections", maxConnections).prop("allowedUpdates", allowedUpdates).prop("dropPendingUpdates", dropPendingUpdates).prop("secretToken", secretToken).toString() +} + +/** + * Request body for [deleteWebhook]. + * + * @param dropPendingUpdates Pass True to drop all pending updates + */ +@Serializable +data class DeleteWebhookRequest( + val dropPendingUpdates: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("DeleteWebhookRequest").prop("dropPendingUpdates", dropPendingUpdates).toString() +} + +/** + * Request body for [sendMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param text Text of the message to be sent, 1-4096 characters after entities parsing + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendMessageRequest( + val chatId: ChatId, + val text: String, + val messageThreadId: MessageThreadId? = null, + val parseMode: ParseMode? = null, + val entities: List? = null, + val disableWebPagePreview: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendMessageRequest").prop("chatId", chatId).prop("text", text).prop("messageThreadId", messageThreadId).prop("parseMode", parseMode).prop("entities", entities).prop("disableWebPagePreview", disableWebPagePreview).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [forwardMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the forwarded message from forwarding and saving + */ +@Serializable +data class ForwardMessageRequest( + val chatId: ChatId, + val fromChatId: ChatId, + val messageId: MessageId, + val messageThreadId: MessageThreadId? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("ForwardMessageRequest").prop("chatId", chatId).prop("fromChatId", fromChatId).prop("messageId", messageId).prop("messageThreadId", messageThreadId).prop("disableNotification", disableNotification).prop("protectContent", protectContent).toString() +} + +/** + * Request body for [copyMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept + * @param parseMode Mode for parsing entities in the new caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class CopyMessageRequest( + val chatId: ChatId, + val fromChatId: ChatId, + val messageId: MessageId, + val messageThreadId: MessageThreadId? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("CopyMessageRequest").prop("chatId", chatId).prop("fromChatId", fromChatId).prop("messageId", messageId).prop("messageThreadId", messageThreadId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendPhoto]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the photo needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendPhotoRequest( + val chatId: ChatId, + val photo: String, + val messageThreadId: MessageThreadId? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val hasSpoiler: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendPhotoRequest").prop("chatId", chatId).prop("photo", photo).prop("messageThreadId", messageThreadId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("hasSpoiler", hasSpoiler).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendAudio]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param audio Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Audio caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the audio in seconds + * @param performer Performer + * @param title Track name + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendAudioRequest( + val chatId: ChatId, + val audio: String, + val messageThreadId: MessageThreadId? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val duration: Seconds? = null, + val performer: String? = null, + val title: String? = null, + val thumbnail: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendAudioRequest").prop("chatId", chatId).prop("audio", audio).prop("messageThreadId", messageThreadId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("duration", duration).prop("performer", performer).prop("title", title).prop("thumbnail", thumbnail).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendDocument]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param document File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Disables automatic server-side content type detection for files uploaded using multipart/form-data + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendDocumentRequest( + val chatId: ChatId, + val document: String, + val messageThreadId: MessageThreadId? = null, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val disableContentTypeDetection: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendDocumentRequest").prop("chatId", chatId).prop("document", document).prop("messageThreadId", messageThreadId).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("disableContentTypeDetection", disableContentTypeDetection).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendVideo]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param video Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param width Video width + * @param height Video height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the video needs to be covered with a spoiler animation + * @param supportsStreaming Pass True if the uploaded video is suitable for streaming + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendVideoRequest( + val chatId: ChatId, + val video: String, + val messageThreadId: MessageThreadId? = null, + val duration: Seconds? = null, + val width: Long? = null, + val height: Long? = null, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val hasSpoiler: Boolean? = null, + val supportsStreaming: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendVideoRequest").prop("chatId", chatId).prop("video", video).prop("messageThreadId", messageThreadId).prop("duration", duration).prop("width", width).prop("height", height).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("hasSpoiler", hasSpoiler).prop("supportsStreaming", supportsStreaming).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendAnimation]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param animation Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent animation in seconds + * @param width Animation width + * @param height Animation height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Animation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the animation needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendAnimationRequest( + val chatId: ChatId, + val animation: String, + val messageThreadId: MessageThreadId? = null, + val duration: Seconds? = null, + val width: Long? = null, + val height: Long? = null, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val hasSpoiler: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendAnimationRequest").prop("chatId", chatId).prop("animation", animation).prop("messageThreadId", messageThreadId).prop("duration", duration).prop("width", width).prop("height", height).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("hasSpoiler", hasSpoiler).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendVoice]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param voice Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Voice message caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the voice message in seconds + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendVoiceRequest( + val chatId: ChatId, + val voice: String, + val messageThreadId: MessageThreadId? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val duration: Seconds? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendVoiceRequest").prop("chatId", chatId).prop("voice", voice).prop("messageThreadId", messageThreadId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("duration", duration).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendVideoNote]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param videoNote Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param length Video width and height, i.e. diameter of the video message + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendVideoNoteRequest( + val chatId: ChatId, + val videoNote: String, + val messageThreadId: MessageThreadId? = null, + val duration: Seconds? = null, + val length: Long? = null, + val thumbnail: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendVideoNoteRequest").prop("chatId", chatId).prop("videoNote", videoNote).prop("messageThreadId", messageThreadId).prop("duration", duration).prop("length", length).prop("thumbnail", thumbnail).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendMediaGroup]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param media A JSON-serialized array describing messages to be sent, must include 2-10 items + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends messages silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent messages from forwarding and saving + * @param replyToMessageId If the messages are a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + */ +@Serializable +data class SendMediaGroupRequest( + val chatId: ChatId, + val media: List, + val messageThreadId: MessageThreadId? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("SendMediaGroupRequest").prop("chatId", chatId).prop("media", media).prop("messageThreadId", messageThreadId).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).toString() +} + +/** + * Request body for [sendLocation]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the location + * @param longitude Longitude of the location + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Period in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400. + * @param heading For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendLocationRequest( + val chatId: ChatId, + val latitude: Double, + val longitude: Double, + val messageThreadId: MessageThreadId? = null, + val horizontalAccuracy: Double? = null, + val livePeriod: Long? = null, + val heading: Long? = null, + val proximityAlertRadius: Long? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendLocationRequest").prop("chatId", chatId).prop("latitude", latitude).prop("longitude", longitude).prop("messageThreadId", messageThreadId).prop("horizontalAccuracy", horizontalAccuracy).prop("livePeriod", livePeriod).prop("heading", heading).prop("proximityAlertRadius", proximityAlertRadius).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendVenue]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the venue + * @param longitude Longitude of the venue + * @param title Name of the venue + * @param address Address of the venue + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param foursquareId Foursquare identifier of the venue + * @param foursquareType Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Google Places identifier of the venue + * @param googlePlaceType Google Places type of the venue. (See supported types.) + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendVenueRequest( + val chatId: ChatId, + val latitude: Double, + val longitude: Double, + val title: String, + val address: String, + val messageThreadId: MessageThreadId? = null, + val foursquareId: String? = null, + val foursquareType: String? = null, + val googlePlaceId: String? = null, + val googlePlaceType: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendVenueRequest").prop("chatId", chatId).prop("latitude", latitude).prop("longitude", longitude).prop("title", title).prop("address", address).prop("messageThreadId", messageThreadId).prop("foursquareId", foursquareId).prop("foursquareType", foursquareType).prop("googlePlaceId", googlePlaceId).prop("googlePlaceType", googlePlaceType).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendContact]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param lastName Contact's last name + * @param vcard Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendContactRequest( + val chatId: ChatId, + val phoneNumber: String, + val firstName: String, + val messageThreadId: MessageThreadId? = null, + val lastName: String? = null, + val vcard: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendContactRequest").prop("chatId", chatId).prop("phoneNumber", phoneNumber).prop("firstName", firstName).prop("messageThreadId", messageThreadId).prop("lastName", lastName).prop("vcard", vcard).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendPoll]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param question Poll question, 1-300 characters + * @param options A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param isAnonymous True, if the poll needs to be anonymous, defaults to True + * @param type Poll type, “quiz” or “regular”, defaults to “regular” + * @param allowsMultipleAnswers True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False + * @param correctOptionId 0-based identifier of the correct answer option, required for polls in quiz mode + * @param explanation Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + * @param explanationParseMode Mode for parsing entities in the explanation. See formatting options for more details. + * @param explanationEntities A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode + * @param openPeriod Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. + * @param closeDate Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. + * @param isClosed Pass True if the poll needs to be immediately closed. This can be useful for poll preview. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendPollRequest( + val chatId: ChatId, + val question: String, + val options: List, + val messageThreadId: MessageThreadId? = null, + val isAnonymous: Boolean? = null, + val type: String? = null, + val allowsMultipleAnswers: Boolean? = null, + val correctOptionId: Long? = null, + val explanation: String? = null, + val explanationParseMode: String? = null, + val explanationEntities: List? = null, + val openPeriod: Seconds? = null, + val closeDate: UnixTimestamp? = null, + val isClosed: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendPollRequest").prop("chatId", chatId).prop("question", question).prop("options", options).prop("messageThreadId", messageThreadId).prop("isAnonymous", isAnonymous).prop("type", type).prop("allowsMultipleAnswers", allowsMultipleAnswers).prop("correctOptionId", correctOptionId).prop("explanation", explanation).prop("explanationParseMode", explanationParseMode).prop("explanationEntities", explanationEntities).prop("openPeriod", openPeriod).prop("closeDate", closeDate).prop("isClosed", isClosed).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendDice]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji on which the dice throw animation is based. Currently, must be one of “”, “”, “”, “”, “”, or “”. Dice can have values 1-6 for “”, “” and “”, values 1-5 for “” and “”, and values 1-64 for “”. Defaults to “” + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendDiceRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId? = null, + val emoji: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendDiceRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).prop("emoji", emoji).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [sendChatAction]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param action Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. + * @param messageThreadId Unique identifier for the target message thread; supergroups only + */ +@Serializable +data class SendChatActionRequest( + val chatId: ChatId, + val action: String, + val messageThreadId: MessageThreadId? = null, +) { + override fun toString() = DebugStringBuilder("SendChatActionRequest").prop("chatId", chatId).prop("action", action).prop("messageThreadId", messageThreadId).toString() +} + +/** + * Request body for [getUserProfilePhotos]. + * + * @param userId Unique identifier of the target user + * @param offset Sequential number of the first photo to be returned. By default, all photos are returned. + * @param limit Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100. + */ +@Serializable +data class GetUserProfilePhotosRequest( + val userId: UserId, + val offset: Long? = null, + val limit: Long? = null, +) { + override fun toString() = DebugStringBuilder("GetUserProfilePhotosRequest").prop("userId", userId).prop("offset", offset).prop("limit", limit).toString() +} + +/** + * Request body for [getFile]. + * + * @param fileId File identifier to get information about + */ +@Serializable +data class GetFileRequest( + val fileId: FileId, +) { + override fun toString() = DebugStringBuilder("GetFileRequest").prop("fileId", fileId).toString() +} + +/** + * Request body for [banChatMember]. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param untilDate Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + * @param revokeMessages Pass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels. + */ +@Serializable +data class BanChatMemberRequest( + val chatId: ChatId, + val userId: UserId, + val untilDate: UnixTimestamp? = null, + val revokeMessages: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("BanChatMemberRequest").prop("chatId", chatId).prop("userId", userId).prop("untilDate", untilDate).prop("revokeMessages", revokeMessages).toString() +} + +/** + * Request body for [unbanChatMember]. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param onlyIfBanned Do nothing if the user is not banned + */ +@Serializable +data class UnbanChatMemberRequest( + val chatId: ChatId, + val userId: UserId, + val onlyIfBanned: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("UnbanChatMemberRequest").prop("chatId", chatId).prop("userId", userId).prop("onlyIfBanned", onlyIfBanned).toString() +} + +/** + * Request body for [restrictChatMember]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param permissions A JSON-serialized object for new user permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + * @param untilDate Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + */ +@Serializable +data class RestrictChatMemberRequest( + val chatId: ChatId, + val userId: UserId, + val permissions: ChatPermissions, + val useIndependentChatPermissions: Boolean? = null, + val untilDate: UnixTimestamp? = null, +) { + override fun toString() = DebugStringBuilder("RestrictChatMemberRequest").prop("chatId", chatId).prop("userId", userId).prop("permissions", permissions).prop("useIndependentChatPermissions", useIndependentChatPermissions).prop("untilDate", untilDate).toString() +} + +/** + * Request body for [promoteChatMember]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param isAnonymous Pass True if the administrator's presence in the chat is hidden + * @param canManageChat Pass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canPostMessages Pass True if the administrator can post messages in the channel; channels only + * @param canEditMessages Pass True if the administrator can edit messages of other users and can pin messages; channels only + * @param canDeleteMessages Pass True if the administrator can delete messages of other users + * @param canPostStories Pass True if the administrator can post stories in the channel; channels only + * @param canEditStories Pass True if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Pass True if the administrator can delete stories posted by other users; channels only + * @param canManageVideoChats Pass True if the administrator can manage video chats + * @param canRestrictMembers Pass True if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers Pass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) + * @param canChangeInfo Pass True if the administrator can change chat title, photo and other settings + * @param canInviteUsers Pass True if the administrator can invite new users to the chat + * @param canPinMessages Pass True if the administrator can pin messages, supergroups only + * @param canManageTopics Pass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only + */ +@Serializable +data class PromoteChatMemberRequest( + val chatId: ChatId, + val userId: UserId, + val isAnonymous: Boolean? = null, + val canManageChat: Boolean? = null, + val canPostMessages: Boolean? = null, + val canEditMessages: Boolean? = null, + val canDeleteMessages: Boolean? = null, + val canPostStories: Boolean? = null, + val canEditStories: Boolean? = null, + val canDeleteStories: Boolean? = null, + val canManageVideoChats: Boolean? = null, + val canRestrictMembers: Boolean? = null, + val canPromoteMembers: Boolean? = null, + val canChangeInfo: Boolean? = null, + val canInviteUsers: Boolean? = null, + val canPinMessages: Boolean? = null, + val canManageTopics: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("PromoteChatMemberRequest").prop("chatId", chatId).prop("userId", userId).prop("isAnonymous", isAnonymous).prop("canManageChat", canManageChat).prop("canPostMessages", canPostMessages).prop("canEditMessages", canEditMessages).prop("canDeleteMessages", canDeleteMessages).prop("canPostStories", canPostStories).prop("canEditStories", canEditStories).prop("canDeleteStories", canDeleteStories).prop("canManageVideoChats", canManageVideoChats).prop("canRestrictMembers", canRestrictMembers).prop("canPromoteMembers", canPromoteMembers).prop("canChangeInfo", canChangeInfo).prop("canInviteUsers", canInviteUsers).prop("canPinMessages", canPinMessages).prop("canManageTopics", canManageTopics).toString() +} + +/** + * Request body for [setChatAdministratorCustomTitle]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param customTitle New custom title for the administrator; 0-16 characters, emoji are not allowed + */ +@Serializable +data class SetChatAdministratorCustomTitleRequest( + val chatId: ChatId, + val userId: UserId, + val customTitle: String, +) { + override fun toString() = DebugStringBuilder("SetChatAdministratorCustomTitleRequest").prop("chatId", chatId).prop("userId", userId).prop("customTitle", customTitle).toString() +} + +/** + * Request body for [banChatSenderChat]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +@Serializable +data class BanChatSenderChatRequest( + val chatId: ChatId, + val senderChatId: ChatId, +) { + override fun toString() = DebugStringBuilder("BanChatSenderChatRequest").prop("chatId", chatId).prop("senderChatId", senderChatId).toString() +} + +/** + * Request body for [unbanChatSenderChat]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +@Serializable +data class UnbanChatSenderChatRequest( + val chatId: ChatId, + val senderChatId: ChatId, +) { + override fun toString() = DebugStringBuilder("UnbanChatSenderChatRequest").prop("chatId", chatId).prop("senderChatId", senderChatId).toString() +} + +/** + * Request body for [setChatPermissions]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param permissions A JSON-serialized object for new default chat permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + */ +@Serializable +data class SetChatPermissionsRequest( + val chatId: ChatId, + val permissions: ChatPermissions, + val useIndependentChatPermissions: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("SetChatPermissionsRequest").prop("chatId", chatId).prop("permissions", permissions).prop("useIndependentChatPermissions", useIndependentChatPermissions).toString() +} + +/** + * Request body for [exportChatInviteLink]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Serializable +data class ExportChatInviteLinkRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("ExportChatInviteLinkRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [createChatInviteLink]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +@Serializable +data class CreateChatInviteLinkRequest( + val chatId: ChatId, + val name: String? = null, + val expireDate: UnixTimestamp? = null, + val memberLimit: Long? = null, + val createsJoinRequest: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("CreateChatInviteLinkRequest").prop("chatId", chatId).prop("name", name).prop("expireDate", expireDate).prop("memberLimit", memberLimit).prop("createsJoinRequest", createsJoinRequest).toString() +} + +/** + * Request body for [editChatInviteLink]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to edit + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +@Serializable +data class EditChatInviteLinkRequest( + val chatId: ChatId, + val inviteLink: String, + val name: String? = null, + val expireDate: UnixTimestamp? = null, + val memberLimit: Long? = null, + val createsJoinRequest: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("EditChatInviteLinkRequest").prop("chatId", chatId).prop("inviteLink", inviteLink).prop("name", name).prop("expireDate", expireDate).prop("memberLimit", memberLimit).prop("createsJoinRequest", createsJoinRequest).toString() +} + +/** + * Request body for [revokeChatInviteLink]. + * + * @param chatId Unique identifier of the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to revoke + */ +@Serializable +data class RevokeChatInviteLinkRequest( + val chatId: ChatId, + val inviteLink: String, +) { + override fun toString() = DebugStringBuilder("RevokeChatInviteLinkRequest").prop("chatId", chatId).prop("inviteLink", inviteLink).toString() +} + +/** + * Request body for [approveChatJoinRequest]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Serializable +data class ApproveChatJoinRequestRequest( + val chatId: ChatId, + val userId: UserId, +) { + override fun toString() = DebugStringBuilder("ApproveChatJoinRequestRequest").prop("chatId", chatId).prop("userId", userId).toString() +} + +/** + * Request body for [declineChatJoinRequest]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Serializable +data class DeclineChatJoinRequestRequest( + val chatId: ChatId, + val userId: UserId, +) { + override fun toString() = DebugStringBuilder("DeclineChatJoinRequestRequest").prop("chatId", chatId).prop("userId", userId).toString() +} + +/** + * Request body for [setChatPhoto]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo New chat photo, uploaded using multipart/form-data + */ +@Serializable +data class SetChatPhotoRequest( + val chatId: ChatId, + val photo: String, +) { + override fun toString() = DebugStringBuilder("SetChatPhotoRequest").prop("chatId", chatId).prop("photo", photo).toString() +} + +/** + * Request body for [deleteChatPhoto]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Serializable +data class DeleteChatPhotoRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("DeleteChatPhotoRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [setChatTitle]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title New chat title, 1-128 characters + */ +@Serializable +data class SetChatTitleRequest( + val chatId: ChatId, + val title: String, +) { + override fun toString() = DebugStringBuilder("SetChatTitleRequest").prop("chatId", chatId).prop("title", title).toString() +} + +/** + * Request body for [setChatDescription]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param description New chat description, 0-255 characters + */ +@Serializable +data class SetChatDescriptionRequest( + val chatId: ChatId, + val description: String? = null, +) { + override fun toString() = DebugStringBuilder("SetChatDescriptionRequest").prop("chatId", chatId).prop("description", description).toString() +} + +/** + * Request body for [pinChatMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to pin + * @param disableNotification Pass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats. + */ +@Serializable +data class PinChatMessageRequest( + val chatId: ChatId, + val messageId: MessageId, + val disableNotification: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("PinChatMessageRequest").prop("chatId", chatId).prop("messageId", messageId).prop("disableNotification", disableNotification).toString() +} + +/** + * Request body for [unpinChatMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. + */ +@Serializable +data class UnpinChatMessageRequest( + val chatId: ChatId, + val messageId: MessageId? = null, +) { + override fun toString() = DebugStringBuilder("UnpinChatMessageRequest").prop("chatId", chatId).prop("messageId", messageId).toString() +} + +/** + * Request body for [unpinAllChatMessages]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +@Serializable +data class UnpinAllChatMessagesRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("UnpinAllChatMessagesRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [leaveChat]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Serializable +data class LeaveChatRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("LeaveChatRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [getChat]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Serializable +data class GetChatRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("GetChatRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [getChatAdministrators]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Serializable +data class GetChatAdministratorsRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("GetChatAdministratorsRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [getChatMemberCount]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +@Serializable +data class GetChatMemberCountRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("GetChatMemberCountRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [getChatMember]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +@Serializable +data class GetChatMemberRequest( + val chatId: ChatId, + val userId: UserId, +) { + override fun toString() = DebugStringBuilder("GetChatMemberRequest").prop("chatId", chatId).prop("userId", userId).toString() +} + +/** + * Request body for [setChatStickerSet]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param stickerSetName Name of the sticker set to be set as the group sticker set + */ +@Serializable +data class SetChatStickerSetRequest( + val chatId: ChatId, + val stickerSetName: String, +) { + override fun toString() = DebugStringBuilder("SetChatStickerSetRequest").prop("chatId", chatId).prop("stickerSetName", stickerSetName).toString() +} + +/** + * Request body for [deleteChatStickerSet]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class DeleteChatStickerSetRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("DeleteChatStickerSetRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [createForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name Topic name, 1-128 characters + * @param iconColor Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F) + * @param iconCustomEmojiId Unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. + */ +@Serializable +data class CreateForumTopicRequest( + val chatId: ChatId, + val name: String, + val iconColor: Long? = null, + val iconCustomEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("CreateForumTopicRequest").prop("chatId", chatId).prop("name", name).prop("iconColor", iconColor).prop("iconCustomEmojiId", iconCustomEmojiId).toString() +} + +/** + * Request body for [editForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + * @param name New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept + * @param iconCustomEmojiId New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept + */ +@Serializable +data class EditForumTopicRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId, + val name: String? = null, + val iconCustomEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("EditForumTopicRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).prop("name", name).prop("iconCustomEmojiId", iconCustomEmojiId).toString() +} + +/** + * Request body for [closeForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Serializable +data class CloseForumTopicRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId, +) { + override fun toString() = DebugStringBuilder("CloseForumTopicRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).toString() +} + +/** + * Request body for [reopenForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Serializable +data class ReopenForumTopicRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId, +) { + override fun toString() = DebugStringBuilder("ReopenForumTopicRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).toString() +} + +/** + * Request body for [deleteForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Serializable +data class DeleteForumTopicRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId, +) { + override fun toString() = DebugStringBuilder("DeleteForumTopicRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).toString() +} + +/** + * Request body for [unpinAllForumTopicMessages]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +@Serializable +data class UnpinAllForumTopicMessagesRequest( + val chatId: ChatId, + val messageThreadId: MessageThreadId, +) { + override fun toString() = DebugStringBuilder("UnpinAllForumTopicMessagesRequest").prop("chatId", chatId).prop("messageThreadId", messageThreadId).toString() +} + +/** + * Request body for [editGeneralForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name New topic name, 1-128 characters + */ +@Serializable +data class EditGeneralForumTopicRequest( + val chatId: ChatId, + val name: String, +) { + override fun toString() = DebugStringBuilder("EditGeneralForumTopicRequest").prop("chatId", chatId).prop("name", name).toString() +} + +/** + * Request body for [closeGeneralForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class CloseGeneralForumTopicRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("CloseGeneralForumTopicRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [reopenGeneralForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class ReopenGeneralForumTopicRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("ReopenGeneralForumTopicRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [hideGeneralForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class HideGeneralForumTopicRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("HideGeneralForumTopicRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [unhideGeneralForumTopic]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class UnhideGeneralForumTopicRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("UnhideGeneralForumTopicRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [unpinAllGeneralForumTopicMessages]. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +data class UnpinAllGeneralForumTopicMessagesRequest( + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("UnpinAllGeneralForumTopicMessagesRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [answerCallbackQuery]. + * + * @param callbackQueryId Unique identifier for the query to be answered + * @param text Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters + * @param showAlert If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. + * @param url URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * @param cacheTime The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. + */ +@Serializable +data class AnswerCallbackQueryRequest( + val callbackQueryId: CallbackQueryId, + val text: String? = null, + val showAlert: Boolean? = null, + val url: String? = null, + val cacheTime: Seconds? = null, +) { + override fun toString() = DebugStringBuilder("AnswerCallbackQueryRequest").prop("callbackQueryId", callbackQueryId).prop("text", text).prop("showAlert", showAlert).prop("url", url).prop("cacheTime", cacheTime).toString() +} + +/** + * Request body for [setMyCommands]. + * + * @param commands A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +@Serializable +data class SetMyCommandsRequest( + val commands: List, + val scope: BotCommandScope? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("SetMyCommandsRequest").prop("commands", commands).prop("scope", scope).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [deleteMyCommands]. + * + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +@Serializable +data class DeleteMyCommandsRequest( + val scope: BotCommandScope? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("DeleteMyCommandsRequest").prop("scope", scope).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [getMyCommands]. + * + * @param scope A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Serializable +data class GetMyCommandsRequest( + val scope: BotCommandScope? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("GetMyCommandsRequest").prop("scope", scope).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [setMyName]. + * + * @param name New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. + */ +@Serializable +data class SetMyNameRequest( + val name: String? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("SetMyNameRequest").prop("name", name).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [getMyName]. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Serializable +data class GetMyNameRequest( + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("GetMyNameRequest").prop("languageCode", languageCode).toString() +} + +/** + * Request body for [setMyDescription]. + * + * @param description New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. + */ +@Serializable +data class SetMyDescriptionRequest( + val description: String? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("SetMyDescriptionRequest").prop("description", description).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [getMyDescription]. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Serializable +data class GetMyDescriptionRequest( + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("GetMyDescriptionRequest").prop("languageCode", languageCode).toString() +} + +/** + * Request body for [setMyShortDescription]. + * + * @param shortDescription New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. + */ +@Serializable +data class SetMyShortDescriptionRequest( + val shortDescription: String? = null, + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("SetMyShortDescriptionRequest").prop("shortDescription", shortDescription).prop("languageCode", languageCode).toString() +} + +/** + * Request body for [getMyShortDescription]. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +@Serializable +data class GetMyShortDescriptionRequest( + val languageCode: String? = null, +) { + override fun toString() = DebugStringBuilder("GetMyShortDescriptionRequest").prop("languageCode", languageCode).toString() +} + +/** + * Request body for [setChatMenuButton]. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be changed + * @param menuButton A JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault + */ +@Serializable +data class SetChatMenuButtonRequest( + val chatId: ChatId? = null, + val menuButton: MenuButton? = null, +) { + override fun toString() = DebugStringBuilder("SetChatMenuButtonRequest").prop("chatId", chatId).prop("menuButton", menuButton).toString() +} + +/** + * Request body for [getChatMenuButton]. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be returned + */ +@Serializable +data class GetChatMenuButtonRequest( + val chatId: ChatId? = null, +) { + override fun toString() = DebugStringBuilder("GetChatMenuButtonRequest").prop("chatId", chatId).toString() +} + +/** + * Request body for [setMyDefaultAdministratorRights]. + * + * @param rights A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared. + * @param forChannels Pass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed. + */ +@Serializable +data class SetMyDefaultAdministratorRightsRequest( + val rights: ChatAdministratorRights? = null, + val forChannels: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("SetMyDefaultAdministratorRightsRequest").prop("rights", rights).prop("forChannels", forChannels).toString() +} + +/** + * Request body for [getMyDefaultAdministratorRights]. + * + * @param forChannels Pass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned. + */ +@Serializable +data class GetMyDefaultAdministratorRightsRequest( + val forChannels: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("GetMyDefaultAdministratorRightsRequest").prop("forChannels", forChannels).toString() +} + +/** + * Request body for [editMessageText]. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Serializable +data class EditMessageTextRequest( + val text: String, + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val parseMode: ParseMode? = null, + val entities: List? = null, + val disableWebPagePreview: Boolean? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("EditMessageTextRequest").prop("text", text).prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("parseMode", parseMode).prop("entities", entities).prop("disableWebPagePreview", disableWebPagePreview).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [editMessageCaption]. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Serializable +data class EditMessageCaptionRequest( + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("EditMessageCaptionRequest").prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [editMessageMedia]. + * + * @param media A JSON-serialized object for a new media content of the message + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Serializable +data class EditMessageMediaRequest( + val media: InputMedia, + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("EditMessageMediaRequest").prop("media", media).prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [editMessageLiveLocation]. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Serializable +data class EditMessageLiveLocationRequest( + val latitude: Double, + val longitude: Double, + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val horizontalAccuracy: Double? = null, + val heading: Long? = null, + val proximityAlertRadius: Long? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("EditMessageLiveLocationRequest").prop("latitude", latitude).prop("longitude", longitude).prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("horizontalAccuracy", horizontalAccuracy).prop("heading", heading).prop("proximityAlertRadius", proximityAlertRadius).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [stopMessageLiveLocation]. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message with live location to stop + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +@Serializable +data class StopMessageLiveLocationRequest( + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("StopMessageLiveLocationRequest").prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [editMessageReplyMarkup]. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +@Serializable +data class EditMessageReplyMarkupRequest( + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("EditMessageReplyMarkupRequest").prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [stopPoll]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the original message with the poll + * @param replyMarkup A JSON-serialized object for a new message inline keyboard. + */ +@Serializable +data class StopPollRequest( + val chatId: ChatId, + val messageId: MessageId, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("StopPollRequest").prop("chatId", chatId).prop("messageId", messageId).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [deleteMessage]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the message to delete + */ +@Serializable +data class DeleteMessageRequest( + val chatId: ChatId, + val messageId: MessageId, +) { + override fun toString() = DebugStringBuilder("DeleteMessageRequest").prop("chatId", chatId).prop("messageId", messageId).toString() +} + +/** + * Request body for [sendSticker]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param sticker Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji associated with the sticker; only for just uploaded stickers + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +@Serializable +data class SendStickerRequest( + val chatId: ChatId, + val sticker: String, + val messageThreadId: MessageThreadId? = null, + val emoji: String? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: ReplyMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendStickerRequest").prop("chatId", chatId).prop("sticker", sticker).prop("messageThreadId", messageThreadId).prop("emoji", emoji).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [getStickerSet]. + * + * @param name Name of the sticker set + */ +@Serializable +data class GetStickerSetRequest( + val name: String, +) { + override fun toString() = DebugStringBuilder("GetStickerSetRequest").prop("name", name).toString() +} + +/** + * Request body for [getCustomEmojiStickers]. + * + * @param customEmojiIds List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. + */ +@Serializable +data class GetCustomEmojiStickersRequest( + val customEmojiIds: List, +) { + override fun toString() = DebugStringBuilder("GetCustomEmojiStickersRequest").prop("customEmojiIds", customEmojiIds).toString() +} + +/** + * Request body for [uploadStickerFile]. + * + * @param userId User identifier of sticker file owner + * @param sticker A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files » + * @param stickerFormat Format of the sticker, must be one of “static”, “animated”, “video” + */ +@Serializable +data class UploadStickerFileRequest( + val userId: UserId, + val sticker: String, + val stickerFormat: String, +) { + override fun toString() = DebugStringBuilder("UploadStickerFileRequest").prop("userId", userId).prop("sticker", sticker).prop("stickerFormat", stickerFormat).toString() +} + +/** + * Request body for [createNewStickerSet]. + * + * @param userId User identifier of created sticker set owner + * @param name Short name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_". is case insensitive. 1-64 characters. + * @param title Sticker set title, 1-64 characters + * @param stickers A JSON-serialized list of 1-50 initial stickers to be added to the sticker set + * @param stickerFormat Format of stickers in the set, must be one of “static”, “animated”, “video” + * @param stickerType Type of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created. + * @param needsRepainting Pass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only + */ +@Serializable +data class CreateNewStickerSetRequest( + val userId: UserId, + val name: String, + val title: String, + val stickers: List, + val stickerFormat: String, + val stickerType: String? = null, + val needsRepainting: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("CreateNewStickerSetRequest").prop("userId", userId).prop("name", name).prop("title", title).prop("stickers", stickers).prop("stickerFormat", stickerFormat).prop("stickerType", stickerType).prop("needsRepainting", needsRepainting).toString() +} + +/** + * Request body for [addStickerToSet]. + * + * @param userId User identifier of sticker set owner + * @param name Sticker set name + * @param sticker A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed. + */ +@Serializable +data class AddStickerToSetRequest( + val userId: UserId, + val name: String, + val sticker: InputSticker, +) { + override fun toString() = DebugStringBuilder("AddStickerToSetRequest").prop("userId", userId).prop("name", name).prop("sticker", sticker).toString() +} + +/** + * Request body for [setStickerPositionInSet]. + * + * @param sticker File identifier of the sticker + * @param position New sticker position in the set, zero-based + */ +@Serializable +data class SetStickerPositionInSetRequest( + val sticker: String, + val position: Long, +) { + override fun toString() = DebugStringBuilder("SetStickerPositionInSetRequest").prop("sticker", sticker).prop("position", position).toString() +} + +/** + * Request body for [deleteStickerFromSet]. + * + * @param sticker File identifier of the sticker + */ +@Serializable +data class DeleteStickerFromSetRequest( + val sticker: String, +) { + override fun toString() = DebugStringBuilder("DeleteStickerFromSetRequest").prop("sticker", sticker).toString() +} + +/** + * Request body for [setStickerEmojiList]. + * + * @param sticker File identifier of the sticker + * @param emojiList A JSON-serialized list of 1-20 emoji associated with the sticker + */ +@Serializable +data class SetStickerEmojiListRequest( + val sticker: String, + val emojiList: List, +) { + override fun toString() = DebugStringBuilder("SetStickerEmojiListRequest").prop("sticker", sticker).prop("emojiList", emojiList).toString() +} + +/** + * Request body for [setStickerKeywords]. + * + * @param sticker File identifier of the sticker + * @param keywords A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters + */ +@Serializable +data class SetStickerKeywordsRequest( + val sticker: String, + val keywords: List? = null, +) { + override fun toString() = DebugStringBuilder("SetStickerKeywordsRequest").prop("sticker", sticker).prop("keywords", keywords).toString() +} + +/** + * Request body for [setStickerMaskPosition]. + * + * @param sticker File identifier of the sticker + * @param maskPosition A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position. + */ +@Serializable +data class SetStickerMaskPositionRequest( + val sticker: String, + val maskPosition: MaskPosition? = null, +) { + override fun toString() = DebugStringBuilder("SetStickerMaskPositionRequest").prop("sticker", sticker).prop("maskPosition", maskPosition).toString() +} + +/** + * Request body for [setStickerSetTitle]. + * + * @param name Sticker set name + * @param title Sticker set title, 1-64 characters + */ +@Serializable +data class SetStickerSetTitleRequest( + val name: String, + val title: String, +) { + override fun toString() = DebugStringBuilder("SetStickerSetTitleRequest").prop("name", name).prop("title", title).toString() +} + +/** + * Request body for [setStickerSetThumbnail]. + * + * @param name Sticker set name + * @param userId User identifier of the sticker set owner + * @param thumbnail A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. + */ +@Serializable +data class SetStickerSetThumbnailRequest( + val name: String, + val userId: UserId, + val thumbnail: String? = null, +) { + override fun toString() = DebugStringBuilder("SetStickerSetThumbnailRequest").prop("name", name).prop("userId", userId).prop("thumbnail", thumbnail).toString() +} + +/** + * Request body for [setCustomEmojiStickerSetThumbnail]. + * + * @param name Sticker set name + * @param customEmojiId Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail. + */ +@Serializable +data class SetCustomEmojiStickerSetThumbnailRequest( + val name: String, + val customEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("SetCustomEmojiStickerSetThumbnailRequest").prop("name", name).prop("customEmojiId", customEmojiId).toString() +} + +/** + * Request body for [deleteStickerSet]. + * + * @param name Sticker set name + */ +@Serializable +data class DeleteStickerSetRequest( + val name: String, +) { + override fun toString() = DebugStringBuilder("DeleteStickerSetRequest").prop("name", name).toString() +} + +/** + * Request body for [answerInlineQuery]. + * + * @param inlineQueryId Unique identifier for the answered query + * @param results A JSON-serialized array of results for the inline query + * @param cacheTime The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. + * @param isPersonal Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query. + * @param nextOffset Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes. + * @param button A JSON-serialized object describing a button to be shown above inline query results + */ +@Serializable +data class AnswerInlineQueryRequest( + val inlineQueryId: InlineQueryId, + val results: List, + val cacheTime: Seconds? = null, + val isPersonal: Boolean? = null, + val nextOffset: String? = null, + val button: InlineQueryResultsButton? = null, +) { + override fun toString() = DebugStringBuilder("AnswerInlineQueryRequest").prop("inlineQueryId", inlineQueryId).prop("results", results).prop("cacheTime", cacheTime).prop("isPersonal", isPersonal).prop("nextOffset", nextOffset).prop("button", button).toString() +} + +/** + * Request body for [answerWebAppQuery]. + * + * @param webAppQueryId Unique identifier for the query to be answered + * @param result A JSON-serialized object describing the message to be sent + */ +@Serializable +data class AnswerWebAppQueryRequest( + val webAppQueryId: WebAppQueryId, + val result: InlineQueryResult, +) { + override fun toString() = DebugStringBuilder("AnswerWebAppQueryRequest").prop("webAppQueryId", webAppQueryId).prop("result", result).toString() +} + +/** + * Request body for [sendInvoice]. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param startParameter Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to provider + * @param isFlexible Pass True if the final price depends on the shipping method + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button. + */ +@Serializable +data class SendInvoiceRequest( + val chatId: ChatId, + val title: String, + val description: String, + val payload: String, + val providerToken: String, + val currency: String, + val prices: List, + val messageThreadId: MessageThreadId? = null, + val maxTipAmount: Long? = null, + val suggestedTipAmounts: List? = null, + val startParameter: String? = null, + val providerData: String? = null, + val photoUrl: String? = null, + val photoSize: Long? = null, + val photoWidth: Long? = null, + val photoHeight: Long? = null, + val needName: Boolean? = null, + val needPhoneNumber: Boolean? = null, + val needEmail: Boolean? = null, + val needShippingAddress: Boolean? = null, + val sendPhoneNumberToProvider: Boolean? = null, + val sendEmailToProvider: Boolean? = null, + val isFlexible: Boolean? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendInvoiceRequest").prop("chatId", chatId).prop("title", title).prop("description", description).prop("payload", payload).prop("providerToken", providerToken).prop("currency", currency).prop("prices", prices).prop("messageThreadId", messageThreadId).prop("maxTipAmount", maxTipAmount).prop("suggestedTipAmounts", suggestedTipAmounts).prop("startParameter", startParameter).prop("providerData", providerData).prop("photoUrl", photoUrl).prop("photoSize", photoSize).prop("photoWidth", photoWidth).prop("photoHeight", photoHeight).prop("needName", needName).prop("needPhoneNumber", needPhoneNumber).prop("needEmail", needEmail).prop("needShippingAddress", needShippingAddress).prop("sendPhoneNumberToProvider", sendPhoneNumberToProvider).prop("sendEmailToProvider", sendEmailToProvider).prop("isFlexible", isFlexible).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [createInvoiceLink]. + * + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to the provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to the provider + * @param isFlexible Pass True if the final price depends on the shipping method + */ +@Serializable +data class CreateInvoiceLinkRequest( + val title: String, + val description: String, + val payload: String, + val providerToken: String, + val currency: String, + val prices: List, + val maxTipAmount: Long? = null, + val suggestedTipAmounts: List? = null, + val providerData: String? = null, + val photoUrl: String? = null, + val photoSize: Long? = null, + val photoWidth: Long? = null, + val photoHeight: Long? = null, + val needName: Boolean? = null, + val needPhoneNumber: Boolean? = null, + val needEmail: Boolean? = null, + val needShippingAddress: Boolean? = null, + val sendPhoneNumberToProvider: Boolean? = null, + val sendEmailToProvider: Boolean? = null, + val isFlexible: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("CreateInvoiceLinkRequest").prop("title", title).prop("description", description).prop("payload", payload).prop("providerToken", providerToken).prop("currency", currency).prop("prices", prices).prop("maxTipAmount", maxTipAmount).prop("suggestedTipAmounts", suggestedTipAmounts).prop("providerData", providerData).prop("photoUrl", photoUrl).prop("photoSize", photoSize).prop("photoWidth", photoWidth).prop("photoHeight", photoHeight).prop("needName", needName).prop("needPhoneNumber", needPhoneNumber).prop("needEmail", needEmail).prop("needShippingAddress", needShippingAddress).prop("sendPhoneNumberToProvider", sendPhoneNumberToProvider).prop("sendEmailToProvider", sendEmailToProvider).prop("isFlexible", isFlexible).toString() +} + +/** + * Request body for [answerShippingQuery]. + * + * @param shippingQueryId Unique identifier for the query to be answered + * @param ok Pass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible) + * @param shippingOptions Required if ok is True. A JSON-serialized array of available shipping options. + * @param errorMessage Required if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + */ +@Serializable +data class AnswerShippingQueryRequest( + val shippingQueryId: ShippingQueryId, + val ok: Boolean, + val shippingOptions: List? = null, + val errorMessage: String? = null, +) { + override fun toString() = DebugStringBuilder("AnswerShippingQueryRequest").prop("shippingQueryId", shippingQueryId).prop("ok", ok).prop("shippingOptions", shippingOptions).prop("errorMessage", errorMessage).toString() +} + +/** + * Request body for [answerPreCheckoutQuery]. + * + * @param preCheckoutQueryId Unique identifier for the query to be answered + * @param ok Specify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems. + * @param errorMessage Required if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + */ +@Serializable +data class AnswerPreCheckoutQueryRequest( + val preCheckoutQueryId: String, + val ok: Boolean, + val errorMessage: String? = null, +) { + override fun toString() = DebugStringBuilder("AnswerPreCheckoutQueryRequest").prop("preCheckoutQueryId", preCheckoutQueryId).prop("ok", ok).prop("errorMessage", errorMessage).toString() +} + +/** + * Request body for [setPassportDataErrors]. + * + * @param userId User identifier + * @param errors A JSON-serialized array describing the errors + */ +@Serializable +data class SetPassportDataErrorsRequest( + val userId: UserId, + val errors: List, +) { + override fun toString() = DebugStringBuilder("SetPassportDataErrorsRequest").prop("userId", userId).prop("errors", errors).toString() +} + +/** + * Request body for [sendGame]. + * + * @param chatId Unique identifier for the target chat + * @param gameShortName Short name of the game, serves as the unique identifier for the game. Set up your games via @BotFather. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game. + */ +@Serializable +data class SendGameRequest( + val chatId: ChatId, + val gameShortName: String, + val messageThreadId: MessageThreadId? = null, + val disableNotification: Boolean? = null, + val protectContent: Boolean? = null, + val replyToMessageId: MessageId? = null, + val allowSendingWithoutReply: Boolean? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("SendGameRequest").prop("chatId", chatId).prop("gameShortName", gameShortName).prop("messageThreadId", messageThreadId).prop("disableNotification", disableNotification).prop("protectContent", protectContent).prop("replyToMessageId", replyToMessageId).prop("allowSendingWithoutReply", allowSendingWithoutReply).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Request body for [setGameScore]. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +@Serializable +data class SetGameScoreRequest( + val userId: UserId, + val score: Long, + val force: Boolean? = null, + val disableEditMessage: Boolean? = null, + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, +) { + override fun toString() = DebugStringBuilder("SetGameScoreRequest").prop("userId", userId).prop("score", score).prop("force", force).prop("disableEditMessage", disableEditMessage).prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).toString() +} + +/** + * Request body for [getGameHighScores]. + * + * @param userId Target user id + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +@Serializable +data class GetGameHighScoresRequest( + val userId: UserId, + val chatId: ChatId? = null, + val messageId: MessageId? = null, + val inlineMessageId: InlineMessageId? = null, +) { + override fun toString() = DebugStringBuilder("GetGameHighScoresRequest").prop("userId", userId).prop("chatId", chatId).prop("messageId", messageId).prop("inlineMessageId", inlineMessageId).toString() +} + diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/TryMethods.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryMethods.kt new file mode 100644 index 0000000..a04d26f --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryMethods.kt @@ -0,0 +1,2019 @@ +package me.alllex.tbot.api.model + +import me.alllex.tbot.api.client.* + + + +/** + * Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects. + * + * @param offset Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten. + * @param limit Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. + * @param timeout Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time. + */ +suspend fun TelegramBotApiClient.tryGetUpdates( + offset: Long? = null, + limit: Long? = null, + timeout: Seconds? = null, + allowedUpdates: List? = null, +): TelegramResponse> = + tryGetUpdates(GetUpdatesRequest(offset, limit, timeout, allowedUpdates)) + +/** + * Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. + * + * If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content. + * + * @param url HTTPS URL to send updates to. Use an empty string to remove webhook integration + * @param certificate Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details. + * @param ipAddress The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS + * @param maxConnections The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time. + * @param dropPendingUpdates Pass True to drop all pending updates + * @param secretToken A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you. + */ +suspend fun TelegramBotApiClient.trySetWebhook( + url: String, + certificate: String? = null, + ipAddress: String? = null, + maxConnections: Long? = null, + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null, + secretToken: String? = null, +): TelegramResponse = + trySetWebhook(SetWebhookRequest(url, certificate, ipAddress, maxConnections, allowedUpdates, dropPendingUpdates, secretToken)) + +/** + * Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. + * + * @param dropPendingUpdates Pass True to drop all pending updates + */ +suspend fun TelegramBotApiClient.tryDeleteWebhook( + dropPendingUpdates: Boolean? = null, +): TelegramResponse = + tryDeleteWebhook(DeleteWebhookRequest(dropPendingUpdates)) + +/** + * Use this method to send text messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param text Text of the message to be sent, 1-4096 characters after entities parsing + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendMessage( + chatId: ChatId, + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendMessage(SendMessageRequest(chatId, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the forwarded message from forwarding and saving + */ +suspend fun TelegramBotApiClient.tryForwardMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, +): TelegramResponse = + tryForwardMessage(ForwardMessageRequest(chatId, fromChatId, messageId, messageThreadId, disableNotification, protectContent)) + +/** + * Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept + * @param parseMode Mode for parsing entities in the new caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.tryCopyMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + tryCopyMessage(CopyMessageRequest(chatId, fromChatId, messageId, messageThreadId, caption, parseMode, captionEntities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send photos. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the photo needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendPhoto( + chatId: ChatId, + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendPhoto(SendPhotoRequest(chatId, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + * + * For sending voice messages, use the sendVoice method instead. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param audio Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Audio caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the audio in seconds + * @param performer Performer + * @param title Track name + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendAudio( + chatId: ChatId, + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendAudio(SendAudioRequest(chatId, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param document File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Disables automatic server-side content type detection for files uploaded using multipart/form-data + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendDocument( + chatId: ChatId, + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendDocument(SendDocumentRequest(chatId, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param video Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param width Video width + * @param height Video height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the video needs to be covered with a spoiler animation + * @param supportsStreaming Pass True if the uploaded video is suitable for streaming + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendVideo( + chatId: ChatId, + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendVideo(SendVideoRequest(chatId, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param animation Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent animation in seconds + * @param width Animation width + * @param height Animation height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Animation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the animation needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendAnimation( + chatId: ChatId, + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendAnimation(SendAnimationRequest(chatId, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param voice Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Voice message caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the voice message in seconds + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendVoice( + chatId: ChatId, + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendVoice(SendVoiceRequest(chatId, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param videoNote Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param length Video width and height, i.e. diameter of the video message + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendVideoNote( + chatId: ChatId, + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendVideoNote(SendVideoNoteRequest(chatId, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param media A JSON-serialized array describing messages to be sent, must include 2-10 items + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends messages silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent messages from forwarding and saving + * @param replyToMessageId If the messages are a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + */ +suspend fun TelegramBotApiClient.trySendMediaGroup( + chatId: ChatId, + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): TelegramResponse> = + trySendMediaGroup(SendMediaGroupRequest(chatId, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply)) + +/** + * Use this method to send point on the map. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the location + * @param longitude Longitude of the location + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Period in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400. + * @param heading For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendLocation( + chatId: ChatId, + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendLocation(SendLocationRequest(chatId, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send information about a venue. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the venue + * @param longitude Longitude of the venue + * @param title Name of the venue + * @param address Address of the venue + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param foursquareId Foursquare identifier of the venue + * @param foursquareType Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Google Places identifier of the venue + * @param googlePlaceType Google Places type of the venue. (See supported types.) + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendVenue( + chatId: ChatId, + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendVenue(SendVenueRequest(chatId, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send phone contacts. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param lastName Contact's last name + * @param vcard Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendContact( + chatId: ChatId, + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendContact(SendContactRequest(chatId, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send a native poll. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param question Poll question, 1-300 characters + * @param options A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param isAnonymous True, if the poll needs to be anonymous, defaults to True + * @param type Poll type, “quiz” or “regular”, defaults to “regular” + * @param allowsMultipleAnswers True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False + * @param correctOptionId 0-based identifier of the correct answer option, required for polls in quiz mode + * @param explanation Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + * @param explanationParseMode Mode for parsing entities in the explanation. See formatting options for more details. + * @param explanationEntities A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode + * @param openPeriod Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. + * @param closeDate Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. + * @param isClosed Pass True if the poll needs to be immediately closed. This can be useful for poll preview. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendPoll( + chatId: ChatId, + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendPoll(SendPollRequest(chatId, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji on which the dice throw animation is based. Currently, must be one of “”, “”, “”, “”, “”, or “”. Dice can have values 1-6 for “”, “” and “”, values 1-5 for “” and “”, and values 1-64 for “”. Defaults to “” + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendDice( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendDice(SendDiceRequest(chatId, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. + * + * Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. + * + * We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param action Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. + * @param messageThreadId Unique identifier for the target message thread; supergroups only + */ +suspend fun TelegramBotApiClient.trySendChatAction( + chatId: ChatId, + action: String, + messageThreadId: MessageThreadId? = null, +): TelegramResponse = + trySendChatAction(SendChatActionRequest(chatId, action, messageThreadId)) + +/** + * Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. + * + * @param userId Unique identifier of the target user + * @param offset Sequential number of the first photo to be returned. By default, all photos are returned. + * @param limit Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100. + */ +suspend fun TelegramBotApiClient.tryGetUserProfilePhotos( + userId: UserId, + offset: Long? = null, + limit: Long? = null, +): TelegramResponse = + tryGetUserProfilePhotos(GetUserProfilePhotosRequest(userId, offset, limit)) + +/** + * Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. + * + * @param fileId File identifier to get information about + */ +suspend fun TelegramBotApiClient.tryGetFile( + fileId: FileId, +): TelegramResponse = + tryGetFile(GetFileRequest(fileId)) + +/** + * Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param untilDate Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + * @param revokeMessages Pass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels. + */ +suspend fun TelegramBotApiClient.tryBanChatMember( + chatId: ChatId, + userId: UserId, + untilDate: UnixTimestamp? = null, + revokeMessages: Boolean? = null, +): TelegramResponse = + tryBanChatMember(BanChatMemberRequest(chatId, userId, untilDate, revokeMessages)) + +/** + * Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param onlyIfBanned Do nothing if the user is not banned + */ +suspend fun TelegramBotApiClient.tryUnbanChatMember( + chatId: ChatId, + userId: UserId, + onlyIfBanned: Boolean? = null, +): TelegramResponse = + tryUnbanChatMember(UnbanChatMemberRequest(chatId, userId, onlyIfBanned)) + +/** + * Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param permissions A JSON-serialized object for new user permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + * @param untilDate Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + */ +suspend fun TelegramBotApiClient.tryRestrictChatMember( + chatId: ChatId, + userId: UserId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, + untilDate: UnixTimestamp? = null, +): TelegramResponse = + tryRestrictChatMember(RestrictChatMemberRequest(chatId, userId, permissions, useIndependentChatPermissions, untilDate)) + +/** + * Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param isAnonymous Pass True if the administrator's presence in the chat is hidden + * @param canManageChat Pass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canPostMessages Pass True if the administrator can post messages in the channel; channels only + * @param canEditMessages Pass True if the administrator can edit messages of other users and can pin messages; channels only + * @param canDeleteMessages Pass True if the administrator can delete messages of other users + * @param canPostStories Pass True if the administrator can post stories in the channel; channels only + * @param canEditStories Pass True if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Pass True if the administrator can delete stories posted by other users; channels only + * @param canManageVideoChats Pass True if the administrator can manage video chats + * @param canRestrictMembers Pass True if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers Pass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) + * @param canChangeInfo Pass True if the administrator can change chat title, photo and other settings + * @param canInviteUsers Pass True if the administrator can invite new users to the chat + * @param canPinMessages Pass True if the administrator can pin messages, supergroups only + * @param canManageTopics Pass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only + */ +suspend fun TelegramBotApiClient.tryPromoteChatMember( + chatId: ChatId, + userId: UserId, + isAnonymous: Boolean? = null, + canManageChat: Boolean? = null, + canPostMessages: Boolean? = null, + canEditMessages: Boolean? = null, + canDeleteMessages: Boolean? = null, + canPostStories: Boolean? = null, + canEditStories: Boolean? = null, + canDeleteStories: Boolean? = null, + canManageVideoChats: Boolean? = null, + canRestrictMembers: Boolean? = null, + canPromoteMembers: Boolean? = null, + canChangeInfo: Boolean? = null, + canInviteUsers: Boolean? = null, + canPinMessages: Boolean? = null, + canManageTopics: Boolean? = null, +): TelegramResponse = + tryPromoteChatMember(PromoteChatMemberRequest(chatId, userId, isAnonymous, canManageChat, canPostMessages, canEditMessages, canDeleteMessages, canPostStories, canEditStories, canDeleteStories, canManageVideoChats, canRestrictMembers, canPromoteMembers, canChangeInfo, canInviteUsers, canPinMessages, canManageTopics)) + +/** + * Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param customTitle New custom title for the administrator; 0-16 characters, emoji are not allowed + */ +suspend fun TelegramBotApiClient.trySetChatAdministratorCustomTitle( + chatId: ChatId, + userId: UserId, + customTitle: String, +): TelegramResponse = + trySetChatAdministratorCustomTitle(SetChatAdministratorCustomTitleRequest(chatId, userId, customTitle)) + +/** + * Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +suspend fun TelegramBotApiClient.tryBanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): TelegramResponse = + tryBanChatSenderChat(BanChatSenderChatRequest(chatId, senderChatId)) + +/** + * Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +suspend fun TelegramBotApiClient.tryUnbanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): TelegramResponse = + tryUnbanChatSenderChat(UnbanChatSenderChatRequest(chatId, senderChatId)) + +/** + * Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param permissions A JSON-serialized object for new default chat permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + */ +suspend fun TelegramBotApiClient.trySetChatPermissions( + chatId: ChatId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, +): TelegramResponse = + trySetChatPermissions(SetChatPermissionsRequest(chatId, permissions, useIndependentChatPermissions)) + +/** + * Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryExportChatInviteLink( + chatId: ChatId, +): TelegramResponse = + tryExportChatInviteLink(ExportChatInviteLinkRequest(chatId)) + +/** + * Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +suspend fun TelegramBotApiClient.tryCreateChatInviteLink( + chatId: ChatId, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): TelegramResponse = + tryCreateChatInviteLink(CreateChatInviteLinkRequest(chatId, name, expireDate, memberLimit, createsJoinRequest)) + +/** + * Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to edit + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +suspend fun TelegramBotApiClient.tryEditChatInviteLink( + chatId: ChatId, + inviteLink: String, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): TelegramResponse = + tryEditChatInviteLink(EditChatInviteLinkRequest(chatId, inviteLink, name, expireDate, memberLimit, createsJoinRequest)) + +/** + * Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object. + * + * @param chatId Unique identifier of the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to revoke + */ +suspend fun TelegramBotApiClient.tryRevokeChatInviteLink( + chatId: ChatId, + inviteLink: String, +): TelegramResponse = + tryRevokeChatInviteLink(RevokeChatInviteLinkRequest(chatId, inviteLink)) + +/** + * Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +suspend fun TelegramBotApiClient.tryApproveChatJoinRequest( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + tryApproveChatJoinRequest(ApproveChatJoinRequestRequest(chatId, userId)) + +/** + * Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +suspend fun TelegramBotApiClient.tryDeclineChatJoinRequest( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + tryDeclineChatJoinRequest(DeclineChatJoinRequestRequest(chatId, userId)) + +/** + * Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo New chat photo, uploaded using multipart/form-data + */ +suspend fun TelegramBotApiClient.trySetChatPhoto( + chatId: ChatId, + photo: String, +): TelegramResponse = + trySetChatPhoto(SetChatPhotoRequest(chatId, photo)) + +/** + * Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryDeleteChatPhoto( + chatId: ChatId, +): TelegramResponse = + tryDeleteChatPhoto(DeleteChatPhotoRequest(chatId)) + +/** + * Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title New chat title, 1-128 characters + */ +suspend fun TelegramBotApiClient.trySetChatTitle( + chatId: ChatId, + title: String, +): TelegramResponse = + trySetChatTitle(SetChatTitleRequest(chatId, title)) + +/** + * Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param description New chat description, 0-255 characters + */ +suspend fun TelegramBotApiClient.trySetChatDescription( + chatId: ChatId, + description: String? = null, +): TelegramResponse = + trySetChatDescription(SetChatDescriptionRequest(chatId, description)) + +/** + * Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to pin + * @param disableNotification Pass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats. + */ +suspend fun TelegramBotApiClient.tryPinChatMessage( + chatId: ChatId, + messageId: MessageId, + disableNotification: Boolean? = null, +): TelegramResponse = + tryPinChatMessage(PinChatMessageRequest(chatId, messageId, disableNotification)) + +/** + * Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. + */ +suspend fun TelegramBotApiClient.tryUnpinChatMessage( + chatId: ChatId, + messageId: MessageId? = null, +): TelegramResponse = + tryUnpinChatMessage(UnpinChatMessageRequest(chatId, messageId)) + +/** + * Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryUnpinAllChatMessages( + chatId: ChatId, +): TelegramResponse = + tryUnpinAllChatMessages(UnpinAllChatMessagesRequest(chatId)) + +/** + * Use this method for your bot to leave a group, supergroup or channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryLeaveChat( + chatId: ChatId, +): TelegramResponse = + tryLeaveChat(LeaveChatRequest(chatId)) + +/** + * Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryGetChat( + chatId: ChatId, +): TelegramResponse = + tryGetChat(GetChatRequest(chatId)) + +/** + * Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryGetChatAdministrators( + chatId: ChatId, +): TelegramResponse> = + tryGetChatAdministrators(GetChatAdministratorsRequest(chatId)) + +/** + * Use this method to get the number of members in a chat. Returns Int on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +suspend fun TelegramBotApiClient.tryGetChatMemberCount( + chatId: ChatId, +): TelegramResponse = + tryGetChatMemberCount(GetChatMemberCountRequest(chatId)) + +/** + * Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +suspend fun TelegramBotApiClient.tryGetChatMember( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + tryGetChatMember(GetChatMemberRequest(chatId, userId)) + +/** + * Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param stickerSetName Name of the sticker set to be set as the group sticker set + */ +suspend fun TelegramBotApiClient.trySetChatStickerSet( + chatId: ChatId, + stickerSetName: String, +): TelegramResponse = + trySetChatStickerSet(SetChatStickerSetRequest(chatId, stickerSetName)) + +/** + * Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryDeleteChatStickerSet( + chatId: ChatId, +): TelegramResponse = + tryDeleteChatStickerSet(DeleteChatStickerSetRequest(chatId)) + +/** + * Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name Topic name, 1-128 characters + * @param iconColor Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F) + * @param iconCustomEmojiId Unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. + */ +suspend fun TelegramBotApiClient.tryCreateForumTopic( + chatId: ChatId, + name: String, + iconColor: Long? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): TelegramResponse = + tryCreateForumTopic(CreateForumTopicRequest(chatId, name, iconColor, iconCustomEmojiId)) + +/** + * Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + * @param name New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept + * @param iconCustomEmojiId New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept + */ +suspend fun TelegramBotApiClient.tryEditForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, + name: String? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): TelegramResponse = + tryEditForumTopic(EditForumTopicRequest(chatId, messageThreadId, name, iconCustomEmojiId)) + +/** + * Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +suspend fun TelegramBotApiClient.tryCloseForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + tryCloseForumTopic(CloseForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +suspend fun TelegramBotApiClient.tryReopenForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + tryReopenForumTopic(ReopenForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +suspend fun TelegramBotApiClient.tryDeleteForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + tryDeleteForumTopic(DeleteForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +suspend fun TelegramBotApiClient.tryUnpinAllForumTopicMessages( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + tryUnpinAllForumTopicMessages(UnpinAllForumTopicMessagesRequest(chatId, messageThreadId)) + +/** + * Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name New topic name, 1-128 characters + */ +suspend fun TelegramBotApiClient.tryEditGeneralForumTopic( + chatId: ChatId, + name: String, +): TelegramResponse = + tryEditGeneralForumTopic(EditGeneralForumTopicRequest(chatId, name)) + +/** + * Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryCloseGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + tryCloseGeneralForumTopic(CloseGeneralForumTopicRequest(chatId)) + +/** + * Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryReopenGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + tryReopenGeneralForumTopic(ReopenGeneralForumTopicRequest(chatId)) + +/** + * Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryHideGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + tryHideGeneralForumTopic(HideGeneralForumTopicRequest(chatId)) + +/** + * Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryUnhideGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + tryUnhideGeneralForumTopic(UnhideGeneralForumTopicRequest(chatId)) + +/** + * Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +suspend fun TelegramBotApiClient.tryUnpinAllGeneralForumTopicMessages( + chatId: ChatId, +): TelegramResponse = + tryUnpinAllGeneralForumTopicMessages(UnpinAllGeneralForumTopicMessagesRequest(chatId)) + +/** + * Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. + * + * Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * + * @param callbackQueryId Unique identifier for the query to be answered + * @param text Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters + * @param showAlert If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. + * @param url URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * @param cacheTime The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. + */ +suspend fun TelegramBotApiClient.tryAnswerCallbackQuery( + callbackQueryId: CallbackQueryId, + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): TelegramResponse = + tryAnswerCallbackQuery(AnswerCallbackQueryRequest(callbackQueryId, text, showAlert, url, cacheTime)) + +/** + * Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success. + * + * @param commands A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +suspend fun TelegramBotApiClient.trySetMyCommands( + commands: List, + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse = + trySetMyCommands(SetMyCommandsRequest(commands, scope, languageCode)) + +/** + * Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success. + * + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +suspend fun TelegramBotApiClient.tryDeleteMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse = + tryDeleteMyCommands(DeleteMyCommandsRequest(scope, languageCode)) + +/** + * Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned. + * + * @param scope A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +suspend fun TelegramBotApiClient.tryGetMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse> = + tryGetMyCommands(GetMyCommandsRequest(scope, languageCode)) + +/** + * Use this method to change the bot's name. Returns True on success. + * + * @param name New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. + */ +suspend fun TelegramBotApiClient.trySetMyName( + name: String? = null, + languageCode: String? = null, +): TelegramResponse = + trySetMyName(SetMyNameRequest(name, languageCode)) + +/** + * Use this method to get the current bot name for the given user language. Returns BotName on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +suspend fun TelegramBotApiClient.tryGetMyName( + languageCode: String? = null, +): TelegramResponse = + tryGetMyName(GetMyNameRequest(languageCode)) + +/** + * Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success. + * + * @param description New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. + */ +suspend fun TelegramBotApiClient.trySetMyDescription( + description: String? = null, + languageCode: String? = null, +): TelegramResponse = + trySetMyDescription(SetMyDescriptionRequest(description, languageCode)) + +/** + * Use this method to get the current bot description for the given user language. Returns BotDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +suspend fun TelegramBotApiClient.tryGetMyDescription( + languageCode: String? = null, +): TelegramResponse = + tryGetMyDescription(GetMyDescriptionRequest(languageCode)) + +/** + * Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success. + * + * @param shortDescription New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. + */ +suspend fun TelegramBotApiClient.trySetMyShortDescription( + shortDescription: String? = null, + languageCode: String? = null, +): TelegramResponse = + trySetMyShortDescription(SetMyShortDescriptionRequest(shortDescription, languageCode)) + +/** + * Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +suspend fun TelegramBotApiClient.tryGetMyShortDescription( + languageCode: String? = null, +): TelegramResponse = + tryGetMyShortDescription(GetMyShortDescriptionRequest(languageCode)) + +/** + * Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be changed + * @param menuButton A JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault + */ +suspend fun TelegramBotApiClient.trySetChatMenuButton( + chatId: ChatId? = null, + menuButton: MenuButton? = null, +): TelegramResponse = + trySetChatMenuButton(SetChatMenuButtonRequest(chatId, menuButton)) + +/** + * Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be returned + */ +suspend fun TelegramBotApiClient.tryGetChatMenuButton( + chatId: ChatId? = null, +): TelegramResponse = + tryGetChatMenuButton(GetChatMenuButtonRequest(chatId)) + +/** + * Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success. + * + * @param rights A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared. + * @param forChannels Pass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed. + */ +suspend fun TelegramBotApiClient.trySetMyDefaultAdministratorRights( + rights: ChatAdministratorRights? = null, + forChannels: Boolean? = null, +): TelegramResponse = + trySetMyDefaultAdministratorRights(SetMyDefaultAdministratorRightsRequest(rights, forChannels)) + +/** + * Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success. + * + * @param forChannels Pass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned. + */ +suspend fun TelegramBotApiClient.tryGetMyDefaultAdministratorRights( + forChannels: Boolean? = null, +): TelegramResponse = + tryGetMyDefaultAdministratorRights(GetMyDefaultAdministratorRightsRequest(forChannels)) + +/** + * Use this method to edit text and game messages. On success the edited Message is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditMessageText( + text: String, + chatId: ChatId, + messageId: MessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditMessageText(EditMessageTextRequest(text = text, chatId = chatId, messageId = messageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)) + +/** + * Use this method to edit text and game messages. On success True is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageText( + text: String, + inlineMessageId: InlineMessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditInlineMessageText(EditMessageTextRequest(text = text, inlineMessageId = inlineMessageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)) + +/** + * Use this method to edit captions of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditMessageCaption( + chatId: ChatId, + messageId: MessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditMessageCaption(EditMessageCaptionRequest(chatId = chatId, messageId = messageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)) + +/** + * Use this method to edit captions of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageCaption( + inlineMessageId: InlineMessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditInlineMessageCaption(EditMessageCaptionRequest(inlineMessageId = inlineMessageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)) + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success the edited Message is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditMessageMedia( + media: InputMedia, + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditMessageMedia(EditMessageMediaRequest(media = media, chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success True is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageMedia( + media: InputMedia, + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditInlineMessageMedia(EditMessageMediaRequest(media = media, inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success the edited Message is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditMessageLiveLocation( + latitude: Double, + longitude: Double, + chatId: ChatId, + messageId: MessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, chatId = chatId, messageId = messageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)) + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success True is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageLiveLocation( + latitude: Double, + longitude: Double, + inlineMessageId: InlineMessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditInlineMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, inlineMessageId = inlineMessageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)) + +/** + * Use this method to stop updating a live location message before live_period expires. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message with live location to stop + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryStopMessageLiveLocation( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryStopMessageLiveLocation(StopMessageLiveLocationRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to stop updating a live location message before live_period expires. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +suspend fun TelegramBotApiClient.tryStopInlineMessageLiveLocation( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryStopInlineMessageLiveLocation(StopMessageLiveLocationRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit only the reply markup of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditMessageReplyMarkup( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditMessageReplyMarkup(EditMessageReplyMarkupRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit only the reply markup of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageReplyMarkup( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryEditInlineMessageReplyMarkup(EditMessageReplyMarkupRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the original message with the poll + * @param replyMarkup A JSON-serialized object for a new message inline keyboard. + */ +suspend fun TelegramBotApiClient.tryStopPoll( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + tryStopPoll(StopPollRequest(chatId, messageId, replyMarkup)) + +/** + * Use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Service messages about a supergroup, channel, or forum topic creation can't be deleted. - A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots can delete incoming messages in private chats. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the message to delete + */ +suspend fun TelegramBotApiClient.tryDeleteMessage( + chatId: ChatId, + messageId: MessageId, +): TelegramResponse = + tryDeleteMessage(DeleteMessageRequest(chatId, messageId)) + +/** + * Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param sticker Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji associated with the sticker; only for just uploaded stickers + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +suspend fun TelegramBotApiClient.trySendSticker( + chatId: ChatId, + sticker: String, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + trySendSticker(SendStickerRequest(chatId, sticker, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to get a sticker set. On success, a StickerSet object is returned. + * + * @param name Name of the sticker set + */ +suspend fun TelegramBotApiClient.tryGetStickerSet( + name: String, +): TelegramResponse = + tryGetStickerSet(GetStickerSetRequest(name)) + +/** + * Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects. + * + * @param customEmojiIds List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. + */ +suspend fun TelegramBotApiClient.tryGetCustomEmojiStickers( + customEmojiIds: List, +): TelegramResponse> = + tryGetCustomEmojiStickers(GetCustomEmojiStickersRequest(customEmojiIds)) + +/** + * Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success. + * + * @param userId User identifier of sticker file owner + * @param sticker A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files » + * @param stickerFormat Format of the sticker, must be one of “static”, “animated”, “video” + */ +suspend fun TelegramBotApiClient.tryUploadStickerFile( + userId: UserId, + sticker: String, + stickerFormat: String, +): TelegramResponse = + tryUploadStickerFile(UploadStickerFileRequest(userId, sticker, stickerFormat)) + +/** + * Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success. + * + * @param userId User identifier of created sticker set owner + * @param name Short name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_". is case insensitive. 1-64 characters. + * @param title Sticker set title, 1-64 characters + * @param stickers A JSON-serialized list of 1-50 initial stickers to be added to the sticker set + * @param stickerFormat Format of stickers in the set, must be one of “static”, “animated”, “video” + * @param stickerType Type of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created. + * @param needsRepainting Pass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only + */ +suspend fun TelegramBotApiClient.tryCreateNewStickerSet( + userId: UserId, + name: String, + title: String, + stickers: List, + stickerFormat: String, + stickerType: String? = null, + needsRepainting: Boolean? = null, +): TelegramResponse = + tryCreateNewStickerSet(CreateNewStickerSetRequest(userId, name, title, stickers, stickerFormat, stickerType, needsRepainting)) + +/** + * Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success. + * + * @param userId User identifier of sticker set owner + * @param name Sticker set name + * @param sticker A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed. + */ +suspend fun TelegramBotApiClient.tryAddStickerToSet( + userId: UserId, + name: String, + sticker: InputSticker, +): TelegramResponse = + tryAddStickerToSet(AddStickerToSetRequest(userId, name, sticker)) + +/** + * Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param position New sticker position in the set, zero-based + */ +suspend fun TelegramBotApiClient.trySetStickerPositionInSet( + sticker: String, + position: Long, +): TelegramResponse = + trySetStickerPositionInSet(SetStickerPositionInSetRequest(sticker, position)) + +/** + * Use this method to delete a sticker from a set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + */ +suspend fun TelegramBotApiClient.tryDeleteStickerFromSet( + sticker: String, +): TelegramResponse = + tryDeleteStickerFromSet(DeleteStickerFromSetRequest(sticker)) + +/** + * Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param emojiList A JSON-serialized list of 1-20 emoji associated with the sticker + */ +suspend fun TelegramBotApiClient.trySetStickerEmojiList( + sticker: String, + emojiList: List, +): TelegramResponse = + trySetStickerEmojiList(SetStickerEmojiListRequest(sticker, emojiList)) + +/** + * Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param keywords A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters + */ +suspend fun TelegramBotApiClient.trySetStickerKeywords( + sticker: String, + keywords: List? = null, +): TelegramResponse = + trySetStickerKeywords(SetStickerKeywordsRequest(sticker, keywords)) + +/** + * Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param maskPosition A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position. + */ +suspend fun TelegramBotApiClient.trySetStickerMaskPosition( + sticker: String, + maskPosition: MaskPosition? = null, +): TelegramResponse = + trySetStickerMaskPosition(SetStickerMaskPositionRequest(sticker, maskPosition)) + +/** + * Use this method to set the title of a created sticker set. Returns True on success. + * + * @param name Sticker set name + * @param title Sticker set title, 1-64 characters + */ +suspend fun TelegramBotApiClient.trySetStickerSetTitle( + name: String, + title: String, +): TelegramResponse = + trySetStickerSetTitle(SetStickerSetTitleRequest(name, title)) + +/** + * Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success. + * + * @param name Sticker set name + * @param userId User identifier of the sticker set owner + * @param thumbnail A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. + */ +suspend fun TelegramBotApiClient.trySetStickerSetThumbnail( + name: String, + userId: UserId, + thumbnail: String? = null, +): TelegramResponse = + trySetStickerSetThumbnail(SetStickerSetThumbnailRequest(name, userId, thumbnail)) + +/** + * Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success. + * + * @param name Sticker set name + * @param customEmojiId Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail. + */ +suspend fun TelegramBotApiClient.trySetCustomEmojiStickerSetThumbnail( + name: String, + customEmojiId: CustomEmojiId? = null, +): TelegramResponse = + trySetCustomEmojiStickerSetThumbnail(SetCustomEmojiStickerSetThumbnailRequest(name, customEmojiId)) + +/** + * Use this method to delete a sticker set that was created by the bot. Returns True on success. + * + * @param name Sticker set name + */ +suspend fun TelegramBotApiClient.tryDeleteStickerSet( + name: String, +): TelegramResponse = + tryDeleteStickerSet(DeleteStickerSetRequest(name)) + +/** + * Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. + * + * @param inlineQueryId Unique identifier for the answered query + * @param results A JSON-serialized array of results for the inline query + * @param cacheTime The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. + * @param isPersonal Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query. + * @param nextOffset Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes. + * @param button A JSON-serialized object describing a button to be shown above inline query results + */ +suspend fun TelegramBotApiClient.tryAnswerInlineQuery( + inlineQueryId: InlineQueryId, + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): TelegramResponse = + tryAnswerInlineQuery(AnswerInlineQueryRequest(inlineQueryId, results, cacheTime, isPersonal, nextOffset, button)) + +/** + * Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned. + * + * @param webAppQueryId Unique identifier for the query to be answered + * @param result A JSON-serialized object describing the message to be sent + */ +suspend fun TelegramBotApiClient.tryAnswerWebAppQuery( + webAppQueryId: WebAppQueryId, + result: InlineQueryResult, +): TelegramResponse = + tryAnswerWebAppQuery(AnswerWebAppQueryRequest(webAppQueryId, result)) + +/** + * Use this method to send invoices. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param startParameter Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to provider + * @param isFlexible Pass True if the final price depends on the shipping method + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button. + */ +suspend fun TelegramBotApiClient.trySendInvoice( + chatId: ChatId, + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + messageThreadId: MessageThreadId? = null, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + startParameter: String? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + trySendInvoice(SendInvoiceRequest(chatId, title, description, payload, providerToken, currency, prices, messageThreadId, maxTipAmount, suggestedTipAmounts, startParameter, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to create a link for an invoice. Returns the created invoice link as String on success. + * + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to the provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to the provider + * @param isFlexible Pass True if the final price depends on the shipping method + */ +suspend fun TelegramBotApiClient.tryCreateInvoiceLink( + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, +): TelegramResponse = + tryCreateInvoiceLink(CreateInvoiceLinkRequest(title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible)) + +/** + * If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. + * + * @param shippingQueryId Unique identifier for the query to be answered + * @param ok Pass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible) + * @param shippingOptions Required if ok is True. A JSON-serialized array of available shipping options. + * @param errorMessage Required if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + */ +suspend fun TelegramBotApiClient.tryAnswerShippingQuery( + shippingQueryId: ShippingQueryId, + ok: Boolean, + shippingOptions: List? = null, + errorMessage: String? = null, +): TelegramResponse = + tryAnswerShippingQuery(AnswerShippingQueryRequest(shippingQueryId, ok, shippingOptions, errorMessage)) + +/** + * Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + * + * @param preCheckoutQueryId Unique identifier for the query to be answered + * @param ok Specify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems. + * @param errorMessage Required if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + */ +suspend fun TelegramBotApiClient.tryAnswerPreCheckoutQuery( + preCheckoutQueryId: String, + ok: Boolean, + errorMessage: String? = null, +): TelegramResponse = + tryAnswerPreCheckoutQuery(AnswerPreCheckoutQueryRequest(preCheckoutQueryId, ok, errorMessage)) + +/** + * Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success. + * + * Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues. + * + * @param userId User identifier + * @param errors A JSON-serialized array describing the errors + */ +suspend fun TelegramBotApiClient.trySetPassportDataErrors( + userId: UserId, + errors: List, +): TelegramResponse = + trySetPassportDataErrors(SetPassportDataErrorsRequest(userId, errors)) + +/** + * Use this method to send a game. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat + * @param gameShortName Short name of the game, serves as the unique identifier for the game. Set up your games via @BotFather. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game. + */ +suspend fun TelegramBotApiClient.trySendGame( + chatId: ChatId, + gameShortName: String, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + trySendGame(SendGameRequest(chatId, gameShortName, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to set the score of the specified user in a game message. On success the edited Message is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + */ +suspend fun TelegramBotApiClient.trySetGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + chatId: ChatId, + messageId: MessageId, +): TelegramResponse = + trySetGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, chatId = chatId, messageId = messageId)) + +/** + * Use this method to set the score of the specified user in a game message. On success True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +suspend fun TelegramBotApiClient.trySetInlineGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + inlineMessageId: InlineMessageId, +): TelegramResponse = + trySetInlineGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, inlineMessageId = inlineMessageId)) + +/** + * Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects. + * + * This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change. + * + * @param userId Target user id + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +suspend fun TelegramBotApiClient.tryGetGameHighScores( + userId: UserId, + chatId: ChatId? = null, + messageId: MessageId? = null, + inlineMessageId: InlineMessageId? = null, +): TelegramResponse> = + tryGetGameHighScores(GetGameHighScoresRequest(userId, chatId, messageId, inlineMessageId)) diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/TryRequestMethods.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryRequestMethods.kt new file mode 100644 index 0000000..5f6573e --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryRequestMethods.kt @@ -0,0 +1,2069 @@ +package me.alllex.tbot.api.model + +import io.ktor.client.call.* +import io.ktor.client.request.* +import io.ktor.http.* +import me.alllex.tbot.api.client.* + + +/** + * Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects. + */ +suspend fun TelegramBotApiClient.tryGetUpdates(requestBody: GetUpdatesRequest): TelegramResponse> = + executeRequest("getUpdates", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getUpdates") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. + * + * If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content. + */ +suspend fun TelegramBotApiClient.trySetWebhook(requestBody: SetWebhookRequest): TelegramResponse = + executeRequest("setWebhook", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setWebhook") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteWebhook(requestBody: DeleteWebhookRequest): TelegramResponse = + executeRequest("deleteWebhook", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteWebhook") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the url field empty. + */ +suspend fun TelegramBotApiClient.tryGetWebhookInfo(): TelegramResponse = + executeRequest("getWebhookInfo", null) { + httpClient.get { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getWebhookInfo") + } + }.body() + } + +/** + * A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. + */ +suspend fun TelegramBotApiClient.tryGetMe(): TelegramResponse = + executeRequest("getMe", null) { + httpClient.get { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMe") + } + }.body() + } + +/** + * Use this method to log out from the cloud Bot API server before launching the bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. After a successful call, you can immediately log in on a local server, but will not be able to log in back to the cloud Bot API server for 10 minutes. Returns True on success. Requires no parameters. + */ +suspend fun TelegramBotApiClient.tryLogOut(): TelegramResponse = + executeRequest("logOut", null) { + httpClient.get { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "logOut") + } + }.body() + } + +/** + * Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart. The method will return error 429 in the first 10 minutes after the bot is launched. Returns True on success. Requires no parameters. + */ +suspend fun TelegramBotApiClient.tryClose(): TelegramResponse = + executeRequest("close", null) { + httpClient.get { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "close") + } + }.body() + } + +/** + * Use this method to send text messages. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendMessage(requestBody: SendMessageRequest): TelegramResponse = + executeRequest("sendMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.tryForwardMessage(requestBody: ForwardMessageRequest): TelegramResponse = + executeRequest("forwardMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "forwardMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. + */ +suspend fun TelegramBotApiClient.tryCopyMessage(requestBody: CopyMessageRequest): TelegramResponse = + executeRequest("copyMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "copyMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send photos. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendPhoto(requestBody: SendPhotoRequest): TelegramResponse = + executeRequest("sendPhoto", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendPhoto") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + * + * For sending voice messages, use the sendVoice method instead. + */ +suspend fun TelegramBotApiClient.trySendAudio(requestBody: SendAudioRequest): TelegramResponse = + executeRequest("sendAudio", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendAudio") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + */ +suspend fun TelegramBotApiClient.trySendDocument(requestBody: SendDocumentRequest): TelegramResponse = + executeRequest("sendDocument", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendDocument") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + */ +suspend fun TelegramBotApiClient.trySendVideo(requestBody: SendVideoRequest): TelegramResponse = + executeRequest("sendVideo", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendVideo") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + */ +suspend fun TelegramBotApiClient.trySendAnimation(requestBody: SendAnimationRequest): TelegramResponse = + executeRequest("sendAnimation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendAnimation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + */ +suspend fun TelegramBotApiClient.trySendVoice(requestBody: SendVoiceRequest): TelegramResponse = + executeRequest("sendVoice", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendVoice") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendVideoNote(requestBody: SendVideoNoteRequest): TelegramResponse = + executeRequest("sendVideoNote", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendVideoNote") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned. + */ +suspend fun TelegramBotApiClient.trySendMediaGroup(requestBody: SendMediaGroupRequest): TelegramResponse> = + executeRequest("sendMediaGroup", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendMediaGroup") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send point on the map. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendLocation(requestBody: SendLocationRequest): TelegramResponse = + executeRequest("sendLocation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendLocation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send information about a venue. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendVenue(requestBody: SendVenueRequest): TelegramResponse = + executeRequest("sendVenue", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendVenue") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send phone contacts. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendContact(requestBody: SendContactRequest): TelegramResponse = + executeRequest("sendContact", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendContact") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send a native poll. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendPoll(requestBody: SendPollRequest): TelegramResponse = + executeRequest("sendPoll", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendPoll") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendDice(requestBody: SendDiceRequest): TelegramResponse = + executeRequest("sendDice", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendDice") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. + * + * Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. + * + * We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. + */ +suspend fun TelegramBotApiClient.trySendChatAction(requestBody: SendChatActionRequest): TelegramResponse = + executeRequest("sendChatAction", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendChatAction") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. + */ +suspend fun TelegramBotApiClient.tryGetUserProfilePhotos(requestBody: GetUserProfilePhotosRequest): TelegramResponse = + executeRequest("getUserProfilePhotos", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getUserProfilePhotos") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. + */ +suspend fun TelegramBotApiClient.tryGetFile(requestBody: GetFileRequest): TelegramResponse = + executeRequest("getFile", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getFile") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryBanChatMember(requestBody: BanChatMemberRequest): TelegramResponse = + executeRequest("banChatMember", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "banChatMember") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnbanChatMember(requestBody: UnbanChatMemberRequest): TelegramResponse = + executeRequest("unbanChatMember", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unbanChatMember") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryRestrictChatMember(requestBody: RestrictChatMemberRequest): TelegramResponse = + executeRequest("restrictChatMember", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "restrictChatMember") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryPromoteChatMember(requestBody: PromoteChatMemberRequest): TelegramResponse = + executeRequest("promoteChatMember", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "promoteChatMember") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatAdministratorCustomTitle(requestBody: SetChatAdministratorCustomTitleRequest): TelegramResponse = + executeRequest("setChatAdministratorCustomTitle", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatAdministratorCustomTitle") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryBanChatSenderChat(requestBody: BanChatSenderChatRequest): TelegramResponse = + executeRequest("banChatSenderChat", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "banChatSenderChat") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnbanChatSenderChat(requestBody: UnbanChatSenderChatRequest): TelegramResponse = + executeRequest("unbanChatSenderChat", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unbanChatSenderChat") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatPermissions(requestBody: SetChatPermissionsRequest): TelegramResponse = + executeRequest("setChatPermissions", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatPermissions") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success. + */ +suspend fun TelegramBotApiClient.tryExportChatInviteLink(requestBody: ExportChatInviteLinkRequest): TelegramResponse = + executeRequest("exportChatInviteLink", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "exportChatInviteLink") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object. + */ +suspend fun TelegramBotApiClient.tryCreateChatInviteLink(requestBody: CreateChatInviteLinkRequest): TelegramResponse = + executeRequest("createChatInviteLink", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "createChatInviteLink") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object. + */ +suspend fun TelegramBotApiClient.tryEditChatInviteLink(requestBody: EditChatInviteLinkRequest): TelegramResponse = + executeRequest("editChatInviteLink", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editChatInviteLink") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object. + */ +suspend fun TelegramBotApiClient.tryRevokeChatInviteLink(requestBody: RevokeChatInviteLinkRequest): TelegramResponse = + executeRequest("revokeChatInviteLink", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "revokeChatInviteLink") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryApproveChatJoinRequest(requestBody: ApproveChatJoinRequestRequest): TelegramResponse = + executeRequest("approveChatJoinRequest", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "approveChatJoinRequest") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeclineChatJoinRequest(requestBody: DeclineChatJoinRequestRequest): TelegramResponse = + executeRequest("declineChatJoinRequest", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "declineChatJoinRequest") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatPhoto(requestBody: SetChatPhotoRequest): TelegramResponse = + executeRequest("setChatPhoto", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatPhoto") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteChatPhoto(requestBody: DeleteChatPhotoRequest): TelegramResponse = + executeRequest("deleteChatPhoto", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteChatPhoto") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatTitle(requestBody: SetChatTitleRequest): TelegramResponse = + executeRequest("setChatTitle", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatTitle") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatDescription(requestBody: SetChatDescriptionRequest): TelegramResponse = + executeRequest("setChatDescription", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatDescription") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryPinChatMessage(requestBody: PinChatMessageRequest): TelegramResponse = + executeRequest("pinChatMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "pinChatMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnpinChatMessage(requestBody: UnpinChatMessageRequest): TelegramResponse = + executeRequest("unpinChatMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unpinChatMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnpinAllChatMessages(requestBody: UnpinAllChatMessagesRequest): TelegramResponse = + executeRequest("unpinAllChatMessages", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unpinAllChatMessages") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method for your bot to leave a group, supergroup or channel. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryLeaveChat(requestBody: LeaveChatRequest): TelegramResponse = + executeRequest("leaveChat", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "leaveChat") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. + */ +suspend fun TelegramBotApiClient.tryGetChat(requestBody: GetChatRequest): TelegramResponse = + executeRequest("getChat", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getChat") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects. + */ +suspend fun TelegramBotApiClient.tryGetChatAdministrators(requestBody: GetChatAdministratorsRequest): TelegramResponse> = + executeRequest("getChatAdministrators", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getChatAdministrators") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the number of members in a chat. Returns Int on success. + */ +suspend fun TelegramBotApiClient.tryGetChatMemberCount(requestBody: GetChatMemberCountRequest): TelegramResponse = + executeRequest("getChatMemberCount", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getChatMemberCount") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success. + */ +suspend fun TelegramBotApiClient.tryGetChatMember(requestBody: GetChatMemberRequest): TelegramResponse = + executeRequest("getChatMember", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getChatMember") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatStickerSet(requestBody: SetChatStickerSetRequest): TelegramResponse = + executeRequest("setChatStickerSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatStickerSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteChatStickerSet(requestBody: DeleteChatStickerSetRequest): TelegramResponse = + executeRequest("deleteChatStickerSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteChatStickerSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects. + */ +suspend fun TelegramBotApiClient.tryGetForumTopicIconStickers(): TelegramResponse> = + executeRequest("getForumTopicIconStickers", null) { + httpClient.get { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getForumTopicIconStickers") + } + }.body() + } + +/** + * Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object. + */ +suspend fun TelegramBotApiClient.tryCreateForumTopic(requestBody: CreateForumTopicRequest): TelegramResponse = + executeRequest("createForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "createForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryEditForumTopic(requestBody: EditForumTopicRequest): TelegramResponse = + executeRequest("editForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryCloseForumTopic(requestBody: CloseForumTopicRequest): TelegramResponse = + executeRequest("closeForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "closeForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryReopenForumTopic(requestBody: ReopenForumTopicRequest): TelegramResponse = + executeRequest("reopenForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "reopenForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteForumTopic(requestBody: DeleteForumTopicRequest): TelegramResponse = + executeRequest("deleteForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnpinAllForumTopicMessages(requestBody: UnpinAllForumTopicMessagesRequest): TelegramResponse = + executeRequest("unpinAllForumTopicMessages", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unpinAllForumTopicMessages") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryEditGeneralForumTopic(requestBody: EditGeneralForumTopicRequest): TelegramResponse = + executeRequest("editGeneralForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editGeneralForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryCloseGeneralForumTopic(requestBody: CloseGeneralForumTopicRequest): TelegramResponse = + executeRequest("closeGeneralForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "closeGeneralForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryReopenGeneralForumTopic(requestBody: ReopenGeneralForumTopicRequest): TelegramResponse = + executeRequest("reopenGeneralForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "reopenGeneralForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryHideGeneralForumTopic(requestBody: HideGeneralForumTopicRequest): TelegramResponse = + executeRequest("hideGeneralForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "hideGeneralForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnhideGeneralForumTopic(requestBody: UnhideGeneralForumTopicRequest): TelegramResponse = + executeRequest("unhideGeneralForumTopic", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unhideGeneralForumTopic") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryUnpinAllGeneralForumTopicMessages(requestBody: UnpinAllGeneralForumTopicMessagesRequest): TelegramResponse = + executeRequest("unpinAllGeneralForumTopicMessages", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "unpinAllGeneralForumTopicMessages") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. + * + * Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + */ +suspend fun TelegramBotApiClient.tryAnswerCallbackQuery(requestBody: AnswerCallbackQueryRequest): TelegramResponse = + executeRequest("answerCallbackQuery", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "answerCallbackQuery") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetMyCommands(requestBody: SetMyCommandsRequest): TelegramResponse = + executeRequest("setMyCommands", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setMyCommands") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteMyCommands(requestBody: DeleteMyCommandsRequest): TelegramResponse = + executeRequest("deleteMyCommands", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteMyCommands") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned. + */ +suspend fun TelegramBotApiClient.tryGetMyCommands(requestBody: GetMyCommandsRequest): TelegramResponse> = + executeRequest("getMyCommands", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMyCommands") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the bot's name. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetMyName(requestBody: SetMyNameRequest): TelegramResponse = + executeRequest("setMyName", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setMyName") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current bot name for the given user language. Returns BotName on success. + */ +suspend fun TelegramBotApiClient.tryGetMyName(requestBody: GetMyNameRequest): TelegramResponse = + executeRequest("getMyName", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMyName") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetMyDescription(requestBody: SetMyDescriptionRequest): TelegramResponse = + executeRequest("setMyDescription", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setMyDescription") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current bot description for the given user language. Returns BotDescription on success. + */ +suspend fun TelegramBotApiClient.tryGetMyDescription(requestBody: GetMyDescriptionRequest): TelegramResponse = + executeRequest("getMyDescription", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMyDescription") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetMyShortDescription(requestBody: SetMyShortDescriptionRequest): TelegramResponse = + executeRequest("setMyShortDescription", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setMyShortDescription") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success. + */ +suspend fun TelegramBotApiClient.tryGetMyShortDescription(requestBody: GetMyShortDescriptionRequest): TelegramResponse = + executeRequest("getMyShortDescription", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMyShortDescription") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetChatMenuButton(requestBody: SetChatMenuButtonRequest): TelegramResponse = + executeRequest("setChatMenuButton", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setChatMenuButton") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success. + */ +suspend fun TelegramBotApiClient.tryGetChatMenuButton(requestBody: GetChatMenuButtonRequest): TelegramResponse = + executeRequest("getChatMenuButton", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getChatMenuButton") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetMyDefaultAdministratorRights(requestBody: SetMyDefaultAdministratorRightsRequest): TelegramResponse = + executeRequest("setMyDefaultAdministratorRights", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setMyDefaultAdministratorRights") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success. + */ +suspend fun TelegramBotApiClient.tryGetMyDefaultAdministratorRights(requestBody: GetMyDefaultAdministratorRightsRequest): TelegramResponse = + executeRequest("getMyDefaultAdministratorRights", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getMyDefaultAdministratorRights") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit text and game messages. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryEditMessageText(requestBody: EditMessageTextRequest): TelegramResponse = + executeRequest("editMessageText", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageText") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit text and game messages. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageText(requestBody: EditMessageTextRequest): TelegramResponse = + executeRequest("editMessageText", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageText") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit captions of messages. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryEditMessageCaption(requestBody: EditMessageCaptionRequest): TelegramResponse = + executeRequest("editMessageCaption", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageCaption") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit captions of messages. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageCaption(requestBody: EditMessageCaptionRequest): TelegramResponse = + executeRequest("editMessageCaption", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageCaption") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryEditMessageMedia(requestBody: EditMessageMediaRequest): TelegramResponse = + executeRequest("editMessageMedia", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageMedia") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageMedia(requestBody: EditMessageMediaRequest): TelegramResponse = + executeRequest("editMessageMedia", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageMedia") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryEditMessageLiveLocation(requestBody: EditMessageLiveLocationRequest): TelegramResponse = + executeRequest("editMessageLiveLocation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageLiveLocation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageLiveLocation(requestBody: EditMessageLiveLocationRequest): TelegramResponse = + executeRequest("editMessageLiveLocation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageLiveLocation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to stop updating a live location message before live_period expires. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryStopMessageLiveLocation(requestBody: StopMessageLiveLocationRequest): TelegramResponse = + executeRequest("stopMessageLiveLocation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "stopMessageLiveLocation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to stop updating a live location message before live_period expires. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryStopInlineMessageLiveLocation(requestBody: StopMessageLiveLocationRequest): TelegramResponse = + executeRequest("stopMessageLiveLocation", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "stopMessageLiveLocation") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit only the reply markup of messages. On success the edited Message is returned. + */ +suspend fun TelegramBotApiClient.tryEditMessageReplyMarkup(requestBody: EditMessageReplyMarkupRequest): TelegramResponse = + executeRequest("editMessageReplyMarkup", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageReplyMarkup") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to edit only the reply markup of messages. On success True is returned. + */ +suspend fun TelegramBotApiClient.tryEditInlineMessageReplyMarkup(requestBody: EditMessageReplyMarkupRequest): TelegramResponse = + executeRequest("editMessageReplyMarkup", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "editMessageReplyMarkup") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned. + */ +suspend fun TelegramBotApiClient.tryStopPoll(requestBody: StopPollRequest): TelegramResponse = + executeRequest("stopPoll", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "stopPoll") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Service messages about a supergroup, channel, or forum topic creation can't be deleted. - A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots can delete incoming messages in private chats. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteMessage(requestBody: DeleteMessageRequest): TelegramResponse = + executeRequest("deleteMessage", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteMessage") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendSticker(requestBody: SendStickerRequest): TelegramResponse = + executeRequest("sendSticker", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendSticker") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get a sticker set. On success, a StickerSet object is returned. + */ +suspend fun TelegramBotApiClient.tryGetStickerSet(requestBody: GetStickerSetRequest): TelegramResponse = + executeRequest("getStickerSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getStickerSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects. + */ +suspend fun TelegramBotApiClient.tryGetCustomEmojiStickers(requestBody: GetCustomEmojiStickersRequest): TelegramResponse> = + executeRequest("getCustomEmojiStickers", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getCustomEmojiStickers") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success. + */ +suspend fun TelegramBotApiClient.tryUploadStickerFile(requestBody: UploadStickerFileRequest): TelegramResponse = + executeRequest("uploadStickerFile", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "uploadStickerFile") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryCreateNewStickerSet(requestBody: CreateNewStickerSetRequest): TelegramResponse = + executeRequest("createNewStickerSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "createNewStickerSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryAddStickerToSet(requestBody: AddStickerToSetRequest): TelegramResponse = + executeRequest("addStickerToSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "addStickerToSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerPositionInSet(requestBody: SetStickerPositionInSetRequest): TelegramResponse = + executeRequest("setStickerPositionInSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerPositionInSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a sticker from a set created by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteStickerFromSet(requestBody: DeleteStickerFromSetRequest): TelegramResponse = + executeRequest("deleteStickerFromSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteStickerFromSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerEmojiList(requestBody: SetStickerEmojiListRequest): TelegramResponse = + executeRequest("setStickerEmojiList", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerEmojiList") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerKeywords(requestBody: SetStickerKeywordsRequest): TelegramResponse = + executeRequest("setStickerKeywords", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerKeywords") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerMaskPosition(requestBody: SetStickerMaskPositionRequest): TelegramResponse = + executeRequest("setStickerMaskPosition", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerMaskPosition") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the title of a created sticker set. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerSetTitle(requestBody: SetStickerSetTitleRequest): TelegramResponse = + executeRequest("setStickerSetTitle", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerSetTitle") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetStickerSetThumbnail(requestBody: SetStickerSetThumbnailRequest): TelegramResponse = + executeRequest("setStickerSetThumbnail", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setStickerSetThumbnail") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success. + */ +suspend fun TelegramBotApiClient.trySetCustomEmojiStickerSetThumbnail(requestBody: SetCustomEmojiStickerSetThumbnailRequest): TelegramResponse = + executeRequest("setCustomEmojiStickerSetThumbnail", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setCustomEmojiStickerSetThumbnail") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to delete a sticker set that was created by the bot. Returns True on success. + */ +suspend fun TelegramBotApiClient.tryDeleteStickerSet(requestBody: DeleteStickerSetRequest): TelegramResponse = + executeRequest("deleteStickerSet", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "deleteStickerSet") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. + */ +suspend fun TelegramBotApiClient.tryAnswerInlineQuery(requestBody: AnswerInlineQueryRequest): TelegramResponse = + executeRequest("answerInlineQuery", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "answerInlineQuery") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned. + */ +suspend fun TelegramBotApiClient.tryAnswerWebAppQuery(requestBody: AnswerWebAppQueryRequest): TelegramResponse = + executeRequest("answerWebAppQuery", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "answerWebAppQuery") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send invoices. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendInvoice(requestBody: SendInvoiceRequest): TelegramResponse = + executeRequest("sendInvoice", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendInvoice") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to create a link for an invoice. Returns the created invoice link as String on success. + */ +suspend fun TelegramBotApiClient.tryCreateInvoiceLink(requestBody: CreateInvoiceLinkRequest): TelegramResponse = + executeRequest("createInvoiceLink", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "createInvoiceLink") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. + */ +suspend fun TelegramBotApiClient.tryAnswerShippingQuery(requestBody: AnswerShippingQueryRequest): TelegramResponse = + executeRequest("answerShippingQuery", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "answerShippingQuery") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + */ +suspend fun TelegramBotApiClient.tryAnswerPreCheckoutQuery(requestBody: AnswerPreCheckoutQueryRequest): TelegramResponse = + executeRequest("answerPreCheckoutQuery", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "answerPreCheckoutQuery") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success. + * + * Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues. + */ +suspend fun TelegramBotApiClient.trySetPassportDataErrors(requestBody: SetPassportDataErrorsRequest): TelegramResponse = + executeRequest("setPassportDataErrors", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setPassportDataErrors") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to send a game. On success, the sent Message is returned. + */ +suspend fun TelegramBotApiClient.trySendGame(requestBody: SendGameRequest): TelegramResponse = + executeRequest("sendGame", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "sendGame") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the score of the specified user in a game message. On success the edited Message is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + */ +suspend fun TelegramBotApiClient.trySetGameScore(requestBody: SetGameScoreRequest): TelegramResponse = + executeRequest("setGameScore", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setGameScore") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to set the score of the specified user in a game message. On success True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + */ +suspend fun TelegramBotApiClient.trySetInlineGameScore(requestBody: SetGameScoreRequest): TelegramResponse = + executeRequest("setGameScore", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "setGameScore") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + +/** + * Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects. + * + * This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change. + */ +suspend fun TelegramBotApiClient.tryGetGameHighScores(requestBody: GetGameHighScoresRequest): TelegramResponse> = + executeRequest("getGameHighScores", requestBody) { + httpClient.post { + url { + protocol = apiProtocol + host = apiHost + port = apiPort + path("bot$apiToken", "getGameHighScores") + } + contentType(ContentType.Application.Json) + setBody(requestBody) + }.body() + } + diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/TryWithContextMethods.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryWithContextMethods.kt new file mode 100644 index 0000000..974eb35 --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/TryWithContextMethods.kt @@ -0,0 +1,2170 @@ +package me.alllex.tbot.api.model + +import me.alllex.tbot.api.client.* + + + +/** + * Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects. + * + * @param offset Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten. + * @param limit Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. + * @param timeout Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time. + */ +context(TelegramBotApiContext) +suspend fun tryGetUpdates( + offset: Long? = null, + limit: Long? = null, + timeout: Seconds? = null, + allowedUpdates: List? = null, +): TelegramResponse> = + botApiClient.tryGetUpdates(GetUpdatesRequest(offset, limit, timeout, allowedUpdates)) + +/** + * Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. + * + * If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content. + * + * @param url HTTPS URL to send updates to. Use an empty string to remove webhook integration + * @param certificate Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details. + * @param ipAddress The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS + * @param maxConnections The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time. + * @param dropPendingUpdates Pass True to drop all pending updates + * @param secretToken A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you. + */ +context(TelegramBotApiContext) +suspend fun trySetWebhook( + url: String, + certificate: String? = null, + ipAddress: String? = null, + maxConnections: Long? = null, + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null, + secretToken: String? = null, +): TelegramResponse = + botApiClient.trySetWebhook(SetWebhookRequest(url, certificate, ipAddress, maxConnections, allowedUpdates, dropPendingUpdates, secretToken)) + +/** + * Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. + * + * @param dropPendingUpdates Pass True to drop all pending updates + */ +context(TelegramBotApiContext) +suspend fun tryDeleteWebhook( + dropPendingUpdates: Boolean? = null, +): TelegramResponse = + botApiClient.tryDeleteWebhook(DeleteWebhookRequest(dropPendingUpdates)) + +/** + * Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the url field empty. + */ +context(TelegramBotApiContext) +suspend fun tryGetWebhookInfo(): TelegramResponse = + botApiClient.tryGetWebhookInfo() + +/** + * A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. + */ +context(TelegramBotApiContext) +suspend fun tryGetMe(): TelegramResponse = + botApiClient.tryGetMe() + +/** + * Use this method to log out from the cloud Bot API server before launching the bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. After a successful call, you can immediately log in on a local server, but will not be able to log in back to the cloud Bot API server for 10 minutes. Returns True on success. Requires no parameters. + */ +context(TelegramBotApiContext) +suspend fun tryLogOut(): TelegramResponse = + botApiClient.tryLogOut() + +/** + * Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart. The method will return error 429 in the first 10 minutes after the bot is launched. Returns True on success. Requires no parameters. + */ +context(TelegramBotApiContext) +suspend fun tryClose(): TelegramResponse = + botApiClient.tryClose() + +/** + * Use this method to send text messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param text Text of the message to be sent, 1-4096 characters after entities parsing + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendMessage( + chatId: ChatId, + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendMessage(SendMessageRequest(chatId, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the forwarded message from forwarding and saving + */ +context(TelegramBotApiContext) +suspend fun tryForwardMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, +): TelegramResponse = + botApiClient.tryForwardMessage(ForwardMessageRequest(chatId, fromChatId, messageId, messageThreadId, disableNotification, protectContent)) + +/** + * Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept + * @param parseMode Mode for parsing entities in the new caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun tryCopyMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.tryCopyMessage(CopyMessageRequest(chatId, fromChatId, messageId, messageThreadId, caption, parseMode, captionEntities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send photos. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the photo needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendPhoto( + chatId: ChatId, + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendPhoto(SendPhotoRequest(chatId, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + * + * For sending voice messages, use the sendVoice method instead. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param audio Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Audio caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the audio in seconds + * @param performer Performer + * @param title Track name + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendAudio( + chatId: ChatId, + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendAudio(SendAudioRequest(chatId, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param document File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Disables automatic server-side content type detection for files uploaded using multipart/form-data + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendDocument( + chatId: ChatId, + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendDocument(SendDocumentRequest(chatId, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param video Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param width Video width + * @param height Video height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the video needs to be covered with a spoiler animation + * @param supportsStreaming Pass True if the uploaded video is suitable for streaming + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendVideo( + chatId: ChatId, + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendVideo(SendVideoRequest(chatId, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param animation Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent animation in seconds + * @param width Animation width + * @param height Animation height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Animation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the animation needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendAnimation( + chatId: ChatId, + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendAnimation(SendAnimationRequest(chatId, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param voice Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Voice message caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the voice message in seconds + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendVoice( + chatId: ChatId, + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendVoice(SendVoiceRequest(chatId, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param videoNote Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param length Video width and height, i.e. diameter of the video message + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendVideoNote( + chatId: ChatId, + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendVideoNote(SendVideoNoteRequest(chatId, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param media A JSON-serialized array describing messages to be sent, must include 2-10 items + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends messages silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent messages from forwarding and saving + * @param replyToMessageId If the messages are a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + */ +context(TelegramBotApiContext) +suspend fun trySendMediaGroup( + chatId: ChatId, + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): TelegramResponse> = + botApiClient.trySendMediaGroup(SendMediaGroupRequest(chatId, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply)) + +/** + * Use this method to send point on the map. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the location + * @param longitude Longitude of the location + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Period in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400. + * @param heading For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendLocation( + chatId: ChatId, + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendLocation(SendLocationRequest(chatId, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send information about a venue. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the venue + * @param longitude Longitude of the venue + * @param title Name of the venue + * @param address Address of the venue + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param foursquareId Foursquare identifier of the venue + * @param foursquareType Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Google Places identifier of the venue + * @param googlePlaceType Google Places type of the venue. (See supported types.) + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendVenue( + chatId: ChatId, + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendVenue(SendVenueRequest(chatId, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send phone contacts. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param lastName Contact's last name + * @param vcard Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendContact( + chatId: ChatId, + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendContact(SendContactRequest(chatId, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send a native poll. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param question Poll question, 1-300 characters + * @param options A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param isAnonymous True, if the poll needs to be anonymous, defaults to True + * @param type Poll type, “quiz” or “regular”, defaults to “regular” + * @param allowsMultipleAnswers True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False + * @param correctOptionId 0-based identifier of the correct answer option, required for polls in quiz mode + * @param explanation Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + * @param explanationParseMode Mode for parsing entities in the explanation. See formatting options for more details. + * @param explanationEntities A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode + * @param openPeriod Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. + * @param closeDate Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. + * @param isClosed Pass True if the poll needs to be immediately closed. This can be useful for poll preview. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendPoll( + chatId: ChatId, + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendPoll(SendPollRequest(chatId, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji on which the dice throw animation is based. Currently, must be one of “”, “”, “”, “”, “”, or “”. Dice can have values 1-6 for “”, “” and “”, values 1-5 for “” and “”, and values 1-64 for “”. Defaults to “” + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendDice( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendDice(SendDiceRequest(chatId, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. + * + * Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. + * + * We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param action Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. + * @param messageThreadId Unique identifier for the target message thread; supergroups only + */ +context(TelegramBotApiContext) +suspend fun trySendChatAction( + chatId: ChatId, + action: String, + messageThreadId: MessageThreadId? = null, +): TelegramResponse = + botApiClient.trySendChatAction(SendChatActionRequest(chatId, action, messageThreadId)) + +/** + * Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. + * + * @param userId Unique identifier of the target user + * @param offset Sequential number of the first photo to be returned. By default, all photos are returned. + * @param limit Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100. + */ +context(TelegramBotApiContext) +suspend fun tryGetUserProfilePhotos( + userId: UserId, + offset: Long? = null, + limit: Long? = null, +): TelegramResponse = + botApiClient.tryGetUserProfilePhotos(GetUserProfilePhotosRequest(userId, offset, limit)) + +/** + * Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. + * + * @param fileId File identifier to get information about + */ +context(TelegramBotApiContext) +suspend fun tryGetFile( + fileId: FileId, +): TelegramResponse = + botApiClient.tryGetFile(GetFileRequest(fileId)) + +/** + * Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param untilDate Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + * @param revokeMessages Pass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels. + */ +context(TelegramBotApiContext) +suspend fun tryBanChatMember( + chatId: ChatId, + userId: UserId, + untilDate: UnixTimestamp? = null, + revokeMessages: Boolean? = null, +): TelegramResponse = + botApiClient.tryBanChatMember(BanChatMemberRequest(chatId, userId, untilDate, revokeMessages)) + +/** + * Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param onlyIfBanned Do nothing if the user is not banned + */ +context(TelegramBotApiContext) +suspend fun tryUnbanChatMember( + chatId: ChatId, + userId: UserId, + onlyIfBanned: Boolean? = null, +): TelegramResponse = + botApiClient.tryUnbanChatMember(UnbanChatMemberRequest(chatId, userId, onlyIfBanned)) + +/** + * Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param permissions A JSON-serialized object for new user permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + * @param untilDate Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + */ +context(TelegramBotApiContext) +suspend fun tryRestrictChatMember( + chatId: ChatId, + userId: UserId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, + untilDate: UnixTimestamp? = null, +): TelegramResponse = + botApiClient.tryRestrictChatMember(RestrictChatMemberRequest(chatId, userId, permissions, useIndependentChatPermissions, untilDate)) + +/** + * Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param isAnonymous Pass True if the administrator's presence in the chat is hidden + * @param canManageChat Pass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canPostMessages Pass True if the administrator can post messages in the channel; channels only + * @param canEditMessages Pass True if the administrator can edit messages of other users and can pin messages; channels only + * @param canDeleteMessages Pass True if the administrator can delete messages of other users + * @param canPostStories Pass True if the administrator can post stories in the channel; channels only + * @param canEditStories Pass True if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Pass True if the administrator can delete stories posted by other users; channels only + * @param canManageVideoChats Pass True if the administrator can manage video chats + * @param canRestrictMembers Pass True if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers Pass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) + * @param canChangeInfo Pass True if the administrator can change chat title, photo and other settings + * @param canInviteUsers Pass True if the administrator can invite new users to the chat + * @param canPinMessages Pass True if the administrator can pin messages, supergroups only + * @param canManageTopics Pass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only + */ +context(TelegramBotApiContext) +suspend fun tryPromoteChatMember( + chatId: ChatId, + userId: UserId, + isAnonymous: Boolean? = null, + canManageChat: Boolean? = null, + canPostMessages: Boolean? = null, + canEditMessages: Boolean? = null, + canDeleteMessages: Boolean? = null, + canPostStories: Boolean? = null, + canEditStories: Boolean? = null, + canDeleteStories: Boolean? = null, + canManageVideoChats: Boolean? = null, + canRestrictMembers: Boolean? = null, + canPromoteMembers: Boolean? = null, + canChangeInfo: Boolean? = null, + canInviteUsers: Boolean? = null, + canPinMessages: Boolean? = null, + canManageTopics: Boolean? = null, +): TelegramResponse = + botApiClient.tryPromoteChatMember(PromoteChatMemberRequest(chatId, userId, isAnonymous, canManageChat, canPostMessages, canEditMessages, canDeleteMessages, canPostStories, canEditStories, canDeleteStories, canManageVideoChats, canRestrictMembers, canPromoteMembers, canChangeInfo, canInviteUsers, canPinMessages, canManageTopics)) + +/** + * Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param customTitle New custom title for the administrator; 0-16 characters, emoji are not allowed + */ +context(TelegramBotApiContext) +suspend fun trySetChatAdministratorCustomTitle( + chatId: ChatId, + userId: UserId, + customTitle: String, +): TelegramResponse = + botApiClient.trySetChatAdministratorCustomTitle(SetChatAdministratorCustomTitleRequest(chatId, userId, customTitle)) + +/** + * Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +context(TelegramBotApiContext) +suspend fun tryBanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): TelegramResponse = + botApiClient.tryBanChatSenderChat(BanChatSenderChatRequest(chatId, senderChatId)) + +/** + * Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +context(TelegramBotApiContext) +suspend fun tryUnbanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): TelegramResponse = + botApiClient.tryUnbanChatSenderChat(UnbanChatSenderChatRequest(chatId, senderChatId)) + +/** + * Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param permissions A JSON-serialized object for new default chat permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + */ +context(TelegramBotApiContext) +suspend fun trySetChatPermissions( + chatId: ChatId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, +): TelegramResponse = + botApiClient.trySetChatPermissions(SetChatPermissionsRequest(chatId, permissions, useIndependentChatPermissions)) + +/** + * Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryExportChatInviteLink( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryExportChatInviteLink(ExportChatInviteLinkRequest(chatId)) + +/** + * Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +context(TelegramBotApiContext) +suspend fun tryCreateChatInviteLink( + chatId: ChatId, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): TelegramResponse = + botApiClient.tryCreateChatInviteLink(CreateChatInviteLinkRequest(chatId, name, expireDate, memberLimit, createsJoinRequest)) + +/** + * Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to edit + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +context(TelegramBotApiContext) +suspend fun tryEditChatInviteLink( + chatId: ChatId, + inviteLink: String, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): TelegramResponse = + botApiClient.tryEditChatInviteLink(EditChatInviteLinkRequest(chatId, inviteLink, name, expireDate, memberLimit, createsJoinRequest)) + +/** + * Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object. + * + * @param chatId Unique identifier of the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to revoke + */ +context(TelegramBotApiContext) +suspend fun tryRevokeChatInviteLink( + chatId: ChatId, + inviteLink: String, +): TelegramResponse = + botApiClient.tryRevokeChatInviteLink(RevokeChatInviteLinkRequest(chatId, inviteLink)) + +/** + * Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +suspend fun tryApproveChatJoinRequest( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + botApiClient.tryApproveChatJoinRequest(ApproveChatJoinRequestRequest(chatId, userId)) + +/** + * Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +suspend fun tryDeclineChatJoinRequest( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + botApiClient.tryDeclineChatJoinRequest(DeclineChatJoinRequestRequest(chatId, userId)) + +/** + * Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo New chat photo, uploaded using multipart/form-data + */ +context(TelegramBotApiContext) +suspend fun trySetChatPhoto( + chatId: ChatId, + photo: String, +): TelegramResponse = + botApiClient.trySetChatPhoto(SetChatPhotoRequest(chatId, photo)) + +/** + * Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryDeleteChatPhoto( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryDeleteChatPhoto(DeleteChatPhotoRequest(chatId)) + +/** + * Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title New chat title, 1-128 characters + */ +context(TelegramBotApiContext) +suspend fun trySetChatTitle( + chatId: ChatId, + title: String, +): TelegramResponse = + botApiClient.trySetChatTitle(SetChatTitleRequest(chatId, title)) + +/** + * Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param description New chat description, 0-255 characters + */ +context(TelegramBotApiContext) +suspend fun trySetChatDescription( + chatId: ChatId, + description: String? = null, +): TelegramResponse = + botApiClient.trySetChatDescription(SetChatDescriptionRequest(chatId, description)) + +/** + * Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to pin + * @param disableNotification Pass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats. + */ +context(TelegramBotApiContext) +suspend fun tryPinChatMessage( + chatId: ChatId, + messageId: MessageId, + disableNotification: Boolean? = null, +): TelegramResponse = + botApiClient.tryPinChatMessage(PinChatMessageRequest(chatId, messageId, disableNotification)) + +/** + * Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. + */ +context(TelegramBotApiContext) +suspend fun tryUnpinChatMessage( + chatId: ChatId, + messageId: MessageId? = null, +): TelegramResponse = + botApiClient.tryUnpinChatMessage(UnpinChatMessageRequest(chatId, messageId)) + +/** + * Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryUnpinAllChatMessages( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryUnpinAllChatMessages(UnpinAllChatMessagesRequest(chatId)) + +/** + * Use this method for your bot to leave a group, supergroup or channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryLeaveChat( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryLeaveChat(LeaveChatRequest(chatId)) + +/** + * Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryGetChat( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryGetChat(GetChatRequest(chatId)) + +/** + * Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryGetChatAdministrators( + chatId: ChatId, +): TelegramResponse> = + botApiClient.tryGetChatAdministrators(GetChatAdministratorsRequest(chatId)) + +/** + * Use this method to get the number of members in a chat. Returns Int on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +suspend fun tryGetChatMemberCount( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryGetChatMemberCount(GetChatMemberCountRequest(chatId)) + +/** + * Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +suspend fun tryGetChatMember( + chatId: ChatId, + userId: UserId, +): TelegramResponse = + botApiClient.tryGetChatMember(GetChatMemberRequest(chatId, userId)) + +/** + * Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param stickerSetName Name of the sticker set to be set as the group sticker set + */ +context(TelegramBotApiContext) +suspend fun trySetChatStickerSet( + chatId: ChatId, + stickerSetName: String, +): TelegramResponse = + botApiClient.trySetChatStickerSet(SetChatStickerSetRequest(chatId, stickerSetName)) + +/** + * Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryDeleteChatStickerSet( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryDeleteChatStickerSet(DeleteChatStickerSetRequest(chatId)) + +/** + * Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects. + */ +context(TelegramBotApiContext) +suspend fun tryGetForumTopicIconStickers(): TelegramResponse> = + botApiClient.tryGetForumTopicIconStickers() + +/** + * Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name Topic name, 1-128 characters + * @param iconColor Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F) + * @param iconCustomEmojiId Unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. + */ +context(TelegramBotApiContext) +suspend fun tryCreateForumTopic( + chatId: ChatId, + name: String, + iconColor: Long? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): TelegramResponse = + botApiClient.tryCreateForumTopic(CreateForumTopicRequest(chatId, name, iconColor, iconCustomEmojiId)) + +/** + * Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + * @param name New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept + * @param iconCustomEmojiId New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept + */ +context(TelegramBotApiContext) +suspend fun tryEditForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, + name: String? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): TelegramResponse = + botApiClient.tryEditForumTopic(EditForumTopicRequest(chatId, messageThreadId, name, iconCustomEmojiId)) + +/** + * Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +suspend fun tryCloseForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + botApiClient.tryCloseForumTopic(CloseForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +suspend fun tryReopenForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + botApiClient.tryReopenForumTopic(ReopenForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +suspend fun tryDeleteForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + botApiClient.tryDeleteForumTopic(DeleteForumTopicRequest(chatId, messageThreadId)) + +/** + * Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +suspend fun tryUnpinAllForumTopicMessages( + chatId: ChatId, + messageThreadId: MessageThreadId, +): TelegramResponse = + botApiClient.tryUnpinAllForumTopicMessages(UnpinAllForumTopicMessagesRequest(chatId, messageThreadId)) + +/** + * Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name New topic name, 1-128 characters + */ +context(TelegramBotApiContext) +suspend fun tryEditGeneralForumTopic( + chatId: ChatId, + name: String, +): TelegramResponse = + botApiClient.tryEditGeneralForumTopic(EditGeneralForumTopicRequest(chatId, name)) + +/** + * Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryCloseGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryCloseGeneralForumTopic(CloseGeneralForumTopicRequest(chatId)) + +/** + * Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryReopenGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryReopenGeneralForumTopic(ReopenGeneralForumTopicRequest(chatId)) + +/** + * Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryHideGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryHideGeneralForumTopic(HideGeneralForumTopicRequest(chatId)) + +/** + * Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryUnhideGeneralForumTopic( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryUnhideGeneralForumTopic(UnhideGeneralForumTopicRequest(chatId)) + +/** + * Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +suspend fun tryUnpinAllGeneralForumTopicMessages( + chatId: ChatId, +): TelegramResponse = + botApiClient.tryUnpinAllGeneralForumTopicMessages(UnpinAllGeneralForumTopicMessagesRequest(chatId)) + +/** + * Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. + * + * Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * + * @param callbackQueryId Unique identifier for the query to be answered + * @param text Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters + * @param showAlert If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. + * @param url URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * @param cacheTime The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. + */ +context(TelegramBotApiContext) +suspend fun tryAnswerCallbackQuery( + callbackQueryId: CallbackQueryId, + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): TelegramResponse = + botApiClient.tryAnswerCallbackQuery(AnswerCallbackQueryRequest(callbackQueryId, text, showAlert, url, cacheTime)) + +/** + * Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success. + * + * @param commands A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +context(TelegramBotApiContext) +suspend fun trySetMyCommands( + commands: List, + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse = + botApiClient.trySetMyCommands(SetMyCommandsRequest(commands, scope, languageCode)) + +/** + * Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success. + * + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +context(TelegramBotApiContext) +suspend fun tryDeleteMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse = + botApiClient.tryDeleteMyCommands(DeleteMyCommandsRequest(scope, languageCode)) + +/** + * Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned. + * + * @param scope A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +suspend fun tryGetMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): TelegramResponse> = + botApiClient.tryGetMyCommands(GetMyCommandsRequest(scope, languageCode)) + +/** + * Use this method to change the bot's name. Returns True on success. + * + * @param name New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. + */ +context(TelegramBotApiContext) +suspend fun trySetMyName( + name: String? = null, + languageCode: String? = null, +): TelegramResponse = + botApiClient.trySetMyName(SetMyNameRequest(name, languageCode)) + +/** + * Use this method to get the current bot name for the given user language. Returns BotName on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +suspend fun tryGetMyName( + languageCode: String? = null, +): TelegramResponse = + botApiClient.tryGetMyName(GetMyNameRequest(languageCode)) + +/** + * Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success. + * + * @param description New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. + */ +context(TelegramBotApiContext) +suspend fun trySetMyDescription( + description: String? = null, + languageCode: String? = null, +): TelegramResponse = + botApiClient.trySetMyDescription(SetMyDescriptionRequest(description, languageCode)) + +/** + * Use this method to get the current bot description for the given user language. Returns BotDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +suspend fun tryGetMyDescription( + languageCode: String? = null, +): TelegramResponse = + botApiClient.tryGetMyDescription(GetMyDescriptionRequest(languageCode)) + +/** + * Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success. + * + * @param shortDescription New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. + */ +context(TelegramBotApiContext) +suspend fun trySetMyShortDescription( + shortDescription: String? = null, + languageCode: String? = null, +): TelegramResponse = + botApiClient.trySetMyShortDescription(SetMyShortDescriptionRequest(shortDescription, languageCode)) + +/** + * Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +suspend fun tryGetMyShortDescription( + languageCode: String? = null, +): TelegramResponse = + botApiClient.tryGetMyShortDescription(GetMyShortDescriptionRequest(languageCode)) + +/** + * Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be changed + * @param menuButton A JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault + */ +context(TelegramBotApiContext) +suspend fun trySetChatMenuButton( + chatId: ChatId? = null, + menuButton: MenuButton? = null, +): TelegramResponse = + botApiClient.trySetChatMenuButton(SetChatMenuButtonRequest(chatId, menuButton)) + +/** + * Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be returned + */ +context(TelegramBotApiContext) +suspend fun tryGetChatMenuButton( + chatId: ChatId? = null, +): TelegramResponse = + botApiClient.tryGetChatMenuButton(GetChatMenuButtonRequest(chatId)) + +/** + * Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success. + * + * @param rights A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared. + * @param forChannels Pass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed. + */ +context(TelegramBotApiContext) +suspend fun trySetMyDefaultAdministratorRights( + rights: ChatAdministratorRights? = null, + forChannels: Boolean? = null, +): TelegramResponse = + botApiClient.trySetMyDefaultAdministratorRights(SetMyDefaultAdministratorRightsRequest(rights, forChannels)) + +/** + * Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success. + * + * @param forChannels Pass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned. + */ +context(TelegramBotApiContext) +suspend fun tryGetMyDefaultAdministratorRights( + forChannels: Boolean? = null, +): TelegramResponse = + botApiClient.tryGetMyDefaultAdministratorRights(GetMyDefaultAdministratorRightsRequest(forChannels)) + +/** + * Use this method to edit text and game messages. On success the edited Message is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditMessageText( + text: String, + chatId: ChatId, + messageId: MessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditMessageText(EditMessageTextRequest(text = text, chatId = chatId, messageId = messageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)) + +/** + * Use this method to edit text and game messages. On success True is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditInlineMessageText( + text: String, + inlineMessageId: InlineMessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditInlineMessageText(EditMessageTextRequest(text = text, inlineMessageId = inlineMessageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)) + +/** + * Use this method to edit captions of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditMessageCaption( + chatId: ChatId, + messageId: MessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditMessageCaption(EditMessageCaptionRequest(chatId = chatId, messageId = messageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)) + +/** + * Use this method to edit captions of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditInlineMessageCaption( + inlineMessageId: InlineMessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditInlineMessageCaption(EditMessageCaptionRequest(inlineMessageId = inlineMessageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)) + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success the edited Message is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditMessageMedia( + media: InputMedia, + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditMessageMedia(EditMessageMediaRequest(media = media, chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success True is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditInlineMessageMedia( + media: InputMedia, + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditInlineMessageMedia(EditMessageMediaRequest(media = media, inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success the edited Message is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditMessageLiveLocation( + latitude: Double, + longitude: Double, + chatId: ChatId, + messageId: MessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, chatId = chatId, messageId = messageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)) + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success True is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditInlineMessageLiveLocation( + latitude: Double, + longitude: Double, + inlineMessageId: InlineMessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditInlineMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, inlineMessageId = inlineMessageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)) + +/** + * Use this method to stop updating a live location message before live_period expires. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message with live location to stop + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryStopMessageLiveLocation( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryStopMessageLiveLocation(StopMessageLiveLocationRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to stop updating a live location message before live_period expires. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryStopInlineMessageLiveLocation( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryStopInlineMessageLiveLocation(StopMessageLiveLocationRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit only the reply markup of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditMessageReplyMarkup( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditMessageReplyMarkup(EditMessageReplyMarkupRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)) + +/** + * Use this method to edit only the reply markup of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryEditInlineMessageReplyMarkup( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryEditInlineMessageReplyMarkup(EditMessageReplyMarkupRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)) + +/** + * Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the original message with the poll + * @param replyMarkup A JSON-serialized object for a new message inline keyboard. + */ +context(TelegramBotApiContext) +suspend fun tryStopPoll( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.tryStopPoll(StopPollRequest(chatId, messageId, replyMarkup)) + +/** + * Use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Service messages about a supergroup, channel, or forum topic creation can't be deleted. - A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots can delete incoming messages in private chats. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the message to delete + */ +context(TelegramBotApiContext) +suspend fun tryDeleteMessage( + chatId: ChatId, + messageId: MessageId, +): TelegramResponse = + botApiClient.tryDeleteMessage(DeleteMessageRequest(chatId, messageId)) + +/** + * Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param sticker Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji associated with the sticker; only for just uploaded stickers + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +suspend fun trySendSticker( + chatId: ChatId, + sticker: String, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): TelegramResponse = + botApiClient.trySendSticker(SendStickerRequest(chatId, sticker, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to get a sticker set. On success, a StickerSet object is returned. + * + * @param name Name of the sticker set + */ +context(TelegramBotApiContext) +suspend fun tryGetStickerSet( + name: String, +): TelegramResponse = + botApiClient.tryGetStickerSet(GetStickerSetRequest(name)) + +/** + * Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects. + * + * @param customEmojiIds List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. + */ +context(TelegramBotApiContext) +suspend fun tryGetCustomEmojiStickers( + customEmojiIds: List, +): TelegramResponse> = + botApiClient.tryGetCustomEmojiStickers(GetCustomEmojiStickersRequest(customEmojiIds)) + +/** + * Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success. + * + * @param userId User identifier of sticker file owner + * @param sticker A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files » + * @param stickerFormat Format of the sticker, must be one of “static”, “animated”, “video” + */ +context(TelegramBotApiContext) +suspend fun tryUploadStickerFile( + userId: UserId, + sticker: String, + stickerFormat: String, +): TelegramResponse = + botApiClient.tryUploadStickerFile(UploadStickerFileRequest(userId, sticker, stickerFormat)) + +/** + * Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success. + * + * @param userId User identifier of created sticker set owner + * @param name Short name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_". is case insensitive. 1-64 characters. + * @param title Sticker set title, 1-64 characters + * @param stickers A JSON-serialized list of 1-50 initial stickers to be added to the sticker set + * @param stickerFormat Format of stickers in the set, must be one of “static”, “animated”, “video” + * @param stickerType Type of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created. + * @param needsRepainting Pass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only + */ +context(TelegramBotApiContext) +suspend fun tryCreateNewStickerSet( + userId: UserId, + name: String, + title: String, + stickers: List, + stickerFormat: String, + stickerType: String? = null, + needsRepainting: Boolean? = null, +): TelegramResponse = + botApiClient.tryCreateNewStickerSet(CreateNewStickerSetRequest(userId, name, title, stickers, stickerFormat, stickerType, needsRepainting)) + +/** + * Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success. + * + * @param userId User identifier of sticker set owner + * @param name Sticker set name + * @param sticker A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed. + */ +context(TelegramBotApiContext) +suspend fun tryAddStickerToSet( + userId: UserId, + name: String, + sticker: InputSticker, +): TelegramResponse = + botApiClient.tryAddStickerToSet(AddStickerToSetRequest(userId, name, sticker)) + +/** + * Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param position New sticker position in the set, zero-based + */ +context(TelegramBotApiContext) +suspend fun trySetStickerPositionInSet( + sticker: String, + position: Long, +): TelegramResponse = + botApiClient.trySetStickerPositionInSet(SetStickerPositionInSetRequest(sticker, position)) + +/** + * Use this method to delete a sticker from a set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + */ +context(TelegramBotApiContext) +suspend fun tryDeleteStickerFromSet( + sticker: String, +): TelegramResponse = + botApiClient.tryDeleteStickerFromSet(DeleteStickerFromSetRequest(sticker)) + +/** + * Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param emojiList A JSON-serialized list of 1-20 emoji associated with the sticker + */ +context(TelegramBotApiContext) +suspend fun trySetStickerEmojiList( + sticker: String, + emojiList: List, +): TelegramResponse = + botApiClient.trySetStickerEmojiList(SetStickerEmojiListRequest(sticker, emojiList)) + +/** + * Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param keywords A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters + */ +context(TelegramBotApiContext) +suspend fun trySetStickerKeywords( + sticker: String, + keywords: List? = null, +): TelegramResponse = + botApiClient.trySetStickerKeywords(SetStickerKeywordsRequest(sticker, keywords)) + +/** + * Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param maskPosition A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position. + */ +context(TelegramBotApiContext) +suspend fun trySetStickerMaskPosition( + sticker: String, + maskPosition: MaskPosition? = null, +): TelegramResponse = + botApiClient.trySetStickerMaskPosition(SetStickerMaskPositionRequest(sticker, maskPosition)) + +/** + * Use this method to set the title of a created sticker set. Returns True on success. + * + * @param name Sticker set name + * @param title Sticker set title, 1-64 characters + */ +context(TelegramBotApiContext) +suspend fun trySetStickerSetTitle( + name: String, + title: String, +): TelegramResponse = + botApiClient.trySetStickerSetTitle(SetStickerSetTitleRequest(name, title)) + +/** + * Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success. + * + * @param name Sticker set name + * @param userId User identifier of the sticker set owner + * @param thumbnail A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. + */ +context(TelegramBotApiContext) +suspend fun trySetStickerSetThumbnail( + name: String, + userId: UserId, + thumbnail: String? = null, +): TelegramResponse = + botApiClient.trySetStickerSetThumbnail(SetStickerSetThumbnailRequest(name, userId, thumbnail)) + +/** + * Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success. + * + * @param name Sticker set name + * @param customEmojiId Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail. + */ +context(TelegramBotApiContext) +suspend fun trySetCustomEmojiStickerSetThumbnail( + name: String, + customEmojiId: CustomEmojiId? = null, +): TelegramResponse = + botApiClient.trySetCustomEmojiStickerSetThumbnail(SetCustomEmojiStickerSetThumbnailRequest(name, customEmojiId)) + +/** + * Use this method to delete a sticker set that was created by the bot. Returns True on success. + * + * @param name Sticker set name + */ +context(TelegramBotApiContext) +suspend fun tryDeleteStickerSet( + name: String, +): TelegramResponse = + botApiClient.tryDeleteStickerSet(DeleteStickerSetRequest(name)) + +/** + * Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. + * + * @param inlineQueryId Unique identifier for the answered query + * @param results A JSON-serialized array of results for the inline query + * @param cacheTime The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. + * @param isPersonal Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query. + * @param nextOffset Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes. + * @param button A JSON-serialized object describing a button to be shown above inline query results + */ +context(TelegramBotApiContext) +suspend fun tryAnswerInlineQuery( + inlineQueryId: InlineQueryId, + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): TelegramResponse = + botApiClient.tryAnswerInlineQuery(AnswerInlineQueryRequest(inlineQueryId, results, cacheTime, isPersonal, nextOffset, button)) + +/** + * Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned. + * + * @param webAppQueryId Unique identifier for the query to be answered + * @param result A JSON-serialized object describing the message to be sent + */ +context(TelegramBotApiContext) +suspend fun tryAnswerWebAppQuery( + webAppQueryId: WebAppQueryId, + result: InlineQueryResult, +): TelegramResponse = + botApiClient.tryAnswerWebAppQuery(AnswerWebAppQueryRequest(webAppQueryId, result)) + +/** + * Use this method to send invoices. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param startParameter Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to provider + * @param isFlexible Pass True if the final price depends on the shipping method + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button. + */ +context(TelegramBotApiContext) +suspend fun trySendInvoice( + chatId: ChatId, + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + messageThreadId: MessageThreadId? = null, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + startParameter: String? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.trySendInvoice(SendInvoiceRequest(chatId, title, description, payload, providerToken, currency, prices, messageThreadId, maxTipAmount, suggestedTipAmounts, startParameter, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to create a link for an invoice. Returns the created invoice link as String on success. + * + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to the provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to the provider + * @param isFlexible Pass True if the final price depends on the shipping method + */ +context(TelegramBotApiContext) +suspend fun tryCreateInvoiceLink( + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, +): TelegramResponse = + botApiClient.tryCreateInvoiceLink(CreateInvoiceLinkRequest(title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible)) + +/** + * If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. + * + * @param shippingQueryId Unique identifier for the query to be answered + * @param ok Pass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible) + * @param shippingOptions Required if ok is True. A JSON-serialized array of available shipping options. + * @param errorMessage Required if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + */ +context(TelegramBotApiContext) +suspend fun tryAnswerShippingQuery( + shippingQueryId: ShippingQueryId, + ok: Boolean, + shippingOptions: List? = null, + errorMessage: String? = null, +): TelegramResponse = + botApiClient.tryAnswerShippingQuery(AnswerShippingQueryRequest(shippingQueryId, ok, shippingOptions, errorMessage)) + +/** + * Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + * + * @param preCheckoutQueryId Unique identifier for the query to be answered + * @param ok Specify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems. + * @param errorMessage Required if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + */ +context(TelegramBotApiContext) +suspend fun tryAnswerPreCheckoutQuery( + preCheckoutQueryId: String, + ok: Boolean, + errorMessage: String? = null, +): TelegramResponse = + botApiClient.tryAnswerPreCheckoutQuery(AnswerPreCheckoutQueryRequest(preCheckoutQueryId, ok, errorMessage)) + +/** + * Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success. + * + * Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues. + * + * @param userId User identifier + * @param errors A JSON-serialized array describing the errors + */ +context(TelegramBotApiContext) +suspend fun trySetPassportDataErrors( + userId: UserId, + errors: List, +): TelegramResponse = + botApiClient.trySetPassportDataErrors(SetPassportDataErrorsRequest(userId, errors)) + +/** + * Use this method to send a game. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat + * @param gameShortName Short name of the game, serves as the unique identifier for the game. Set up your games via @BotFather. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game. + */ +context(TelegramBotApiContext) +suspend fun trySendGame( + chatId: ChatId, + gameShortName: String, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): TelegramResponse = + botApiClient.trySendGame(SendGameRequest(chatId, gameShortName, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)) + +/** + * Use this method to set the score of the specified user in a game message. On success the edited Message is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + */ +context(TelegramBotApiContext) +suspend fun trySetGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + chatId: ChatId, + messageId: MessageId, +): TelegramResponse = + botApiClient.trySetGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, chatId = chatId, messageId = messageId)) + +/** + * Use this method to set the score of the specified user in a game message. On success True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +context(TelegramBotApiContext) +suspend fun trySetInlineGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + inlineMessageId: InlineMessageId, +): TelegramResponse = + botApiClient.trySetInlineGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, inlineMessageId = inlineMessageId)) + +/** + * Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects. + * + * This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change. + * + * @param userId Target user id + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +context(TelegramBotApiContext) +suspend fun tryGetGameHighScores( + userId: UserId, + chatId: ChatId? = null, + messageId: MessageId? = null, + inlineMessageId: InlineMessageId? = null, +): TelegramResponse> = + botApiClient.tryGetGameHighScores(GetGameHighScoresRequest(userId, chatId, messageId, inlineMessageId)) diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/Types.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/Types.kt new file mode 100644 index 0000000..c45c68d --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/Types.kt @@ -0,0 +1,3492 @@ +@file:OptIn(ExperimentalSerializationApi::class) + +package me.alllex.tbot.api.model + +import kotlinx.serialization.json.* +import kotlinx.serialization.DeserializationStrategy +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable +import kotlinx.serialization.encodeToString + +/** + * Type of updates Telegram Bot can receive. + */ +enum class UpdateType { + @SerialName("message") MESSAGE, + @SerialName("edited_message") EDITED_MESSAGE, + @SerialName("channel_post") CHANNEL_POST, + @SerialName("edited_channel_post") EDITED_CHANNEL_POST, + @SerialName("inline_query") INLINE_QUERY, + @SerialName("chosen_inline_result") CHOSEN_INLINE_RESULT, + @SerialName("callback_query") CALLBACK_QUERY, + @SerialName("shipping_query") SHIPPING_QUERY, + @SerialName("pre_checkout_query") PRE_CHECKOUT_QUERY, + @SerialName("poll") POLL, + @SerialName("poll_answer") POLL_ANSWER, + @SerialName("my_chat_member") MY_CHAT_MEMBER, + @SerialName("chat_member") CHAT_MEMBER, + @SerialName("chat_join_request") CHAT_JOIN_REQUEST, +} + +/** + * This object represents an incoming update. At most one of the optional parameters can be present in any given update. + * + * Sub-types: + * - [MessageUpdate] + * - [EditedMessageUpdate] + * - [ChannelPostUpdate] + * - [EditedChannelPostUpdate] + * - [InlineQueryUpdate] + * - [ChosenInlineResultUpdate] + * - [CallbackQueryUpdate] + * - [ShippingQueryUpdate] + * - [PreCheckoutQueryUpdate] + * - [PollUpdate] + * - [PollAnswerUpdate] + * - [MyChatMemberUpdate] + * - [ChatMemberUpdate] + * - [ChatJoinRequestUpdate] + */ +@Serializable(with = UpdateSerializer::class) +sealed class Update { + abstract val updateId: Long + abstract val updateType: UpdateType +} + +/** + * New incoming message of any kind - text, photo, sticker, etc. + */ +@Serializable +data class MessageUpdate( + override val updateId: Long, + val message: Message, +): Update() { + override val updateType: UpdateType get() = UpdateType.MESSAGE +} + +/** + * New version of a message that is known to the bot and was edited + */ +@Serializable +data class EditedMessageUpdate( + override val updateId: Long, + val editedMessage: Message, +): Update() { + override val updateType: UpdateType get() = UpdateType.EDITED_MESSAGE +} + +/** + * New incoming channel post of any kind - text, photo, sticker, etc. + */ +@Serializable +data class ChannelPostUpdate( + override val updateId: Long, + val channelPost: Message, +): Update() { + override val updateType: UpdateType get() = UpdateType.CHANNEL_POST +} + +/** + * New version of a channel post that is known to the bot and was edited + */ +@Serializable +data class EditedChannelPostUpdate( + override val updateId: Long, + val editedChannelPost: Message, +): Update() { + override val updateType: UpdateType get() = UpdateType.EDITED_CHANNEL_POST +} + +/** + * New incoming inline query + */ +@Serializable +data class InlineQueryUpdate( + override val updateId: Long, + val inlineQuery: InlineQuery, +): Update() { + override val updateType: UpdateType get() = UpdateType.INLINE_QUERY +} + +/** + * The result of an inline query that was chosen by a user and sent to their chat partner. Please see our documentation on the feedback collecting for details on how to enable these updates for your bot. + */ +@Serializable +data class ChosenInlineResultUpdate( + override val updateId: Long, + val chosenInlineResult: ChosenInlineResult, +): Update() { + override val updateType: UpdateType get() = UpdateType.CHOSEN_INLINE_RESULT +} + +/** + * New incoming callback query + */ +@Serializable +data class CallbackQueryUpdate( + override val updateId: Long, + val callbackQuery: CallbackQuery, +): Update() { + override val updateType: UpdateType get() = UpdateType.CALLBACK_QUERY +} + +/** + * New incoming shipping query. Only for invoices with flexible price + */ +@Serializable +data class ShippingQueryUpdate( + override val updateId: Long, + val shippingQuery: ShippingQuery, +): Update() { + override val updateType: UpdateType get() = UpdateType.SHIPPING_QUERY +} + +/** + * New incoming pre-checkout query. Contains full information about checkout + */ +@Serializable +data class PreCheckoutQueryUpdate( + override val updateId: Long, + val preCheckoutQuery: PreCheckoutQuery, +): Update() { + override val updateType: UpdateType get() = UpdateType.PRE_CHECKOUT_QUERY +} + +/** + * New poll state. Bots receive only updates about stopped polls and polls, which are sent by the bot + */ +@Serializable +data class PollUpdate( + override val updateId: Long, + val poll: Poll, +): Update() { + override val updateType: UpdateType get() = UpdateType.POLL +} + +/** + * A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself. + */ +@Serializable +data class PollAnswerUpdate( + override val updateId: Long, + val pollAnswer: PollAnswer, +): Update() { + override val updateType: UpdateType get() = UpdateType.POLL_ANSWER +} + +/** + * The bot's chat member status was updated in a chat. For private chats, this update is received only when the bot is blocked or unblocked by the user. + */ +@Serializable +data class MyChatMemberUpdate( + override val updateId: Long, + val myChatMember: ChatMemberUpdated, +): Update() { + override val updateType: UpdateType get() = UpdateType.MY_CHAT_MEMBER +} + +/** + * A chat member's status was updated in a chat. The bot must be an administrator in the chat and must explicitly specify “chat_member” in the list of allowed_updates to receive these updates. + */ +@Serializable +data class ChatMemberUpdate( + override val updateId: Long, + val chatMember: ChatMemberUpdated, +): Update() { + override val updateType: UpdateType get() = UpdateType.CHAT_MEMBER +} + +/** + * A request to join the chat has been sent. The bot must have the can_invite_users administrator right in the chat to receive these updates. + */ +@Serializable +data class ChatJoinRequestUpdate( + override val updateId: Long, + val chatJoinRequest: ChatJoinRequest, +): Update() { + override val updateType: UpdateType get() = UpdateType.CHAT_JOIN_REQUEST +} + +object UpdateSerializer : JsonContentPolymorphicSerializer(Update::class) { + override fun selectDeserializer(element: JsonElement): DeserializationStrategy { + val json = element.jsonObject + return when { + "message" in json -> MessageUpdate.serializer() + "edited_message" in json -> EditedMessageUpdate.serializer() + "channel_post" in json -> ChannelPostUpdate.serializer() + "edited_channel_post" in json -> EditedChannelPostUpdate.serializer() + "inline_query" in json -> InlineQueryUpdate.serializer() + "chosen_inline_result" in json -> ChosenInlineResultUpdate.serializer() + "callback_query" in json -> CallbackQueryUpdate.serializer() + "shipping_query" in json -> ShippingQueryUpdate.serializer() + "pre_checkout_query" in json -> PreCheckoutQueryUpdate.serializer() + "poll" in json -> PollUpdate.serializer() + "poll_answer" in json -> PollAnswerUpdate.serializer() + "my_chat_member" in json -> MyChatMemberUpdate.serializer() + "chat_member" in json -> ChatMemberUpdate.serializer() + "chat_join_request" in json -> ChatJoinRequestUpdate.serializer() + else -> error("Failed to deserialize an update type: $json") + } + } +} +/** + * Describes the current status of a webhook. + * @param url Webhook URL, may be empty if webhook is not set up + * @param hasCustomCertificate True, if a custom certificate was provided for webhook certificate checks + * @param pendingUpdateCount Number of updates awaiting delivery + * @param ipAddress Optional. Currently used webhook IP address + * @param lastErrorDate Optional. Unix time for the most recent error that happened when trying to deliver an update via webhook + * @param lastErrorMessage Optional. Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook + * @param lastSynchronizationErrorDate Optional. Unix time of the most recent error that happened when trying to synchronize available updates with Telegram datacenters + * @param maxConnections Optional. The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery + * @param allowedUpdates Optional. A list of update types the bot is subscribed to. Defaults to all update types except chat_member + */ +@Serializable +data class WebhookInfo( + val url: String, + val hasCustomCertificate: Boolean, + val pendingUpdateCount: Long, + val ipAddress: String? = null, + val lastErrorDate: UnixTimestamp? = null, + val lastErrorMessage: String? = null, + val lastSynchronizationErrorDate: UnixTimestamp? = null, + val maxConnections: Long? = null, + val allowedUpdates: List? = null, +) { + override fun toString() = DebugStringBuilder("WebhookInfo").prop("url", url).prop("hasCustomCertificate", hasCustomCertificate).prop("pendingUpdateCount", pendingUpdateCount).prop("ipAddress", ipAddress).prop("lastErrorDate", lastErrorDate).prop("lastErrorMessage", lastErrorMessage).prop("lastSynchronizationErrorDate", lastSynchronizationErrorDate).prop("maxConnections", maxConnections).prop("allowedUpdates", allowedUpdates).toString() +} + +/** + * This object represents a Telegram user or bot. + * @param id Unique identifier for this user or bot. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. + * @param isBot True, if this user is a bot + * @param firstName User's or bot's first name + * @param lastName Optional. User's or bot's last name + * @param username Optional. User's or bot's username + * @param languageCode Optional. IETF language tag of the user's language + * @param isPremium Optional. True, if this user is a Telegram Premium user + * @param addedToAttachmentMenu Optional. True, if this user added the bot to the attachment menu + * @param canJoinGroups Optional. True, if the bot can be invited to groups. Returned only in getMe. + * @param canReadAllGroupMessages Optional. True, if privacy mode is disabled for the bot. Returned only in getMe. + * @param supportsInlineQueries Optional. True, if the bot supports inline queries. Returned only in getMe. + */ +@Serializable +data class User( + val id: UserId, + val isBot: Boolean, + val firstName: String, + val lastName: String? = null, + val username: String? = null, + val languageCode: String? = null, + val isPremium: Boolean? = null, + val addedToAttachmentMenu: Boolean? = null, + val canJoinGroups: Boolean? = null, + val canReadAllGroupMessages: Boolean? = null, + val supportsInlineQueries: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("User").prop("id", id).prop("isBot", isBot).prop("firstName", firstName).prop("lastName", lastName).prop("username", username).prop("languageCode", languageCode).prop("isPremium", isPremium).prop("addedToAttachmentMenu", addedToAttachmentMenu).prop("canJoinGroups", canJoinGroups).prop("canReadAllGroupMessages", canReadAllGroupMessages).prop("supportsInlineQueries", supportsInlineQueries).toString() +} + +/** + * This object represents a chat. + * @param id Unique identifier for this chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier. + * @param type Type of chat, can be either “private”, “group”, “supergroup” or “channel” + * @param title Optional. Title, for supergroups, channels and group chats + * @param username Optional. Username, for private chats, supergroups and channels if available + * @param firstName Optional. First name of the other party in a private chat + * @param lastName Optional. Last name of the other party in a private chat + * @param isForum Optional. True, if the supergroup chat is a forum (has topics enabled) + * @param photo Optional. Chat photo. Returned only in getChat. + * @param activeUsernames Optional. If non-empty, the list of all active chat usernames; for private chats, supergroups and channels. Returned only in getChat. + * @param emojiStatusCustomEmojiId Optional. Custom emoji identifier of emoji status of the other party in a private chat. Returned only in getChat. + * @param emojiStatusExpirationDate Optional. Expiration date of the emoji status of the other party in a private chat in Unix time, if any. Returned only in getChat. + * @param bio Optional. Bio of the other party in a private chat. Returned only in getChat. + * @param hasPrivateForwards Optional. True, if privacy settings of the other party in the private chat allows to use tg://user?id= links only in chats with the user. Returned only in getChat. + * @param hasRestrictedVoiceAndVideoMessages Optional. True, if the privacy settings of the other party restrict sending voice and video note messages in the private chat. Returned only in getChat. + * @param joinToSendMessages Optional. True, if users need to join the supergroup before they can send messages. Returned only in getChat. + * @param joinByRequest Optional. True, if all users directly joining the supergroup need to be approved by supergroup administrators. Returned only in getChat. + * @param description Optional. Description, for groups, supergroups and channel chats. Returned only in getChat. + * @param inviteLink Optional. Primary invite link, for groups, supergroups and channel chats. Returned only in getChat. + * @param pinnedMessage Optional. The most recent pinned message (by sending date). Returned only in getChat. + * @param permissions Optional. Default chat member permissions, for groups and supergroups. Returned only in getChat. + * @param slowModeDelay Optional. For supergroups, the minimum allowed delay between consecutive messages sent by each unpriviledged user; in seconds. Returned only in getChat. + * @param messageAutoDeleteTime Optional. The time after which all messages sent to the chat will be automatically deleted; in seconds. Returned only in getChat. + * @param hasAggressiveAntiSpamEnabled Optional. True, if aggressive anti-spam checks are enabled in the supergroup. The field is only available to chat administrators. Returned only in getChat. + * @param hasHiddenMembers Optional. True, if non-administrators can only get the list of bots and administrators in the chat. Returned only in getChat. + * @param hasProtectedContent Optional. True, if messages from the chat can't be forwarded to other chats. Returned only in getChat. + * @param stickerSetName Optional. For supergroups, name of group sticker set. Returned only in getChat. + * @param canSetStickerSet Optional. True, if the bot can change the group sticker set. Returned only in getChat. + * @param linkedChatId Optional. Unique identifier for the linked chat, i.e. the discussion group identifier for a channel and vice versa; for supergroups and channel chats. This identifier may be greater than 32 bits and some programming languages may have difficulty/silent defects in interpreting it. But it is smaller than 52 bits, so a signed 64 bit integer or double-precision float type are safe for storing this identifier. Returned only in getChat. + * @param location Optional. For supergroups, the location to which the supergroup is connected. Returned only in getChat. + */ +@Serializable +data class Chat( + val id: ChatId, + val type: String, + val title: String? = null, + val username: String? = null, + val firstName: String? = null, + val lastName: String? = null, + val isForum: Boolean? = null, + val photo: ChatPhoto? = null, + val activeUsernames: List? = null, + val emojiStatusCustomEmojiId: CustomEmojiId? = null, + val emojiStatusExpirationDate: UnixTimestamp? = null, + val bio: String? = null, + val hasPrivateForwards: Boolean? = null, + val hasRestrictedVoiceAndVideoMessages: Boolean? = null, + val joinToSendMessages: Boolean? = null, + val joinByRequest: Boolean? = null, + val description: String? = null, + val inviteLink: String? = null, + val pinnedMessage: Message? = null, + val permissions: ChatPermissions? = null, + val slowModeDelay: Long? = null, + val messageAutoDeleteTime: Long? = null, + val hasAggressiveAntiSpamEnabled: Boolean? = null, + val hasHiddenMembers: Boolean? = null, + val hasProtectedContent: Boolean? = null, + val stickerSetName: String? = null, + val canSetStickerSet: Boolean? = null, + val linkedChatId: ChatId? = null, + val location: ChatLocation? = null, +) { + override fun toString() = DebugStringBuilder("Chat").prop("id", id).prop("type", type).prop("title", title).prop("username", username).prop("firstName", firstName).prop("lastName", lastName).prop("isForum", isForum).prop("photo", photo).prop("activeUsernames", activeUsernames).prop("emojiStatusCustomEmojiId", emojiStatusCustomEmojiId).prop("emojiStatusExpirationDate", emojiStatusExpirationDate).prop("bio", bio).prop("hasPrivateForwards", hasPrivateForwards).prop("hasRestrictedVoiceAndVideoMessages", hasRestrictedVoiceAndVideoMessages).prop("joinToSendMessages", joinToSendMessages).prop("joinByRequest", joinByRequest).prop("description", description).prop("inviteLink", inviteLink).prop("pinnedMessage", pinnedMessage).prop("permissions", permissions).prop("slowModeDelay", slowModeDelay).prop("messageAutoDeleteTime", messageAutoDeleteTime).prop("hasAggressiveAntiSpamEnabled", hasAggressiveAntiSpamEnabled).prop("hasHiddenMembers", hasHiddenMembers).prop("hasProtectedContent", hasProtectedContent).prop("stickerSetName", stickerSetName).prop("canSetStickerSet", canSetStickerSet).prop("linkedChatId", linkedChatId).prop("location", location).toString() +} + +/** + * This object represents a message. + * @param messageId Unique message identifier inside this chat + * @param date Date the message was sent in Unix time + * @param chat Conversation the message belongs to + * @param messageThreadId Optional. Unique identifier of a message thread to which the message belongs; for supergroups only + * @param from Optional. Sender of the message; empty for messages sent to channels. For backward compatibility, the field contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat. + * @param senderChat Optional. Sender of the message, sent on behalf of a chat. For example, the channel itself for channel posts, the supergroup itself for messages from anonymous group administrators, the linked channel for messages automatically forwarded to the discussion group. For backward compatibility, the field from contains a fake sender user in non-channel chats, if the message was sent on behalf of a chat. + * @param forwardFrom Optional. For forwarded messages, sender of the original message + * @param forwardFromChat Optional. For messages forwarded from channels or from anonymous administrators, information about the original sender chat + * @param forwardFromMessageId Optional. For messages forwarded from channels, identifier of the original message in the channel + * @param forwardSignature Optional. For forwarded messages that were originally sent in channels or by an anonymous chat administrator, signature of the message sender if present + * @param forwardSenderName Optional. Sender's name for messages forwarded from users who disallow adding a link to their account in forwarded messages + * @param forwardDate Optional. For forwarded messages, date the original message was sent in Unix time + * @param isTopicMessage Optional. True, if the message is sent to a forum topic + * @param isAutomaticForward Optional. True, if the message is a channel post that was automatically forwarded to the connected discussion group + * @param replyToMessage Optional. For replies, the original message. Note that the Message object in this field will not contain further reply_to_message fields even if it itself is a reply. + * @param viaBot Optional. Bot through which the message was sent + * @param editDate Optional. Date the message was last edited in Unix time + * @param hasProtectedContent Optional. True, if the message can't be forwarded + * @param mediaGroupId Optional. The unique identifier of a media message group this message belongs to + * @param authorSignature Optional. Signature of the post author for messages in channels, or the custom title of an anonymous group administrator + * @param text Optional. For text messages, the actual UTF-8 text of the message + * @param entities Optional. For text messages, special entities like usernames, URLs, bot commands, etc. that appear in the text + * @param animation Optional. Message is an animation, information about the animation. For backward compatibility, when this field is set, the document field will also be set + * @param audio Optional. Message is an audio file, information about the file + * @param document Optional. Message is a general file, information about the file + * @param photo Optional. Message is a photo, available sizes of the photo + * @param sticker Optional. Message is a sticker, information about the sticker + * @param story Optional. Message is a forwarded story + * @param video Optional. Message is a video, information about the video + * @param videoNote Optional. Message is a video note, information about the video message + * @param voice Optional. Message is a voice message, information about the file + * @param caption Optional. Caption for the animation, audio, document, photo, video or voice + * @param captionEntities Optional. For messages with a caption, special entities like usernames, URLs, bot commands, etc. that appear in the caption + * @param hasMediaSpoiler Optional. True, if the message media is covered by a spoiler animation + * @param contact Optional. Message is a shared contact, information about the contact + * @param dice Optional. Message is a dice with random value + * @param game Optional. Message is a game, information about the game. More about games » + * @param poll Optional. Message is a native poll, information about the poll + * @param venue Optional. Message is a venue, information about the venue. For backward compatibility, when this field is set, the location field will also be set + * @param location Optional. Message is a shared location, information about the location + * @param newChatMembers Optional. New members that were added to the group or supergroup and information about them (the bot itself may be one of these members) + * @param leftChatMember Optional. A member was removed from the group, information about them (this member may be the bot itself) + * @param newChatTitle Optional. A chat title was changed to this value + * @param newChatPhoto Optional. A chat photo was change to this value + * @param deleteChatPhoto Optional. Service message: the chat photo was deleted + * @param groupChatCreated Optional. Service message: the group has been created + * @param supergroupChatCreated Optional. Service message: the supergroup has been created. This field can't be received in a message coming through updates, because bot can't be a member of a supergroup when it is created. It can only be found in reply_to_message if someone replies to a very first message in a directly created supergroup. + * @param channelChatCreated Optional. Service message: the channel has been created. This field can't be received in a message coming through updates, because bot can't be a member of a channel when it is created. It can only be found in reply_to_message if someone replies to a very first message in a channel. + * @param messageAutoDeleteTimerChanged Optional. Service message: auto-delete timer settings changed in the chat + * @param migrateToChatId Optional. The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier. + * @param migrateFromChatId Optional. The supergroup has been migrated from a group with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier. + * @param pinnedMessage Optional. Specified message was pinned. Note that the Message object in this field will not contain further reply_to_message fields even if it is itself a reply. + * @param invoice Optional. Message is an invoice for a payment, information about the invoice. More about payments » + * @param successfulPayment Optional. Message is a service message about a successful payment, information about the payment. More about payments » + * @param userShared Optional. Service message: a user was shared with the bot + * @param chatShared Optional. Service message: a chat was shared with the bot + * @param connectedWebsite Optional. The domain name of the website on which the user has logged in. More about Telegram Login » + * @param writeAccessAllowed Optional. Service message: the user allowed the bot to write messages after adding it to the attachment or side menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess + * @param passportData Optional. Telegram Passport data + * @param proximityAlertTriggered Optional. Service message. A user in the chat triggered another user's proximity alert while sharing Live Location. + * @param forumTopicCreated Optional. Service message: forum topic created + * @param forumTopicEdited Optional. Service message: forum topic edited + * @param forumTopicClosed Optional. Service message: forum topic closed + * @param forumTopicReopened Optional. Service message: forum topic reopened + * @param generalForumTopicHidden Optional. Service message: the 'General' forum topic hidden + * @param generalForumTopicUnhidden Optional. Service message: the 'General' forum topic unhidden + * @param videoChatScheduled Optional. Service message: video chat scheduled + * @param videoChatStarted Optional. Service message: video chat started + * @param videoChatEnded Optional. Service message: video chat ended + * @param videoChatParticipantsInvited Optional. Service message: new participants invited to a video chat + * @param webAppData Optional. Service message: data sent by a Web App + * @param replyMarkup Optional. Inline keyboard attached to the message. login_url buttons are represented as ordinary url buttons. + */ +@Serializable +data class Message( + val messageId: MessageId, + val date: UnixTimestamp, + val chat: Chat, + val messageThreadId: MessageThreadId? = null, + val from: User? = null, + val senderChat: Chat? = null, + val forwardFrom: User? = null, + val forwardFromChat: Chat? = null, + val forwardFromMessageId: MessageId? = null, + val forwardSignature: String? = null, + val forwardSenderName: String? = null, + val forwardDate: UnixTimestamp? = null, + val isTopicMessage: Boolean? = null, + val isAutomaticForward: Boolean? = null, + val replyToMessage: Message? = null, + val viaBot: User? = null, + val editDate: UnixTimestamp? = null, + val hasProtectedContent: Boolean? = null, + val mediaGroupId: String? = null, + val authorSignature: String? = null, + val text: String? = null, + val entities: List? = null, + val animation: Animation? = null, + val audio: Audio? = null, + val document: Document? = null, + val photo: List? = null, + val sticker: Sticker? = null, + val story: Story? = null, + val video: Video? = null, + val videoNote: VideoNote? = null, + val voice: Voice? = null, + val caption: String? = null, + val captionEntities: List? = null, + val hasMediaSpoiler: Boolean? = null, + val contact: Contact? = null, + val dice: Dice? = null, + val game: Game? = null, + val poll: Poll? = null, + val venue: Venue? = null, + val location: Location? = null, + val newChatMembers: List? = null, + val leftChatMember: User? = null, + val newChatTitle: String? = null, + val newChatPhoto: List? = null, + val deleteChatPhoto: Boolean? = null, + val groupChatCreated: Boolean? = null, + val supergroupChatCreated: Boolean? = null, + val channelChatCreated: Boolean? = null, + val messageAutoDeleteTimerChanged: MessageAutoDeleteTimerChanged? = null, + val migrateToChatId: ChatId? = null, + val migrateFromChatId: ChatId? = null, + val pinnedMessage: Message? = null, + val invoice: Invoice? = null, + val successfulPayment: SuccessfulPayment? = null, + val userShared: UserShared? = null, + val chatShared: ChatShared? = null, + val connectedWebsite: String? = null, + val writeAccessAllowed: WriteAccessAllowed? = null, + val passportData: PassportData? = null, + val proximityAlertTriggered: ProximityAlertTriggered? = null, + val forumTopicCreated: ForumTopicCreated? = null, + val forumTopicEdited: ForumTopicEdited? = null, + val forumTopicClosed: ForumTopicClosed? = null, + val forumTopicReopened: ForumTopicReopened? = null, + val generalForumTopicHidden: GeneralForumTopicHidden? = null, + val generalForumTopicUnhidden: GeneralForumTopicUnhidden? = null, + val videoChatScheduled: VideoChatScheduled? = null, + val videoChatStarted: VideoChatStarted? = null, + val videoChatEnded: VideoChatEnded? = null, + val videoChatParticipantsInvited: VideoChatParticipantsInvited? = null, + val webAppData: WebAppData? = null, + val replyMarkup: InlineKeyboardMarkup? = null, +) { + override fun toString() = DebugStringBuilder("Message").prop("messageId", messageId).prop("date", date).prop("chat", chat).prop("messageThreadId", messageThreadId).prop("from", from).prop("senderChat", senderChat).prop("forwardFrom", forwardFrom).prop("forwardFromChat", forwardFromChat).prop("forwardFromMessageId", forwardFromMessageId).prop("forwardSignature", forwardSignature).prop("forwardSenderName", forwardSenderName).prop("forwardDate", forwardDate).prop("isTopicMessage", isTopicMessage).prop("isAutomaticForward", isAutomaticForward).prop("replyToMessage", replyToMessage).prop("viaBot", viaBot).prop("editDate", editDate).prop("hasProtectedContent", hasProtectedContent).prop("mediaGroupId", mediaGroupId).prop("authorSignature", authorSignature).prop("text", text).prop("entities", entities).prop("animation", animation).prop("audio", audio).prop("document", document).prop("photo", photo).prop("sticker", sticker).prop("story", story).prop("video", video).prop("videoNote", videoNote).prop("voice", voice).prop("caption", caption).prop("captionEntities", captionEntities).prop("hasMediaSpoiler", hasMediaSpoiler).prop("contact", contact).prop("dice", dice).prop("game", game).prop("poll", poll).prop("venue", venue).prop("location", location).prop("newChatMembers", newChatMembers).prop("leftChatMember", leftChatMember).prop("newChatTitle", newChatTitle).prop("newChatPhoto", newChatPhoto).prop("deleteChatPhoto", deleteChatPhoto).prop("groupChatCreated", groupChatCreated).prop("supergroupChatCreated", supergroupChatCreated).prop("channelChatCreated", channelChatCreated).prop("messageAutoDeleteTimerChanged", messageAutoDeleteTimerChanged).prop("migrateToChatId", migrateToChatId).prop("migrateFromChatId", migrateFromChatId).prop("pinnedMessage", pinnedMessage).prop("invoice", invoice).prop("successfulPayment", successfulPayment).prop("userShared", userShared).prop("chatShared", chatShared).prop("connectedWebsite", connectedWebsite).prop("writeAccessAllowed", writeAccessAllowed).prop("passportData", passportData).prop("proximityAlertTriggered", proximityAlertTriggered).prop("forumTopicCreated", forumTopicCreated).prop("forumTopicEdited", forumTopicEdited).prop("forumTopicClosed", forumTopicClosed).prop("forumTopicReopened", forumTopicReopened).prop("generalForumTopicHidden", generalForumTopicHidden).prop("generalForumTopicUnhidden", generalForumTopicUnhidden).prop("videoChatScheduled", videoChatScheduled).prop("videoChatStarted", videoChatStarted).prop("videoChatEnded", videoChatEnded).prop("videoChatParticipantsInvited", videoChatParticipantsInvited).prop("webAppData", webAppData).prop("replyMarkup", replyMarkup).toString() +} + +/** + * This object represents a unique message identifier. + * @param messageId Unique message identifier + */ +@Serializable +data class MessageIdResult( + val messageId: MessageId, +) { + override fun toString() = DebugStringBuilder("MessageIdResult").prop("messageId", messageId).toString() +} + +/** + * This object represents one special entity in a text message. For example, hashtags, usernames, URLs, etc. + * @param type Type of the entity. Currently, can be “mention” (@username), “hashtag” (#hashtag), “cashtag” ($USD), “bot_command” (/start@jobs_bot), “url” (https://telegram.org), “email” (do-not-reply@telegram.org), “phone_number” (+1-212-555-0123), “bold” (bold text), “italic” (italic text), “underline” (underlined text), “strikethrough” (strikethrough text), “spoiler” (spoiler message), “code” (monowidth string), “pre” (monowidth block), “text_link” (for clickable text URLs), “text_mention” (for users without usernames), “custom_emoji” (for inline custom emoji stickers) + * @param offset Offset in UTF-16 code units to the start of the entity + * @param length Length of the entity in UTF-16 code units + * @param url Optional. For “text_link” only, URL that will be opened after user taps on the text + * @param user Optional. For “text_mention” only, the mentioned user + * @param language Optional. For “pre” only, the programming language of the entity text + * @param customEmojiId Optional. For “custom_emoji” only, unique identifier of the custom emoji. Use getCustomEmojiStickers to get full information about the sticker + */ +@Serializable +data class MessageEntity( + val type: String, + val offset: Long, + val length: Long, + val url: String? = null, + val user: User? = null, + val language: String? = null, + val customEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("MessageEntity").prop("type", type).prop("offset", offset).prop("length", length).prop("url", url).prop("user", user).prop("language", language).prop("customEmojiId", customEmojiId).toString() +} + +/** + * This object represents one size of a photo or a file / sticker thumbnail. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param width Photo width + * @param height Photo height + * @param fileSize Optional. File size in bytes + */ +@Serializable +data class PhotoSize( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val width: Long, + val height: Long, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("PhotoSize").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("width", width).prop("height", height).prop("fileSize", fileSize).toString() +} + +/** + * This object represents an animation file (GIF or H.264/MPEG-4 AVC video without sound). + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param width Video width as defined by sender + * @param height Video height as defined by sender + * @param duration Duration of the video in seconds as defined by sender + * @param thumbnail Optional. Animation thumbnail as defined by sender + * @param fileName Optional. Original animation filename as defined by sender + * @param mimeType Optional. MIME type of the file as defined by sender + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + */ +@Serializable +data class Animation( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val width: Long, + val height: Long, + val duration: Seconds, + val thumbnail: PhotoSize? = null, + val fileName: String? = null, + val mimeType: String? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("Animation").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("width", width).prop("height", height).prop("duration", duration).prop("thumbnail", thumbnail).prop("fileName", fileName).prop("mimeType", mimeType).prop("fileSize", fileSize).toString() +} + +/** + * This object represents an audio file to be treated as music by the Telegram clients. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param duration Duration of the audio in seconds as defined by sender + * @param performer Optional. Performer of the audio as defined by sender or by audio tags + * @param title Optional. Title of the audio as defined by sender or by audio tags + * @param fileName Optional. Original filename as defined by sender + * @param mimeType Optional. MIME type of the file as defined by sender + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + * @param thumbnail Optional. Thumbnail of the album cover to which the music file belongs + */ +@Serializable +data class Audio( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val duration: Seconds, + val performer: String? = null, + val title: String? = null, + val fileName: String? = null, + val mimeType: String? = null, + val fileSize: Long? = null, + val thumbnail: PhotoSize? = null, +) { + override fun toString() = DebugStringBuilder("Audio").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("duration", duration).prop("performer", performer).prop("title", title).prop("fileName", fileName).prop("mimeType", mimeType).prop("fileSize", fileSize).prop("thumbnail", thumbnail).toString() +} + +/** + * This object represents a general file (as opposed to photos, voice messages and audio files). + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param thumbnail Optional. Document thumbnail as defined by sender + * @param fileName Optional. Original filename as defined by sender + * @param mimeType Optional. MIME type of the file as defined by sender + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + */ +@Serializable +data class Document( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val thumbnail: PhotoSize? = null, + val fileName: String? = null, + val mimeType: String? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("Document").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("thumbnail", thumbnail).prop("fileName", fileName).prop("mimeType", mimeType).prop("fileSize", fileSize).toString() +} + +/** + * This object represents a message about a forwarded story in the chat. Currently holds no information. + */ +@Serializable +data object Story + +/** + * This object represents a video file. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param width Video width as defined by sender + * @param height Video height as defined by sender + * @param duration Duration of the video in seconds as defined by sender + * @param thumbnail Optional. Video thumbnail + * @param fileName Optional. Original filename as defined by sender + * @param mimeType Optional. MIME type of the file as defined by sender + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + */ +@Serializable +data class Video( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val width: Long, + val height: Long, + val duration: Seconds, + val thumbnail: PhotoSize? = null, + val fileName: String? = null, + val mimeType: String? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("Video").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("width", width).prop("height", height).prop("duration", duration).prop("thumbnail", thumbnail).prop("fileName", fileName).prop("mimeType", mimeType).prop("fileSize", fileSize).toString() +} + +/** + * This object represents a video message (available in Telegram apps as of v.4.0). + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param length Video width and height (diameter of the video message) as defined by sender + * @param duration Duration of the video in seconds as defined by sender + * @param thumbnail Optional. Video thumbnail + * @param fileSize Optional. File size in bytes + */ +@Serializable +data class VideoNote( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val length: Long, + val duration: Seconds, + val thumbnail: PhotoSize? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("VideoNote").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("length", length).prop("duration", duration).prop("thumbnail", thumbnail).prop("fileSize", fileSize).toString() +} + +/** + * This object represents a voice note. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param duration Duration of the audio in seconds as defined by sender + * @param mimeType Optional. MIME type of the file as defined by sender + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + */ +@Serializable +data class Voice( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val duration: Seconds, + val mimeType: String? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("Voice").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("duration", duration).prop("mimeType", mimeType).prop("fileSize", fileSize).toString() +} + +/** + * This object represents a phone contact. + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param lastName Optional. Contact's last name + * @param userId Optional. Contact's user identifier in Telegram. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. + * @param vcard Optional. Additional data about the contact in the form of a vCard + */ +@Serializable +data class Contact( + val phoneNumber: String, + val firstName: String, + val lastName: String? = null, + val userId: UserId? = null, + val vcard: String? = null, +) { + override fun toString() = DebugStringBuilder("Contact").prop("phoneNumber", phoneNumber).prop("firstName", firstName).prop("lastName", lastName).prop("userId", userId).prop("vcard", vcard).toString() +} + +/** + * This object represents an animated emoji that displays a random value. + * @param emoji Emoji on which the dice throw animation is based + * @param value Value of the dice, 1-6 for “”, “” and “” base emoji, 1-5 for “” and “” base emoji, 1-64 for “” base emoji + */ +@Serializable +data class Dice( + val emoji: String, + val value: Long, +) { + override fun toString() = DebugStringBuilder("Dice").prop("emoji", emoji).prop("value", value).toString() +} + +/** + * This object contains information about one answer option in a poll. + * @param text Option text, 1-100 characters + * @param voterCount Number of users that voted for this option + */ +@Serializable +data class PollOption( + val text: String, + val voterCount: Long, +) { + override fun toString() = DebugStringBuilder("PollOption").prop("text", text).prop("voterCount", voterCount).toString() +} + +/** + * This object represents an answer of a user in a non-anonymous poll. + * @param pollId Unique poll identifier + * @param optionIds 0-based identifiers of chosen answer options. May be empty if the vote was retracted. + * @param voterChat Optional. The chat that changed the answer to the poll, if the voter is anonymous + * @param user Optional. The user that changed the answer to the poll, if the voter isn't anonymous + */ +@Serializable +data class PollAnswer( + val pollId: String, + val optionIds: List, + val voterChat: Chat? = null, + val user: User? = null, +) { + override fun toString() = DebugStringBuilder("PollAnswer").prop("pollId", pollId).prop("optionIds", optionIds).prop("voterChat", voterChat).prop("user", user).toString() +} + +/** + * This object contains information about a poll. + * @param id Unique poll identifier + * @param question Poll question, 1-300 characters + * @param options List of poll options + * @param totalVoterCount Total number of users that voted in the poll + * @param isClosed True, if the poll is closed + * @param isAnonymous True, if the poll is anonymous + * @param type Poll type, currently can be “regular” or “quiz” + * @param allowsMultipleAnswers True, if the poll allows multiple answers + * @param correctOptionId Optional. 0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot. + * @param explanation Optional. Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters + * @param explanationEntities Optional. Special entities like usernames, URLs, bot commands, etc. that appear in the explanation + * @param openPeriod Optional. Amount of time in seconds the poll will be active after creation + * @param closeDate Optional. Point in time (Unix timestamp) when the poll will be automatically closed + */ +@Serializable +data class Poll( + val id: String, + val question: String, + val options: List, + val totalVoterCount: Long, + val isClosed: Boolean, + val isAnonymous: Boolean, + val type: String, + val allowsMultipleAnswers: Boolean, + val correctOptionId: Long? = null, + val explanation: String? = null, + val explanationEntities: List? = null, + val openPeriod: Seconds? = null, + val closeDate: UnixTimestamp? = null, +) { + override fun toString() = DebugStringBuilder("Poll").prop("id", id).prop("question", question).prop("options", options).prop("totalVoterCount", totalVoterCount).prop("isClosed", isClosed).prop("isAnonymous", isAnonymous).prop("type", type).prop("allowsMultipleAnswers", allowsMultipleAnswers).prop("correctOptionId", correctOptionId).prop("explanation", explanation).prop("explanationEntities", explanationEntities).prop("openPeriod", openPeriod).prop("closeDate", closeDate).toString() +} + +/** + * This object represents a point on the map. + * @param longitude Longitude as defined by sender + * @param latitude Latitude as defined by sender + * @param horizontalAccuracy Optional. The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Optional. Time relative to the message sending date, during which the location can be updated; in seconds. For active live locations only. + * @param heading Optional. The direction in which user is moving, in degrees; 1-360. For active live locations only. + * @param proximityAlertRadius Optional. The maximum distance for proximity alerts about approaching another chat member, in meters. For sent live locations only. + */ +@Serializable +data class Location( + val longitude: Double, + val latitude: Double, + val horizontalAccuracy: Double? = null, + val livePeriod: Long? = null, + val heading: Long? = null, + val proximityAlertRadius: Long? = null, +) { + override fun toString() = DebugStringBuilder("Location").prop("longitude", longitude).prop("latitude", latitude).prop("horizontalAccuracy", horizontalAccuracy).prop("livePeriod", livePeriod).prop("heading", heading).prop("proximityAlertRadius", proximityAlertRadius).toString() +} + +/** + * This object represents a venue. + * @param location Venue location. Can't be a live location + * @param title Name of the venue + * @param address Address of the venue + * @param foursquareId Optional. Foursquare identifier of the venue + * @param foursquareType Optional. Foursquare type of the venue. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Optional. Google Places identifier of the venue + * @param googlePlaceType Optional. Google Places type of the venue. (See supported types.) + */ +@Serializable +data class Venue( + val location: Location, + val title: String, + val address: String, + val foursquareId: String? = null, + val foursquareType: String? = null, + val googlePlaceId: String? = null, + val googlePlaceType: String? = null, +) { + override fun toString() = DebugStringBuilder("Venue").prop("location", location).prop("title", title).prop("address", address).prop("foursquareId", foursquareId).prop("foursquareType", foursquareType).prop("googlePlaceId", googlePlaceId).prop("googlePlaceType", googlePlaceType).toString() +} + +/** + * Describes data sent from a Web App to the bot. + * @param data The data. Be aware that a bad client can send arbitrary data in this field. + * @param buttonText Text of the web_app keyboard button from which the Web App was opened. Be aware that a bad client can send arbitrary data in this field. + */ +@Serializable +data class WebAppData( + val data: String, + val buttonText: String, +) { + override fun toString() = DebugStringBuilder("WebAppData").prop("data", data).prop("buttonText", buttonText).toString() +} + +/** + * This object represents the content of a service message, sent whenever a user in the chat triggers a proximity alert set by another user. + * @param traveler User that triggered the alert + * @param watcher User that set the alert + * @param distance The distance between the users + */ +@Serializable +data class ProximityAlertTriggered( + val traveler: User, + val watcher: User, + val distance: Long, +) { + override fun toString() = DebugStringBuilder("ProximityAlertTriggered").prop("traveler", traveler).prop("watcher", watcher).prop("distance", distance).toString() +} + +/** + * This object represents a service message about a change in auto-delete timer settings. + * @param messageAutoDeleteTime New auto-delete time for messages in the chat; in seconds + */ +@Serializable +data class MessageAutoDeleteTimerChanged( + val messageAutoDeleteTime: Long, +) { + override fun toString() = DebugStringBuilder("MessageAutoDeleteTimerChanged").prop("messageAutoDeleteTime", messageAutoDeleteTime).toString() +} + +/** + * This object represents a service message about a new forum topic created in the chat. + * @param name Name of the topic + * @param iconColor Color of the topic icon in RGB format + * @param iconCustomEmojiId Optional. Unique identifier of the custom emoji shown as the topic icon + */ +@Serializable +data class ForumTopicCreated( + val name: String, + val iconColor: Long, + val iconCustomEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("ForumTopicCreated").prop("name", name).prop("iconColor", iconColor).prop("iconCustomEmojiId", iconCustomEmojiId).toString() +} + +/** + * This object represents a service message about a forum topic closed in the chat. Currently holds no information. + */ +@Serializable +data object ForumTopicClosed + +/** + * This object represents a service message about an edited forum topic. + * @param name Optional. New name of the topic, if it was edited + * @param iconCustomEmojiId Optional. New identifier of the custom emoji shown as the topic icon, if it was edited; an empty string if the icon was removed + */ +@Serializable +data class ForumTopicEdited( + val name: String? = null, + val iconCustomEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("ForumTopicEdited").prop("name", name).prop("iconCustomEmojiId", iconCustomEmojiId).toString() +} + +/** + * This object represents a service message about a forum topic reopened in the chat. Currently holds no information. + */ +@Serializable +data object ForumTopicReopened + +/** + * This object represents a service message about General forum topic hidden in the chat. Currently holds no information. + */ +@Serializable +data object GeneralForumTopicHidden + +/** + * This object represents a service message about General forum topic unhidden in the chat. Currently holds no information. + */ +@Serializable +data object GeneralForumTopicUnhidden + +/** + * This object contains information about the user whose identifier was shared with the bot using a KeyboardButtonRequestUser button. + * @param requestId Identifier of the request + * @param userId Identifier of the shared user. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the user and could be unable to use this identifier, unless the user is already known to the bot by some other means. + */ +@Serializable +data class UserShared( + val requestId: Long, + val userId: UserId, +) { + override fun toString() = DebugStringBuilder("UserShared").prop("requestId", requestId).prop("userId", userId).toString() +} + +/** + * This object contains information about the chat whose identifier was shared with the bot using a KeyboardButtonRequestChat button. + * @param requestId Identifier of the request + * @param chatId Identifier of the shared chat. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot may not have access to the chat and could be unable to use this identifier, unless the chat is already known to the bot by some other means. + */ +@Serializable +data class ChatShared( + val requestId: Long, + val chatId: ChatId, +) { + override fun toString() = DebugStringBuilder("ChatShared").prop("requestId", requestId).prop("chatId", chatId).toString() +} + +/** + * This object represents a service message about a user allowing a bot to write messages after adding it to the attachment menu, launching a Web App from a link, or accepting an explicit request from a Web App sent by the method requestWriteAccess. + * @param fromRequest Optional. True, if the access was granted after the user accepted an explicit request from a Web App sent by the method requestWriteAccess + * @param webAppName Optional. Name of the Web App, if the access was granted when the Web App was launched from a link + * @param fromAttachmentMenu Optional. True, if the access was granted when the bot was added to the attachment or side menu + */ +@Serializable +data class WriteAccessAllowed( + val fromRequest: Boolean? = null, + val webAppName: String? = null, + val fromAttachmentMenu: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("WriteAccessAllowed").prop("fromRequest", fromRequest).prop("webAppName", webAppName).prop("fromAttachmentMenu", fromAttachmentMenu).toString() +} + +/** + * This object represents a service message about a video chat scheduled in the chat. + * @param startDate Point in time (Unix timestamp) when the video chat is supposed to be started by a chat administrator + */ +@Serializable +data class VideoChatScheduled( + val startDate: UnixTimestamp, +) { + override fun toString() = DebugStringBuilder("VideoChatScheduled").prop("startDate", startDate).toString() +} + +/** + * This object represents a service message about a video chat started in the chat. Currently holds no information. + */ +@Serializable +data object VideoChatStarted + +/** + * This object represents a service message about a video chat ended in the chat. + * @param duration Video chat duration in seconds + */ +@Serializable +data class VideoChatEnded( + val duration: Seconds, +) { + override fun toString() = DebugStringBuilder("VideoChatEnded").prop("duration", duration).toString() +} + +/** + * This object represents a service message about new members invited to a video chat. + * @param users New members that were invited to the video chat + */ +@Serializable +data class VideoChatParticipantsInvited( + val users: List, +) { + override fun toString() = DebugStringBuilder("VideoChatParticipantsInvited").prop("users", users).toString() +} + +/** + * This object represent a user's profile pictures. + * @param totalCount Total number of profile pictures the target user has + * @param photos Requested profile pictures (in up to 4 sizes each) + */ +@Serializable +data class UserProfilePhotos( + val totalCount: Long, + val photos: List>, +) { + override fun toString() = DebugStringBuilder("UserProfilePhotos").prop("totalCount", totalCount).prop("photos", photos).toString() +} + +/** + * This object represents a file ready to be downloaded. The file can be downloaded via the link https://api.telegram.org/file/bot/. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile. + * + * The maximum file size to download is 20 MB + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param fileSize Optional. File size in bytes. It can be bigger than 2^31 and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this value. + * @param filePath Optional. File path. Use https://api.telegram.org/file/bot/ to get the file. + */ +@Serializable +data class File( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val fileSize: Long? = null, + val filePath: String? = null, +) { + override fun toString() = DebugStringBuilder("File").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("fileSize", fileSize).prop("filePath", filePath).toString() +} + +/** + * Describes a Web App. + * @param url An HTTPS URL of a Web App to be opened with additional data as specified in Initializing Web Apps + */ +@Serializable +data class WebAppInfo( + val url: String, +) { + override fun toString() = DebugStringBuilder("WebAppInfo").prop("url", url).toString() +} + +/** + * This object represents a custom keyboard with reply options (see Introduction to bots for details and examples). + * @param keyboard Array of button rows, each represented by an Array of KeyboardButton objects + * @param isPersistent Optional. Requests clients to always show the keyboard when the regular keyboard is hidden. Defaults to false, in which case the custom keyboard can be hidden and opened with a keyboard icon. + * @param resizeKeyboard Optional. Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to false, in which case the custom keyboard is always of the same height as the app's standard keyboard. + * @param oneTimeKeyboard Optional. Requests clients to hide the keyboard as soon as it's been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to false. + * @param inputFieldPlaceholder Optional. The placeholder to be shown in the input field when the keyboard is active; 1-64 characters + * @param selective Optional. Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message. Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard. + */ +@Serializable +data class ReplyKeyboardMarkup( + val keyboard: List>, + val isPersistent: Boolean? = null, + val resizeKeyboard: Boolean? = null, + val oneTimeKeyboard: Boolean? = null, + val inputFieldPlaceholder: String? = null, + val selective: Boolean? = null, +) : ReplyMarkup() { + override fun toString() = DebugStringBuilder("ReplyKeyboardMarkup").prop("keyboard", keyboard).prop("isPersistent", isPersistent).prop("resizeKeyboard", resizeKeyboard).prop("oneTimeKeyboard", oneTimeKeyboard).prop("inputFieldPlaceholder", inputFieldPlaceholder).prop("selective", selective).toString() +} + +/** + * This object represents one button of the reply keyboard. For simple text buttons, String can be used instead of this object to specify the button text. The optional fields web_app, request_user, request_chat, request_contact, request_location, and request_poll are mutually exclusive. + * @param text Text of the button. If none of the optional fields are used, it will be sent as a message when the button is pressed + * @param requestUser Optional. If specified, pressing the button will open a list of suitable users. Tapping on any user will send their identifier to the bot in a “user_shared” service message. Available in private chats only. + * @param requestChat Optional. If specified, pressing the button will open a list of suitable chats. Tapping on a chat will send its identifier to the bot in a “chat_shared” service message. Available in private chats only. + * @param requestContact Optional. If True, the user's phone number will be sent as a contact when the button is pressed. Available in private chats only. + * @param requestLocation Optional. If True, the user's current location will be sent when the button is pressed. Available in private chats only. + * @param requestPoll Optional. If specified, the user will be asked to create a poll and send it to the bot when the button is pressed. Available in private chats only. + * @param webApp Optional. If specified, the described Web App will be launched when the button is pressed. The Web App will be able to send a “web_app_data” service message. Available in private chats only. + */ +@Serializable +data class KeyboardButton( + val text: String, + val requestUser: KeyboardButtonRequestUser? = null, + val requestChat: KeyboardButtonRequestChat? = null, + val requestContact: Boolean? = null, + val requestLocation: Boolean? = null, + val requestPoll: KeyboardButtonPollType? = null, + val webApp: WebAppInfo? = null, +) { + override fun toString() = DebugStringBuilder("KeyboardButton").prop("text", text).prop("requestUser", requestUser).prop("requestChat", requestChat).prop("requestContact", requestContact).prop("requestLocation", requestLocation).prop("requestPoll", requestPoll).prop("webApp", webApp).toString() +} + +/** + * This object defines the criteria used to request a suitable user. The identifier of the selected user will be shared with the bot when the corresponding button is pressed. More about requesting users » + * @param requestId Signed 32-bit identifier of the request, which will be received back in the UserShared object. Must be unique within the message + * @param userIsBot Optional. Pass True to request a bot, pass False to request a regular user. If not specified, no additional restrictions are applied. + * @param userIsPremium Optional. Pass True to request a premium user, pass False to request a non-premium user. If not specified, no additional restrictions are applied. + */ +@Serializable +data class KeyboardButtonRequestUser( + val requestId: Long, + val userIsBot: Boolean? = null, + val userIsPremium: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("KeyboardButtonRequestUser").prop("requestId", requestId).prop("userIsBot", userIsBot).prop("userIsPremium", userIsPremium).toString() +} + +/** + * This object defines the criteria used to request a suitable chat. The identifier of the selected chat will be shared with the bot when the corresponding button is pressed. More about requesting chats » + * @param requestId Signed 32-bit identifier of the request, which will be received back in the ChatShared object. Must be unique within the message + * @param chatIsChannel Pass True to request a channel chat, pass False to request a group or a supergroup chat. + * @param chatIsForum Optional. Pass True to request a forum supergroup, pass False to request a non-forum chat. If not specified, no additional restrictions are applied. + * @param chatHasUsername Optional. Pass True to request a supergroup or a channel with a username, pass False to request a chat without a username. If not specified, no additional restrictions are applied. + * @param chatIsCreated Optional. Pass True to request a chat owned by the user. Otherwise, no additional restrictions are applied. + * @param userAdministratorRights Optional. A JSON-serialized object listing the required administrator rights of the user in the chat. The rights must be a superset of bot_administrator_rights. If not specified, no additional restrictions are applied. + * @param botAdministratorRights Optional. A JSON-serialized object listing the required administrator rights of the bot in the chat. The rights must be a subset of user_administrator_rights. If not specified, no additional restrictions are applied. + * @param botIsMember Optional. Pass True to request a chat with the bot as a member. Otherwise, no additional restrictions are applied. + */ +@Serializable +data class KeyboardButtonRequestChat( + val requestId: Long, + val chatIsChannel: Boolean, + val chatIsForum: Boolean? = null, + val chatHasUsername: Boolean? = null, + val chatIsCreated: Boolean? = null, + val userAdministratorRights: ChatAdministratorRights? = null, + val botAdministratorRights: ChatAdministratorRights? = null, + val botIsMember: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("KeyboardButtonRequestChat").prop("requestId", requestId).prop("chatIsChannel", chatIsChannel).prop("chatIsForum", chatIsForum).prop("chatHasUsername", chatHasUsername).prop("chatIsCreated", chatIsCreated).prop("userAdministratorRights", userAdministratorRights).prop("botAdministratorRights", botAdministratorRights).prop("botIsMember", botIsMember).toString() +} + +/** + * This object represents type of a poll, which is allowed to be created and sent when the corresponding button is pressed. + * @param type Optional. If quiz is passed, the user will be allowed to create only polls in the quiz mode. If regular is passed, only regular polls will be allowed. Otherwise, the user will be allowed to create a poll of any type. + */ +@Serializable +data class KeyboardButtonPollType( + val type: String? = null, +) { + override fun toString() = DebugStringBuilder("KeyboardButtonPollType").prop("type", type).toString() +} + +/** + * Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup). + * @param removeKeyboard Requests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want to hide the keyboard from sight but keep it accessible, use one_time_keyboard in ReplyKeyboardMarkup) + * @param selective Optional. Use this parameter if you want to remove the keyboard for specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message. Example: A user votes in a poll, bot returns confirmation message in reply to the vote and removes the keyboard for that user, while still showing the keyboard with poll options to users who haven't voted yet. + */ +@Serializable +data class ReplyKeyboardRemove( + val removeKeyboard: Boolean, + val selective: Boolean? = null, +) : ReplyMarkup() { + override fun toString() = DebugStringBuilder("ReplyKeyboardRemove").prop("removeKeyboard", removeKeyboard).prop("selective", selective).toString() +} + +/** + * This object represents an inline keyboard that appears right next to the message it belongs to. + * @param inlineKeyboard Array of button rows, each represented by an Array of InlineKeyboardButton objects + */ +@Serializable +data class InlineKeyboardMarkup( + val inlineKeyboard: List>, +) : ReplyMarkup() { + override fun toString() = DebugStringBuilder("InlineKeyboardMarkup").prop("inlineKeyboard", inlineKeyboard).toString() +} + +/** + * This object represents one button of an inline keyboard. You must use exactly one of the optional fields. + * @param text Label text on the button + * @param url Optional. HTTP or tg:// URL to be opened when the button is pressed. Links tg://user?id= can be used to mention a user by their ID without using a username, if this is allowed by their privacy settings. + * @param callbackData Optional. Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes + * @param webApp Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. Available only in private chats between a user and the bot. + * @param loginUrl Optional. An HTTPS URL used to automatically authorize the user. Can be used as a replacement for the Telegram Login Widget. + * @param switchInlineQuery Optional. If set, pressing the button will prompt the user to select one of their chats, open that chat and insert the bot's username and the specified inline query in the input field. May be empty, in which case just the bot's username will be inserted. + * @param switchInlineQueryCurrentChat Optional. If set, pressing the button will insert the bot's username and the specified inline query in the current chat's input field. May be empty, in which case only the bot's username will be inserted. This offers a quick way for the user to open your bot in inline mode in the same chat - good for selecting something from multiple options. + * @param switchInlineQueryChosenChat Optional. If set, pressing the button will prompt the user to select one of their chats of the specified type, open that chat and insert the bot's username and the specified inline query in the input field + * @param callbackGame Optional. Description of the game that will be launched when the user presses the button. NOTE: This type of button must always be the first button in the first row. + * @param pay Optional. Specify True, to send a Pay button. NOTE: This type of button must always be the first button in the first row and can only be used in invoice messages. + */ +@Serializable +data class InlineKeyboardButton( + val text: String, + val url: String? = null, + val callbackData: String? = null, + val webApp: WebAppInfo? = null, + val loginUrl: LoginUrl? = null, + val switchInlineQuery: String? = null, + val switchInlineQueryCurrentChat: String? = null, + val switchInlineQueryChosenChat: SwitchInlineQueryChosenChat? = null, + val callbackGame: CallbackGame? = null, + val pay: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("InlineKeyboardButton").prop("text", text).prop("url", url).prop("callbackData", callbackData).prop("webApp", webApp).prop("loginUrl", loginUrl).prop("switchInlineQuery", switchInlineQuery).prop("switchInlineQueryCurrentChat", switchInlineQueryCurrentChat).prop("switchInlineQueryChosenChat", switchInlineQueryChosenChat).prop("callbackGame", callbackGame).prop("pay", pay).toString() +} + +/** + * This object represents a parameter of the inline keyboard button used to automatically authorize a user. Serves as a great replacement for the Telegram Login Widget when the user is coming from Telegram. All the user needs to do is tap/click a button and confirm that they want to log in: + * + * + * + * Telegram apps support these buttons as of version 5.7. + * + * Sample bot: @discussbot + * @param url An HTTPS URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in Receiving authorization data. NOTE: You must always check the hash of the received data to verify the authentication and the integrity of the data as described in Checking authorization. + * @param forwardText Optional. New text of the button in forwarded messages. + * @param botUsername Optional. Username of a bot, which will be used for user authorization. See Setting up a bot for more details. If not specified, the current bot's username will be assumed. The url's domain must be the same as the domain linked with the bot. See Linking your domain to the bot for more details. + * @param requestWriteAccess Optional. Pass True to request the permission for your bot to send messages to the user. + */ +@Serializable +data class LoginUrl( + val url: String, + val forwardText: String? = null, + val botUsername: String? = null, + val requestWriteAccess: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("LoginUrl").prop("url", url).prop("forwardText", forwardText).prop("botUsername", botUsername).prop("requestWriteAccess", requestWriteAccess).toString() +} + +/** + * This object represents an inline button that switches the current user to inline mode in a chosen chat, with an optional default inline query. + * @param query Optional. The default inline query to be inserted in the input field. If left empty, only the bot's username will be inserted + * @param allowUserChats Optional. True, if private chats with users can be chosen + * @param allowBotChats Optional. True, if private chats with bots can be chosen + * @param allowGroupChats Optional. True, if group and supergroup chats can be chosen + * @param allowChannelChats Optional. True, if channel chats can be chosen + */ +@Serializable +data class SwitchInlineQueryChosenChat( + val query: String? = null, + val allowUserChats: Boolean? = null, + val allowBotChats: Boolean? = null, + val allowGroupChats: Boolean? = null, + val allowChannelChats: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("SwitchInlineQueryChosenChat").prop("query", query).prop("allowUserChats", allowUserChats).prop("allowBotChats", allowBotChats).prop("allowGroupChats", allowGroupChats).prop("allowChannelChats", allowChannelChats).toString() +} + +/** + * This object represents an incoming callback query from a callback button in an inline keyboard. If the button that originated the query was attached to a message sent by the bot, the field message will be present. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be present. Exactly one of the fields data or game_short_name will be present. + * @param id Unique identifier for this query + * @param from Sender + * @param chatInstance Global identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games. + * @param message Optional. Message with the callback button that originated the query. Note that message content and message date will not be available if the message is too old + * @param inlineMessageId Optional. Identifier of the message sent via the bot in inline mode, that originated the query. + * @param data Optional. Data associated with the callback button. Be aware that the message originated the query can contain no callback buttons with this data. + * @param gameShortName Optional. Short name of a Game to be returned, serves as the unique identifier for the game + */ +@Serializable +data class CallbackQuery( + val id: CallbackQueryId, + val from: User, + val chatInstance: String, + val message: Message? = null, + val inlineMessageId: InlineMessageId? = null, + val data: String? = null, + val gameShortName: String? = null, +) { + override fun toString() = DebugStringBuilder("CallbackQuery").prop("id", id).prop("from", from).prop("chatInstance", chatInstance).prop("message", message).prop("inlineMessageId", inlineMessageId).prop("data", data).prop("gameShortName", gameShortName).toString() +} + +/** + * Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode. + * @param forceReply Shows reply interface to the user, as if they manually selected the bot's message and tapped 'Reply' + * @param inputFieldPlaceholder Optional. The placeholder to be shown in the input field when the reply is active; 1-64 characters + * @param selective Optional. Use this parameter if you want to force reply from specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message. + */ +@Serializable +data class ForceReply( + val forceReply: Boolean, + val inputFieldPlaceholder: String? = null, + val selective: Boolean? = null, +) : ReplyMarkup() { + override fun toString() = DebugStringBuilder("ForceReply").prop("forceReply", forceReply).prop("inputFieldPlaceholder", inputFieldPlaceholder).prop("selective", selective).toString() +} + +/** + * This object represents a chat photo. + * @param smallFileId File identifier of small (160x160) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed. + * @param smallFileUniqueId Unique file identifier of small (160x160) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param bigFileId File identifier of big (640x640) chat photo. This file_id can be used only for photo download and only for as long as the photo is not changed. + * @param bigFileUniqueId Unique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + */ +@Serializable +data class ChatPhoto( + val smallFileId: FileId, + val smallFileUniqueId: FileUniqueId, + val bigFileId: FileId, + val bigFileUniqueId: FileUniqueId, +) { + override fun toString() = DebugStringBuilder("ChatPhoto").prop("smallFileId", smallFileId).prop("smallFileUniqueId", smallFileUniqueId).prop("bigFileId", bigFileId).prop("bigFileUniqueId", bigFileUniqueId).toString() +} + +/** + * Represents an invite link for a chat. + * @param inviteLink The invite link. If the link was created by another chat administrator, then the second part of the link will be replaced with “…”. + * @param creator Creator of the link + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators + * @param isPrimary True, if the link is primary + * @param isRevoked True, if the link is revoked + * @param name Optional. Invite link name + * @param expireDate Optional. Point in time (Unix timestamp) when the link will expire or has been expired + * @param memberLimit Optional. The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param pendingJoinRequestCount Optional. Number of pending join requests created using this link + */ +@Serializable +data class ChatInviteLink( + val inviteLink: String, + val creator: User, + val createsJoinRequest: Boolean, + val isPrimary: Boolean, + val isRevoked: Boolean, + val name: String? = null, + val expireDate: UnixTimestamp? = null, + val memberLimit: Long? = null, + val pendingJoinRequestCount: Long? = null, +) { + override fun toString() = DebugStringBuilder("ChatInviteLink").prop("inviteLink", inviteLink).prop("creator", creator).prop("createsJoinRequest", createsJoinRequest).prop("isPrimary", isPrimary).prop("isRevoked", isRevoked).prop("name", name).prop("expireDate", expireDate).prop("memberLimit", memberLimit).prop("pendingJoinRequestCount", pendingJoinRequestCount).toString() +} + +/** + * Represents the rights of an administrator in a chat. + * @param isAnonymous True, if the user's presence in the chat is hidden + * @param canManageChat True, if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canDeleteMessages True, if the administrator can delete messages of other users + * @param canManageVideoChats True, if the administrator can manage video chats + * @param canRestrictMembers True, if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers True, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user) + * @param canChangeInfo True, if the user is allowed to change the chat title, photo and other settings + * @param canInviteUsers True, if the user is allowed to invite new users to the chat + * @param canPostMessages Optional. True, if the administrator can post messages in the channel; channels only + * @param canEditMessages Optional. True, if the administrator can edit messages of other users and can pin messages; channels only + * @param canPinMessages Optional. True, if the user is allowed to pin messages; groups and supergroups only + * @param canPostStories Optional. True, if the administrator can post stories in the channel; channels only + * @param canEditStories Optional. True, if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Optional. True, if the administrator can delete stories posted by other users; channels only + * @param canManageTopics Optional. True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only + */ +@Serializable +data class ChatAdministratorRights( + val isAnonymous: Boolean, + val canManageChat: Boolean, + val canDeleteMessages: Boolean, + val canManageVideoChats: Boolean, + val canRestrictMembers: Boolean, + val canPromoteMembers: Boolean, + val canChangeInfo: Boolean, + val canInviteUsers: Boolean, + val canPostMessages: Boolean? = null, + val canEditMessages: Boolean? = null, + val canPinMessages: Boolean? = null, + val canPostStories: Boolean? = null, + val canEditStories: Boolean? = null, + val canDeleteStories: Boolean? = null, + val canManageTopics: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("ChatAdministratorRights").prop("isAnonymous", isAnonymous).prop("canManageChat", canManageChat).prop("canDeleteMessages", canDeleteMessages).prop("canManageVideoChats", canManageVideoChats).prop("canRestrictMembers", canRestrictMembers).prop("canPromoteMembers", canPromoteMembers).prop("canChangeInfo", canChangeInfo).prop("canInviteUsers", canInviteUsers).prop("canPostMessages", canPostMessages).prop("canEditMessages", canEditMessages).prop("canPinMessages", canPinMessages).prop("canPostStories", canPostStories).prop("canEditStories", canEditStories).prop("canDeleteStories", canDeleteStories).prop("canManageTopics", canManageTopics).toString() +} + +/** + * This object contains information about one member of a chat. Currently, the following 6 types of chat members are supported: + * - [ChatMemberOwner] + * - [ChatMemberAdministrator] + * - [ChatMemberMember] + * - [ChatMemberRestricted] + * - [ChatMemberLeft] + * - [ChatMemberBanned] + */ +@Serializable +@JsonClassDiscriminator("status") +sealed class ChatMember + +/** + * Represents a chat member that owns the chat and has all administrator privileges. + * @param user Information about the user + * @param isAnonymous True, if the user's presence in the chat is hidden + * @param customTitle Optional. Custom title for this user + */ +@Serializable +@SerialName("creator") +data class ChatMemberOwner( + val user: User, + val isAnonymous: Boolean, + val customTitle: String? = null, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberOwner").prop("user", user).prop("isAnonymous", isAnonymous).prop("customTitle", customTitle).toString() +} + +/** + * Represents a chat member that has some additional privileges. + * @param user Information about the user + * @param canBeEdited True, if the bot is allowed to edit administrator privileges of that user + * @param isAnonymous True, if the user's presence in the chat is hidden + * @param canManageChat True, if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canDeleteMessages True, if the administrator can delete messages of other users + * @param canManageVideoChats True, if the administrator can manage video chats + * @param canRestrictMembers True, if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers True, if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by the user) + * @param canChangeInfo True, if the user is allowed to change the chat title, photo and other settings + * @param canInviteUsers True, if the user is allowed to invite new users to the chat + * @param canPostMessages Optional. True, if the administrator can post messages in the channel; channels only + * @param canEditMessages Optional. True, if the administrator can edit messages of other users and can pin messages; channels only + * @param canPinMessages Optional. True, if the user is allowed to pin messages; groups and supergroups only + * @param canPostStories Optional. True, if the administrator can post stories in the channel; channels only + * @param canEditStories Optional. True, if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Optional. True, if the administrator can delete stories posted by other users; channels only + * @param canManageTopics Optional. True, if the user is allowed to create, rename, close, and reopen forum topics; supergroups only + * @param customTitle Optional. Custom title for this user + */ +@Serializable +@SerialName("administrator") +data class ChatMemberAdministrator( + val user: User, + val canBeEdited: Boolean, + val isAnonymous: Boolean, + val canManageChat: Boolean, + val canDeleteMessages: Boolean, + val canManageVideoChats: Boolean, + val canRestrictMembers: Boolean, + val canPromoteMembers: Boolean, + val canChangeInfo: Boolean, + val canInviteUsers: Boolean, + val canPostMessages: Boolean? = null, + val canEditMessages: Boolean? = null, + val canPinMessages: Boolean? = null, + val canPostStories: Boolean? = null, + val canEditStories: Boolean? = null, + val canDeleteStories: Boolean? = null, + val canManageTopics: Boolean? = null, + val customTitle: String? = null, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberAdministrator").prop("user", user).prop("canBeEdited", canBeEdited).prop("isAnonymous", isAnonymous).prop("canManageChat", canManageChat).prop("canDeleteMessages", canDeleteMessages).prop("canManageVideoChats", canManageVideoChats).prop("canRestrictMembers", canRestrictMembers).prop("canPromoteMembers", canPromoteMembers).prop("canChangeInfo", canChangeInfo).prop("canInviteUsers", canInviteUsers).prop("canPostMessages", canPostMessages).prop("canEditMessages", canEditMessages).prop("canPinMessages", canPinMessages).prop("canPostStories", canPostStories).prop("canEditStories", canEditStories).prop("canDeleteStories", canDeleteStories).prop("canManageTopics", canManageTopics).prop("customTitle", customTitle).toString() +} + +/** + * Represents a chat member that has no additional privileges or restrictions. + * @param user Information about the user + */ +@Serializable +@SerialName("member") +data class ChatMemberMember( + val user: User, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberMember").prop("user", user).toString() +} + +/** + * Represents a chat member that is under certain restrictions in the chat. Supergroups only. + * @param user Information about the user + * @param isMember True, if the user is a member of the chat at the moment of the request + * @param canSendMessages True, if the user is allowed to send text messages, contacts, invoices, locations and venues + * @param canSendAudios True, if the user is allowed to send audios + * @param canSendDocuments True, if the user is allowed to send documents + * @param canSendPhotos True, if the user is allowed to send photos + * @param canSendVideos True, if the user is allowed to send videos + * @param canSendVideoNotes True, if the user is allowed to send video notes + * @param canSendVoiceNotes True, if the user is allowed to send voice notes + * @param canSendPolls True, if the user is allowed to send polls + * @param canSendOtherMessages True, if the user is allowed to send animations, games, stickers and use inline bots + * @param canAddWebPagePreviews True, if the user is allowed to add web page previews to their messages + * @param canChangeInfo True, if the user is allowed to change the chat title, photo and other settings + * @param canInviteUsers True, if the user is allowed to invite new users to the chat + * @param canPinMessages True, if the user is allowed to pin messages + * @param canManageTopics True, if the user is allowed to create forum topics + * @param untilDate Date when restrictions will be lifted for this user; Unix time. If 0, then the user is restricted forever + */ +@Serializable +@SerialName("restricted") +data class ChatMemberRestricted( + val user: User, + val isMember: Boolean, + val canSendMessages: Boolean, + val canSendAudios: Boolean, + val canSendDocuments: Boolean, + val canSendPhotos: Boolean, + val canSendVideos: Boolean, + val canSendVideoNotes: Boolean, + val canSendVoiceNotes: Boolean, + val canSendPolls: Boolean, + val canSendOtherMessages: Boolean, + val canAddWebPagePreviews: Boolean, + val canChangeInfo: Boolean, + val canInviteUsers: Boolean, + val canPinMessages: Boolean, + val canManageTopics: Boolean, + val untilDate: UnixTimestamp, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberRestricted").prop("user", user).prop("isMember", isMember).prop("canSendMessages", canSendMessages).prop("canSendAudios", canSendAudios).prop("canSendDocuments", canSendDocuments).prop("canSendPhotos", canSendPhotos).prop("canSendVideos", canSendVideos).prop("canSendVideoNotes", canSendVideoNotes).prop("canSendVoiceNotes", canSendVoiceNotes).prop("canSendPolls", canSendPolls).prop("canSendOtherMessages", canSendOtherMessages).prop("canAddWebPagePreviews", canAddWebPagePreviews).prop("canChangeInfo", canChangeInfo).prop("canInviteUsers", canInviteUsers).prop("canPinMessages", canPinMessages).prop("canManageTopics", canManageTopics).prop("untilDate", untilDate).toString() +} + +/** + * Represents a chat member that isn't currently a member of the chat, but may join it themselves. + * @param user Information about the user + */ +@Serializable +@SerialName("left") +data class ChatMemberLeft( + val user: User, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberLeft").prop("user", user).toString() +} + +/** + * Represents a chat member that was banned in the chat and can't return to the chat or view chat messages. + * @param user Information about the user + * @param untilDate Date when restrictions will be lifted for this user; Unix time. If 0, then the user is banned forever + */ +@Serializable +@SerialName("kicked") +data class ChatMemberBanned( + val user: User, + val untilDate: UnixTimestamp, +) : ChatMember() { + override fun toString() = DebugStringBuilder("ChatMemberBanned").prop("user", user).prop("untilDate", untilDate).toString() +} + +/** + * This object represents changes in the status of a chat member. + * @param chat Chat the user belongs to + * @param from Performer of the action, which resulted in the change + * @param date Date the change was done in Unix time + * @param oldChatMember Previous information about the chat member + * @param newChatMember New information about the chat member + * @param inviteLink Optional. Chat invite link, which was used by the user to join the chat; for joining by invite link events only. + * @param viaChatFolderInviteLink Optional. True, if the user joined the chat via a chat folder invite link + */ +@Serializable +data class ChatMemberUpdated( + val chat: Chat, + val from: User, + val date: UnixTimestamp, + val oldChatMember: ChatMember, + val newChatMember: ChatMember, + val inviteLink: ChatInviteLink? = null, + val viaChatFolderInviteLink: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("ChatMemberUpdated").prop("chat", chat).prop("from", from).prop("date", date).prop("oldChatMember", oldChatMember).prop("newChatMember", newChatMember).prop("inviteLink", inviteLink).prop("viaChatFolderInviteLink", viaChatFolderInviteLink).toString() +} + +/** + * Represents a join request sent to a chat. + * @param chat Chat to which the request was sent + * @param from User that sent the join request + * @param userChatId Identifier of a private chat with the user who sent the join request. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a 64-bit integer or double-precision float type are safe for storing this identifier. The bot can use this identifier for 24 hours to send messages until the join request is processed, assuming no other administrator contacted the user. + * @param date Date the request was sent in Unix time + * @param bio Optional. Bio of the user. + * @param inviteLink Optional. Chat invite link that was used by the user to send the join request + */ +@Serializable +data class ChatJoinRequest( + val chat: Chat, + val from: User, + val userChatId: ChatId, + val date: UnixTimestamp, + val bio: String? = null, + val inviteLink: ChatInviteLink? = null, +) { + override fun toString() = DebugStringBuilder("ChatJoinRequest").prop("chat", chat).prop("from", from).prop("userChatId", userChatId).prop("date", date).prop("bio", bio).prop("inviteLink", inviteLink).toString() +} + +/** + * Describes actions that a non-administrator user is allowed to take in a chat. + * @param canSendMessages Optional. True, if the user is allowed to send text messages, contacts, invoices, locations and venues + * @param canSendAudios Optional. True, if the user is allowed to send audios + * @param canSendDocuments Optional. True, if the user is allowed to send documents + * @param canSendPhotos Optional. True, if the user is allowed to send photos + * @param canSendVideos Optional. True, if the user is allowed to send videos + * @param canSendVideoNotes Optional. True, if the user is allowed to send video notes + * @param canSendVoiceNotes Optional. True, if the user is allowed to send voice notes + * @param canSendPolls Optional. True, if the user is allowed to send polls + * @param canSendOtherMessages Optional. True, if the user is allowed to send animations, games, stickers and use inline bots + * @param canAddWebPagePreviews Optional. True, if the user is allowed to add web page previews to their messages + * @param canChangeInfo Optional. True, if the user is allowed to change the chat title, photo and other settings. Ignored in public supergroups + * @param canInviteUsers Optional. True, if the user is allowed to invite new users to the chat + * @param canPinMessages Optional. True, if the user is allowed to pin messages. Ignored in public supergroups + * @param canManageTopics Optional. True, if the user is allowed to create forum topics. If omitted defaults to the value of can_pin_messages + */ +@Serializable +data class ChatPermissions( + val canSendMessages: Boolean? = null, + val canSendAudios: Boolean? = null, + val canSendDocuments: Boolean? = null, + val canSendPhotos: Boolean? = null, + val canSendVideos: Boolean? = null, + val canSendVideoNotes: Boolean? = null, + val canSendVoiceNotes: Boolean? = null, + val canSendPolls: Boolean? = null, + val canSendOtherMessages: Boolean? = null, + val canAddWebPagePreviews: Boolean? = null, + val canChangeInfo: Boolean? = null, + val canInviteUsers: Boolean? = null, + val canPinMessages: Boolean? = null, + val canManageTopics: Boolean? = null, +) { + override fun toString() = DebugStringBuilder("ChatPermissions").prop("canSendMessages", canSendMessages).prop("canSendAudios", canSendAudios).prop("canSendDocuments", canSendDocuments).prop("canSendPhotos", canSendPhotos).prop("canSendVideos", canSendVideos).prop("canSendVideoNotes", canSendVideoNotes).prop("canSendVoiceNotes", canSendVoiceNotes).prop("canSendPolls", canSendPolls).prop("canSendOtherMessages", canSendOtherMessages).prop("canAddWebPagePreviews", canAddWebPagePreviews).prop("canChangeInfo", canChangeInfo).prop("canInviteUsers", canInviteUsers).prop("canPinMessages", canPinMessages).prop("canManageTopics", canManageTopics).toString() +} + +/** + * Represents a location to which a chat is connected. + * @param location The location to which the supergroup is connected. Can't be a live location. + * @param address Location address; 1-64 characters, as defined by the chat owner + */ +@Serializable +data class ChatLocation( + val location: Location, + val address: String, +) { + override fun toString() = DebugStringBuilder("ChatLocation").prop("location", location).prop("address", address).toString() +} + +/** + * This object represents a forum topic. + * @param messageThreadId Unique identifier of the forum topic + * @param name Name of the topic + * @param iconColor Color of the topic icon in RGB format + * @param iconCustomEmojiId Optional. Unique identifier of the custom emoji shown as the topic icon + */ +@Serializable +data class ForumTopic( + val messageThreadId: MessageThreadId, + val name: String, + val iconColor: Long, + val iconCustomEmojiId: CustomEmojiId? = null, +) { + override fun toString() = DebugStringBuilder("ForumTopic").prop("messageThreadId", messageThreadId).prop("name", name).prop("iconColor", iconColor).prop("iconCustomEmojiId", iconCustomEmojiId).toString() +} + +/** + * This object represents a bot command. + * @param command Text of the command; 1-32 characters. Can contain only lowercase English letters, digits and underscores. + * @param description Description of the command; 1-256 characters. + */ +@Serializable +data class BotCommand( + val command: String, + val description: String, +) { + override fun toString() = DebugStringBuilder("BotCommand").prop("command", command).prop("description", description).toString() +} + +/** + * This object represents the scope to which bot commands are applied. Currently, the following 7 scopes are supported: + * - [BotCommandScopeDefault] + * - [BotCommandScopeAllPrivateChats] + * - [BotCommandScopeAllGroupChats] + * - [BotCommandScopeAllChatAdministrators] + * - [BotCommandScopeChat] + * - [BotCommandScopeChatAdministrators] + * - [BotCommandScopeChatMember] + */ +@Serializable +@JsonClassDiscriminator("type") +sealed class BotCommandScope + +/** + * Represents the default scope of bot commands. Default commands are used if no commands with a narrower scope are specified for the user. + */ +@Serializable +@SerialName("default") +data object BotCommandScopeDefault : BotCommandScope() + +/** + * Represents the scope of bot commands, covering all private chats. + */ +@Serializable +@SerialName("all_private_chats") +data object BotCommandScopeAllPrivateChats : BotCommandScope() + +/** + * Represents the scope of bot commands, covering all group and supergroup chats. + */ +@Serializable +@SerialName("all_group_chats") +data object BotCommandScopeAllGroupChats : BotCommandScope() + +/** + * Represents the scope of bot commands, covering all group and supergroup chat administrators. + */ +@Serializable +@SerialName("all_chat_administrators") +data object BotCommandScopeAllChatAdministrators : BotCommandScope() + +/** + * Represents the scope of bot commands, covering a specific chat. + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +@SerialName("chat") +data class BotCommandScopeChat( + val chatId: ChatId, +) : BotCommandScope() { + override fun toString() = DebugStringBuilder("BotCommandScopeChat").prop("chatId", chatId).toString() +} + +/** + * Represents the scope of bot commands, covering all administrators of a specific group or supergroup chat. + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +@Serializable +@SerialName("chat_administrators") +data class BotCommandScopeChatAdministrators( + val chatId: ChatId, +) : BotCommandScope() { + override fun toString() = DebugStringBuilder("BotCommandScopeChatAdministrators").prop("chatId", chatId).toString() +} + +/** + * Represents the scope of bot commands, covering a specific member of a group or supergroup chat. + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + */ +@Serializable +@SerialName("chat_member") +data class BotCommandScopeChatMember( + val chatId: ChatId, + val userId: UserId, +) : BotCommandScope() { + override fun toString() = DebugStringBuilder("BotCommandScopeChatMember").prop("chatId", chatId).prop("userId", userId).toString() +} + +/** + * This object represents the bot's name. + * @param name The bot's name + */ +@Serializable +data class BotName( + val name: String, +) { + override fun toString() = DebugStringBuilder("BotName").prop("name", name).toString() +} + +/** + * This object represents the bot's description. + * @param description The bot's description + */ +@Serializable +data class BotDescription( + val description: String, +) { + override fun toString() = DebugStringBuilder("BotDescription").prop("description", description).toString() +} + +/** + * This object represents the bot's short description. + * @param shortDescription The bot's short description + */ +@Serializable +data class BotShortDescription( + val shortDescription: String, +) { + override fun toString() = DebugStringBuilder("BotShortDescription").prop("shortDescription", shortDescription).toString() +} + +/** + * This object describes the bot's menu button in a private chat. It should be one of + * - [MenuButtonCommands] + * - [MenuButtonWebApp] + * - [MenuButtonDefault] + */ +@Serializable +@JsonClassDiscriminator("type") +sealed class MenuButton + +/** + * Represents a menu button, which opens the bot's list of commands. + */ +@Serializable +@SerialName("commands") +data object MenuButtonCommands : MenuButton() + +/** + * Represents a menu button, which launches a Web App. + * @param text Text on the button + * @param webApp Description of the Web App that will be launched when the user presses the button. The Web App will be able to send an arbitrary message on behalf of the user using the method answerWebAppQuery. + */ +@Serializable +@SerialName("web_app") +data class MenuButtonWebApp( + val text: String, + val webApp: WebAppInfo, +) : MenuButton() { + override fun toString() = DebugStringBuilder("MenuButtonWebApp").prop("text", text).prop("webApp", webApp).toString() +} + +/** + * Describes that no specific value for the menu button was set. + */ +@Serializable +@SerialName("default") +data object MenuButtonDefault : MenuButton() + +/** + * Describes why a request was unsuccessful. + * @param migrateToChatId Optional. The group has been migrated to a supergroup with the specified identifier. This number may have more than 32 significant bits and some programming languages may have difficulty/silent defects in interpreting it. But it has at most 52 significant bits, so a signed 64-bit integer or double-precision float type are safe for storing this identifier. + * @param retryAfter Optional. In case of exceeding flood control, the number of seconds left to wait before the request can be repeated + */ +@Serializable +data class ResponseParameters( + val migrateToChatId: ChatId? = null, + val retryAfter: Seconds? = null, +) { + override fun toString() = DebugStringBuilder("ResponseParameters").prop("migrateToChatId", migrateToChatId).prop("retryAfter", retryAfter).toString() +} + +/** + * This object represents the content of a media message to be sent. It should be one of + * - [InputMediaAnimation] + * - [InputMediaDocument] + * - [InputMediaAudio] + * - [InputMediaPhoto] + * - [InputMediaVideo] + */ +@Serializable +@JsonClassDiscriminator("type") +sealed class InputMedia + +/** + * Represents a photo to be sent. + * @param media File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + * @param caption Optional. Caption of the photo to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Optional. Pass True if the photo needs to be covered with a spoiler animation + */ +@Serializable +@SerialName("photo") +data class InputMediaPhoto( + val media: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val hasSpoiler: Boolean? = null, +) : InputMedia() { + override fun toString() = DebugStringBuilder("InputMediaPhoto").prop("media", media).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("hasSpoiler", hasSpoiler).toString() +} + +/** + * Represents a video to be sent. + * @param media File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + * @param thumbnail Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Optional. Caption of the video to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param width Optional. Video width + * @param height Optional. Video height + * @param duration Optional. Video duration in seconds + * @param supportsStreaming Optional. Pass True if the uploaded video is suitable for streaming + * @param hasSpoiler Optional. Pass True if the video needs to be covered with a spoiler animation + */ +@Serializable +@SerialName("video") +data class InputMediaVideo( + val media: String, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val width: Long? = null, + val height: Long? = null, + val duration: Seconds? = null, + val supportsStreaming: Boolean? = null, + val hasSpoiler: Boolean? = null, +) : InputMedia() { + override fun toString() = DebugStringBuilder("InputMediaVideo").prop("media", media).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("width", width).prop("height", height).prop("duration", duration).prop("supportsStreaming", supportsStreaming).prop("hasSpoiler", hasSpoiler).toString() +} + +/** + * Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent. + * @param media File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + * @param thumbnail Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Optional. Caption of the animation to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param width Optional. Animation width + * @param height Optional. Animation height + * @param duration Optional. Animation duration in seconds + * @param hasSpoiler Optional. Pass True if the animation needs to be covered with a spoiler animation + */ +@Serializable +@SerialName("animation") +data class InputMediaAnimation( + val media: String, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val width: Long? = null, + val height: Long? = null, + val duration: Seconds? = null, + val hasSpoiler: Boolean? = null, +) : InputMedia() { + override fun toString() = DebugStringBuilder("InputMediaAnimation").prop("media", media).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("width", width).prop("height", height).prop("duration", duration).prop("hasSpoiler", hasSpoiler).toString() +} + +/** + * Represents an audio file to be treated as music to be sent. + * @param media File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + * @param thumbnail Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Optional. Caption of the audio to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Optional. Duration of the audio in seconds + * @param performer Optional. Performer of the audio + * @param title Optional. Title of the audio + */ +@Serializable +@SerialName("audio") +data class InputMediaAudio( + val media: String, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val duration: Seconds? = null, + val performer: String? = null, + val title: String? = null, +) : InputMedia() { + override fun toString() = DebugStringBuilder("InputMediaAudio").prop("media", media).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("duration", duration).prop("performer", performer).prop("title", title).toString() +} + +/** + * Represents a general file to be sent. + * @param media File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://” to upload a new one using multipart/form-data under name. More information on Sending Files » + * @param thumbnail Optional. Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Optional. Caption of the document to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Optional. Disables automatic server-side content type detection for files uploaded using multipart/form-data. Always True, if the document is sent as part of an album. + */ +@Serializable +@SerialName("document") +data class InputMediaDocument( + val media: String, + val thumbnail: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val disableContentTypeDetection: Boolean? = null, +) : InputMedia() { + override fun toString() = DebugStringBuilder("InputMediaDocument").prop("media", media).prop("thumbnail", thumbnail).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("disableContentTypeDetection", disableContentTypeDetection).toString() +} + +/** + * This object represents a sticker. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param type Type of the sticker, currently one of “regular”, “mask”, “custom_emoji”. The type of the sticker is independent from its format, which is determined by the fields is_animated and is_video. + * @param width Sticker width + * @param height Sticker height + * @param isAnimated True, if the sticker is animated + * @param isVideo True, if the sticker is a video sticker + * @param thumbnail Optional. Sticker thumbnail in the .WEBP or .JPG format + * @param emoji Optional. Emoji associated with the sticker + * @param setName Optional. Name of the sticker set to which the sticker belongs + * @param premiumAnimation Optional. For premium regular stickers, premium animation for the sticker + * @param maskPosition Optional. For mask stickers, the position where the mask should be placed + * @param customEmojiId Optional. For custom emoji stickers, unique identifier of the custom emoji + * @param needsRepainting Optional. True, if the sticker must be repainted to a text color in messages, the color of the Telegram Premium badge in emoji status, white color on chat photos, or another appropriate color in other places + * @param fileSize Optional. File size in bytes + */ +@Serializable +data class Sticker( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val type: String, + val width: Long, + val height: Long, + val isAnimated: Boolean, + val isVideo: Boolean, + val thumbnail: PhotoSize? = null, + val emoji: String? = null, + val setName: String? = null, + val premiumAnimation: File? = null, + val maskPosition: MaskPosition? = null, + val customEmojiId: CustomEmojiId? = null, + val needsRepainting: Boolean? = null, + val fileSize: Long? = null, +) { + override fun toString() = DebugStringBuilder("Sticker").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("type", type).prop("width", width).prop("height", height).prop("isAnimated", isAnimated).prop("isVideo", isVideo).prop("thumbnail", thumbnail).prop("emoji", emoji).prop("setName", setName).prop("premiumAnimation", premiumAnimation).prop("maskPosition", maskPosition).prop("customEmojiId", customEmojiId).prop("needsRepainting", needsRepainting).prop("fileSize", fileSize).toString() +} + +/** + * This object represents a sticker set. + * @param name Sticker set name + * @param title Sticker set title + * @param stickerType Type of stickers in the set, currently one of “regular”, “mask”, “custom_emoji” + * @param isAnimated True, if the sticker set contains animated stickers + * @param isVideo True, if the sticker set contains video stickers + * @param stickers List of all set stickers + * @param thumbnail Optional. Sticker set thumbnail in the .WEBP, .TGS, or .WEBM format + */ +@Serializable +data class StickerSet( + val name: String, + val title: String, + val stickerType: String, + val isAnimated: Boolean, + val isVideo: Boolean, + val stickers: List, + val thumbnail: PhotoSize? = null, +) { + override fun toString() = DebugStringBuilder("StickerSet").prop("name", name).prop("title", title).prop("stickerType", stickerType).prop("isAnimated", isAnimated).prop("isVideo", isVideo).prop("stickers", stickers).prop("thumbnail", thumbnail).toString() +} + +/** + * This object describes the position on faces where a mask should be placed by default. + * @param point The part of the face relative to which the mask should be placed. One of “forehead”, “eyes”, “mouth”, or “chin”. + * @param xShift Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position. + * @param yShift Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position. + * @param scale Mask scaling coefficient. For example, 2.0 means double size. + */ +@Serializable +data class MaskPosition( + val point: String, + val xShift: Double, + val yShift: Double, + val scale: Double, +) { + override fun toString() = DebugStringBuilder("MaskPosition").prop("point", point).prop("xShift", xShift).prop("yShift", yShift).prop("scale", scale).toString() +} + +/** + * This object describes a sticker to be added to a sticker set. + * @param sticker The added sticker. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, upload a new one using multipart/form-data, or pass “attach://” to upload a new one using multipart/form-data under name. Animated and video stickers can't be uploaded via HTTP URL. More information on Sending Files » + * @param emojiList List of 1-20 emoji associated with the sticker + * @param maskPosition Optional. Position where the mask should be placed on faces. For “mask” stickers only. + * @param keywords Optional. List of 0-20 search keywords for the sticker with total length of up to 64 characters. For “regular” and “custom_emoji” stickers only. + */ +@Serializable +data class InputSticker( + val sticker: String, + val emojiList: List, + val maskPosition: MaskPosition? = null, + val keywords: List? = null, +) { + override fun toString() = DebugStringBuilder("InputSticker").prop("sticker", sticker).prop("emojiList", emojiList).prop("maskPosition", maskPosition).prop("keywords", keywords).toString() +} + +/** + * This object represents an incoming inline query. When the user sends an empty query, your bot could return some default or trending results. + * @param id Unique identifier for this query + * @param from Sender + * @param query Text of the query (up to 256 characters) + * @param offset Offset of the results to be returned, can be controlled by the bot + * @param chatType Optional. Type of the chat from which the inline query was sent. Can be either “sender” for a private chat with the inline query sender, “private”, “group”, “supergroup”, or “channel”. The chat type should be always known for requests sent from official clients and most third-party clients, unless the request was sent from a secret chat + * @param location Optional. Sender location, only for bots that request user location + */ +@Serializable +data class InlineQuery( + val id: InlineQueryId, + val from: User, + val query: String, + val offset: String, + val chatType: String? = null, + val location: Location? = null, +) { + override fun toString() = DebugStringBuilder("InlineQuery").prop("id", id).prop("from", from).prop("query", query).prop("offset", offset).prop("chatType", chatType).prop("location", location).toString() +} + +/** + * This object represents a button to be shown above inline query results. You must use exactly one of the optional fields. + * @param text Label text on the button + * @param webApp Optional. Description of the Web App that will be launched when the user presses the button. The Web App will be able to switch back to the inline mode using the method switchInlineQuery inside the Web App. + * @param startParameter Optional. Deep-linking parameter for the /start message sent to the bot when a user presses the button. 1-64 characters, only A-Z, a-z, 0-9, _ and - are allowed. Example: An inline bot that sends YouTube videos can ask the user to connect the bot to their YouTube account to adapt search results accordingly. To do this, it displays a 'Connect your YouTube account' button above the results, or even before showing any. The user presses the button, switches to a private chat with the bot and, in doing so, passes a start parameter that instructs the bot to return an OAuth link. Once done, the bot can offer a switch_inline button so that the user can easily return to the chat where they wanted to use the bot's inline capabilities. + */ +@Serializable +data class InlineQueryResultsButton( + val text: String, + val webApp: WebAppInfo? = null, + val startParameter: String? = null, +) { + override fun toString() = DebugStringBuilder("InlineQueryResultsButton").prop("text", text).prop("webApp", webApp).prop("startParameter", startParameter).toString() +} + +/** + * This object represents one result of an inline query. Telegram clients currently support results of the following 20 types: + * - [InlineQueryResultCachedAudio] + * - [InlineQueryResultCachedDocument] + * - [InlineQueryResultCachedGif] + * - [InlineQueryResultCachedMpeg4Gif] + * - [InlineQueryResultCachedPhoto] + * - [InlineQueryResultCachedSticker] + * - [InlineQueryResultCachedVideo] + * - [InlineQueryResultCachedVoice] + * - [InlineQueryResultArticle] + * - [InlineQueryResultAudio] + * - [InlineQueryResultContact] + * - [InlineQueryResultGame] + * - [InlineQueryResultDocument] + * - [InlineQueryResultGif] + * - [InlineQueryResultLocation] + * - [InlineQueryResultMpeg4Gif] + * - [InlineQueryResultPhoto] + * - [InlineQueryResultVenue] + * - [InlineQueryResultVideo] + * - [InlineQueryResultVoice] + */ +@Serializable +@JsonClassDiscriminator("type") +sealed class InlineQueryResult + +/** + * Represents a link to an article or web page. + * @param id Unique identifier for this result, 1-64 Bytes + * @param title Title of the result + * @param inputMessageContent Content of the message to be sent + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param url Optional. URL of the result + * @param hideUrl Optional. Pass True if you don't want the URL to be shown in the message + * @param description Optional. Short description of the result + * @param thumbnailUrl Optional. Url of the thumbnail for the result + * @param thumbnailWidth Optional. Thumbnail width + * @param thumbnailHeight Optional. Thumbnail height + */ +@Serializable +@SerialName("article") +data class InlineQueryResultArticle( + val id: InlineQueryResultId, + val title: String, + val inputMessageContent: InputMessageContent, + val replyMarkup: InlineKeyboardMarkup? = null, + val url: String? = null, + val hideUrl: Boolean? = null, + val description: String? = null, + val thumbnailUrl: String? = null, + val thumbnailWidth: Long? = null, + val thumbnailHeight: Long? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultArticle").prop("id", id).prop("title", title).prop("inputMessageContent", inputMessageContent).prop("replyMarkup", replyMarkup).prop("url", url).prop("hideUrl", hideUrl).prop("description", description).prop("thumbnailUrl", thumbnailUrl).prop("thumbnailWidth", thumbnailWidth).prop("thumbnailHeight", thumbnailHeight).toString() +} + +/** + * Represents a link to a photo. By default, this photo will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo. + * @param id Unique identifier for this result, 1-64 bytes + * @param photoUrl A valid URL of the photo. Photo must be in JPEG format. Photo size must not exceed 5MB + * @param thumbnailUrl URL of the thumbnail for the photo + * @param photoWidth Optional. Width of the photo + * @param photoHeight Optional. Height of the photo + * @param title Optional. Title for the result + * @param description Optional. Short description of the result + * @param caption Optional. Caption of the photo to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the photo + */ +@Serializable +@SerialName("photo") +data class InlineQueryResultPhoto( + val id: InlineQueryResultId, + val photoUrl: String, + val thumbnailUrl: String, + val photoWidth: Long? = null, + val photoHeight: Long? = null, + val title: String? = null, + val description: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultPhoto").prop("id", id).prop("photoUrl", photoUrl).prop("thumbnailUrl", thumbnailUrl).prop("photoWidth", photoWidth).prop("photoHeight", photoHeight).prop("title", title).prop("description", description).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to an animated GIF file. By default, this animated GIF file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. + * @param id Unique identifier for this result, 1-64 bytes + * @param gifUrl A valid URL for the GIF file. File size must not exceed 1MB + * @param thumbnailUrl URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result + * @param gifWidth Optional. Width of the GIF + * @param gifHeight Optional. Height of the GIF + * @param gifDuration Optional. Duration of the GIF in seconds + * @param thumbnailMimeType Optional. MIME type of the thumbnail, must be one of “image/jpeg”, “image/gif”, or “video/mp4”. Defaults to “image/jpeg” + * @param title Optional. Title for the result + * @param caption Optional. Caption of the GIF file to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the GIF animation + */ +@Serializable +@SerialName("gif") +data class InlineQueryResultGif( + val id: InlineQueryResultId, + val gifUrl: String, + val thumbnailUrl: String, + val gifWidth: Long? = null, + val gifHeight: Long? = null, + val gifDuration: Long? = null, + val thumbnailMimeType: String? = null, + val title: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultGif").prop("id", id).prop("gifUrl", gifUrl).prop("thumbnailUrl", thumbnailUrl).prop("gifWidth", gifWidth).prop("gifHeight", gifHeight).prop("gifDuration", gifDuration).prop("thumbnailMimeType", thumbnailMimeType).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a video animation (H.264/MPEG-4 AVC video without sound). By default, this animated MPEG-4 file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. + * @param id Unique identifier for this result, 1-64 bytes + * @param mpeg4Url A valid URL for the MPEG4 file. File size must not exceed 1MB + * @param thumbnailUrl URL of the static (JPEG or GIF) or animated (MPEG4) thumbnail for the result + * @param mpeg4Width Optional. Video width + * @param mpeg4Height Optional. Video height + * @param mpeg4Duration Optional. Video duration in seconds + * @param thumbnailMimeType Optional. MIME type of the thumbnail, must be one of “image/jpeg”, “image/gif”, or “video/mp4”. Defaults to “image/jpeg” + * @param title Optional. Title for the result + * @param caption Optional. Caption of the MPEG-4 file to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the video animation + */ +@Serializable +@SerialName("mpeg4_gif") +data class InlineQueryResultMpeg4Gif( + val id: InlineQueryResultId, + val mpeg4Url: String, + val thumbnailUrl: String, + val mpeg4Width: Long? = null, + val mpeg4Height: Long? = null, + val mpeg4Duration: Long? = null, + val thumbnailMimeType: String? = null, + val title: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultMpeg4Gif").prop("id", id).prop("mpeg4Url", mpeg4Url).prop("thumbnailUrl", thumbnailUrl).prop("mpeg4Width", mpeg4Width).prop("mpeg4Height", mpeg4Height).prop("mpeg4Duration", mpeg4Duration).prop("thumbnailMimeType", thumbnailMimeType).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a page containing an embedded video player or a video file. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video. + * + * If an InlineQueryResultVideo message contains an embedded video (e.g., YouTube), you must replace its content using input_message_content. + * @param id Unique identifier for this result, 1-64 bytes + * @param videoUrl A valid URL for the embedded video player or video file + * @param mimeType MIME type of the content of the video URL, “text/html” or “video/mp4” + * @param thumbnailUrl URL of the thumbnail (JPEG only) for the video + * @param title Title for the result + * @param caption Optional. Caption of the video to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param videoWidth Optional. Video width + * @param videoHeight Optional. Video height + * @param videoDuration Optional. Video duration in seconds + * @param description Optional. Short description of the result + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the video. This field is required if InlineQueryResultVideo is used to send an HTML-page as a result (e.g., a YouTube video). + */ +@Serializable +@SerialName("video") +data class InlineQueryResultVideo( + val id: InlineQueryResultId, + val videoUrl: String, + val mimeType: String, + val thumbnailUrl: String, + val title: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val videoWidth: Long? = null, + val videoHeight: Long? = null, + val videoDuration: Long? = null, + val description: String? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultVideo").prop("id", id).prop("videoUrl", videoUrl).prop("mimeType", mimeType).prop("thumbnailUrl", thumbnailUrl).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("videoWidth", videoWidth).prop("videoHeight", videoHeight).prop("videoDuration", videoDuration).prop("description", description).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to an MP3 audio file. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio. + * @param id Unique identifier for this result, 1-64 bytes + * @param audioUrl A valid URL for the audio file + * @param title Title + * @param caption Optional. Caption, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param performer Optional. Performer + * @param audioDuration Optional. Audio duration in seconds + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the audio + */ +@Serializable +@SerialName("audio") +data class InlineQueryResultAudio( + val id: InlineQueryResultId, + val audioUrl: String, + val title: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val performer: String? = null, + val audioDuration: Long? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultAudio").prop("id", id).prop("audioUrl", audioUrl).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("performer", performer).prop("audioDuration", audioDuration).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a voice recording in an .OGG container encoded with OPUS. By default, this voice recording will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the the voice message. + * @param id Unique identifier for this result, 1-64 bytes + * @param voiceUrl A valid URL for the voice recording + * @param title Recording title + * @param caption Optional. Caption, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param voiceDuration Optional. Recording duration in seconds + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the voice recording + */ +@Serializable +@SerialName("voice") +data class InlineQueryResultVoice( + val id: InlineQueryResultId, + val voiceUrl: String, + val title: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val voiceDuration: Long? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultVoice").prop("id", id).prop("voiceUrl", voiceUrl).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("voiceDuration", voiceDuration).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a file. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Currently, only .PDF and .ZIP files can be sent using this method. + * @param id Unique identifier for this result, 1-64 bytes + * @param title Title for the result + * @param documentUrl A valid URL for the file + * @param mimeType MIME type of the content of the file, either “application/pdf” or “application/zip” + * @param caption Optional. Caption of the document to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param description Optional. Short description of the result + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the file + * @param thumbnailUrl Optional. URL of the thumbnail (JPEG only) for the file + * @param thumbnailWidth Optional. Thumbnail width + * @param thumbnailHeight Optional. Thumbnail height + */ +@Serializable +@SerialName("document") +data class InlineQueryResultDocument( + val id: InlineQueryResultId, + val title: String, + val documentUrl: String, + val mimeType: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val description: String? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, + val thumbnailUrl: String? = null, + val thumbnailWidth: Long? = null, + val thumbnailHeight: Long? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultDocument").prop("id", id).prop("title", title).prop("documentUrl", documentUrl).prop("mimeType", mimeType).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("description", description).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).prop("thumbnailUrl", thumbnailUrl).prop("thumbnailWidth", thumbnailWidth).prop("thumbnailHeight", thumbnailHeight).toString() +} + +/** + * Represents a location on a map. By default, the location will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the location. + * @param id Unique identifier for this result, 1-64 Bytes + * @param latitude Location latitude in degrees + * @param longitude Location longitude in degrees + * @param title Location title + * @param horizontalAccuracy Optional. The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Optional. Period in seconds for which the location can be updated, should be between 60 and 86400. + * @param heading Optional. For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius Optional. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the location + * @param thumbnailUrl Optional. Url of the thumbnail for the result + * @param thumbnailWidth Optional. Thumbnail width + * @param thumbnailHeight Optional. Thumbnail height + */ +@Serializable +@SerialName("location") +data class InlineQueryResultLocation( + val id: InlineQueryResultId, + val latitude: Double, + val longitude: Double, + val title: String, + val horizontalAccuracy: Double? = null, + val livePeriod: Long? = null, + val heading: Long? = null, + val proximityAlertRadius: Long? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, + val thumbnailUrl: String? = null, + val thumbnailWidth: Long? = null, + val thumbnailHeight: Long? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultLocation").prop("id", id).prop("latitude", latitude).prop("longitude", longitude).prop("title", title).prop("horizontalAccuracy", horizontalAccuracy).prop("livePeriod", livePeriod).prop("heading", heading).prop("proximityAlertRadius", proximityAlertRadius).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).prop("thumbnailUrl", thumbnailUrl).prop("thumbnailWidth", thumbnailWidth).prop("thumbnailHeight", thumbnailHeight).toString() +} + +/** + * Represents a venue. By default, the venue will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the venue. + * @param id Unique identifier for this result, 1-64 Bytes + * @param latitude Latitude of the venue location in degrees + * @param longitude Longitude of the venue location in degrees + * @param title Title of the venue + * @param address Address of the venue + * @param foursquareId Optional. Foursquare identifier of the venue if known + * @param foursquareType Optional. Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Optional. Google Places identifier of the venue + * @param googlePlaceType Optional. Google Places type of the venue. (See supported types.) + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the venue + * @param thumbnailUrl Optional. Url of the thumbnail for the result + * @param thumbnailWidth Optional. Thumbnail width + * @param thumbnailHeight Optional. Thumbnail height + */ +@Serializable +@SerialName("venue") +data class InlineQueryResultVenue( + val id: InlineQueryResultId, + val latitude: Double, + val longitude: Double, + val title: String, + val address: String, + val foursquareId: String? = null, + val foursquareType: String? = null, + val googlePlaceId: String? = null, + val googlePlaceType: String? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, + val thumbnailUrl: String? = null, + val thumbnailWidth: Long? = null, + val thumbnailHeight: Long? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultVenue").prop("id", id).prop("latitude", latitude).prop("longitude", longitude).prop("title", title).prop("address", address).prop("foursquareId", foursquareId).prop("foursquareType", foursquareType).prop("googlePlaceId", googlePlaceId).prop("googlePlaceType", googlePlaceType).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).prop("thumbnailUrl", thumbnailUrl).prop("thumbnailWidth", thumbnailWidth).prop("thumbnailHeight", thumbnailHeight).toString() +} + +/** + * Represents a contact with a phone number. By default, this contact will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the contact. + * @param id Unique identifier for this result, 1-64 Bytes + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param lastName Optional. Contact's last name + * @param vcard Optional. Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the contact + * @param thumbnailUrl Optional. Url of the thumbnail for the result + * @param thumbnailWidth Optional. Thumbnail width + * @param thumbnailHeight Optional. Thumbnail height + */ +@Serializable +@SerialName("contact") +data class InlineQueryResultContact( + val id: InlineQueryResultId, + val phoneNumber: String, + val firstName: String, + val lastName: String? = null, + val vcard: String? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, + val thumbnailUrl: String? = null, + val thumbnailWidth: Long? = null, + val thumbnailHeight: Long? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultContact").prop("id", id).prop("phoneNumber", phoneNumber).prop("firstName", firstName).prop("lastName", lastName).prop("vcard", vcard).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).prop("thumbnailUrl", thumbnailUrl).prop("thumbnailWidth", thumbnailWidth).prop("thumbnailHeight", thumbnailHeight).toString() +} + +/** + * Represents a Game. + * @param id Unique identifier for this result, 1-64 bytes + * @param gameShortName Short name of the game + * @param replyMarkup Optional. Inline keyboard attached to the message + */ +@Serializable +@SerialName("game") +data class InlineQueryResultGame( + val id: InlineQueryResultId, + val gameShortName: String, + val replyMarkup: InlineKeyboardMarkup? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultGame").prop("id", id).prop("gameShortName", gameShortName).prop("replyMarkup", replyMarkup).toString() +} + +/** + * Represents a link to a photo stored on the Telegram servers. By default, this photo will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo. + * @param id Unique identifier for this result, 1-64 bytes + * @param photoFileId A valid file identifier of the photo + * @param title Optional. Title for the result + * @param description Optional. Short description of the result + * @param caption Optional. Caption of the photo to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the photo + */ +@Serializable +@SerialName("photo") +data class InlineQueryResultCachedPhoto( + val id: InlineQueryResultId, + val photoFileId: FileId, + val title: String? = null, + val description: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedPhoto").prop("id", id).prop("photoFileId", photoFileId).prop("title", title).prop("description", description).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to an animated GIF file stored on the Telegram servers. By default, this animated GIF file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with specified content instead of the animation. + * @param id Unique identifier for this result, 1-64 bytes + * @param gifFileId A valid file identifier for the GIF file + * @param title Optional. Title for the result + * @param caption Optional. Caption of the GIF file to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the GIF animation + */ +@Serializable +@SerialName("gif") +data class InlineQueryResultCachedGif( + val id: InlineQueryResultId, + val gifFileId: FileId, + val title: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedGif").prop("id", id).prop("gifFileId", gifFileId).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a video animation (H.264/MPEG-4 AVC video without sound) stored on the Telegram servers. By default, this animated MPEG-4 file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation. + * @param id Unique identifier for this result, 1-64 bytes + * @param mpeg4FileId A valid file identifier for the MPEG4 file + * @param title Optional. Title for the result + * @param caption Optional. Caption of the MPEG-4 file to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the video animation + */ +@Serializable +@SerialName("mpeg4_gif") +data class InlineQueryResultCachedMpeg4Gif( + val id: InlineQueryResultId, + val mpeg4FileId: FileId, + val title: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedMpeg4Gif").prop("id", id).prop("mpeg4FileId", mpeg4FileId).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a sticker stored on the Telegram servers. By default, this sticker will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the sticker. + * @param id Unique identifier for this result, 1-64 bytes + * @param stickerFileId A valid file identifier of the sticker + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the sticker + */ +@Serializable +@SerialName("sticker") +data class InlineQueryResultCachedSticker( + val id: InlineQueryResultId, + val stickerFileId: FileId, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedSticker").prop("id", id).prop("stickerFileId", stickerFileId).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a file stored on the Telegram servers. By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. + * @param id Unique identifier for this result, 1-64 bytes + * @param title Title for the result + * @param documentFileId A valid file identifier for the file + * @param description Optional. Short description of the result + * @param caption Optional. Caption of the document to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the file + */ +@Serializable +@SerialName("document") +data class InlineQueryResultCachedDocument( + val id: InlineQueryResultId, + val title: String, + val documentFileId: FileId, + val description: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedDocument").prop("id", id).prop("title", title).prop("documentFileId", documentFileId).prop("description", description).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a video file stored on the Telegram servers. By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video. + * @param id Unique identifier for this result, 1-64 bytes + * @param videoFileId A valid file identifier for the video file + * @param title Title for the result + * @param description Optional. Short description of the result + * @param caption Optional. Caption of the video to be sent, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the video + */ +@Serializable +@SerialName("video") +data class InlineQueryResultCachedVideo( + val id: InlineQueryResultId, + val videoFileId: FileId, + val title: String, + val description: String? = null, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedVideo").prop("id", id).prop("videoFileId", videoFileId).prop("title", title).prop("description", description).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to a voice message stored on the Telegram servers. By default, this voice message will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the voice message. + * @param id Unique identifier for this result, 1-64 bytes + * @param voiceFileId A valid file identifier for the voice message + * @param title Voice message title + * @param caption Optional. Caption, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the voice message + */ +@Serializable +@SerialName("voice") +data class InlineQueryResultCachedVoice( + val id: InlineQueryResultId, + val voiceFileId: FileId, + val title: String, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedVoice").prop("id", id).prop("voiceFileId", voiceFileId).prop("title", title).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * Represents a link to an MP3 audio file stored on the Telegram servers. By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio. + * @param id Unique identifier for this result, 1-64 bytes + * @param audioFileId A valid file identifier for the audio file + * @param caption Optional. Caption, 0-1024 characters after entities parsing + * @param parseMode Optional. Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities Optional. List of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup Optional. Inline keyboard attached to the message + * @param inputMessageContent Optional. Content of the message to be sent instead of the audio + */ +@Serializable +@SerialName("audio") +data class InlineQueryResultCachedAudio( + val id: InlineQueryResultId, + val audioFileId: FileId, + val caption: String? = null, + val parseMode: ParseMode? = null, + val captionEntities: List? = null, + val replyMarkup: InlineKeyboardMarkup? = null, + val inputMessageContent: InputMessageContent? = null, +) : InlineQueryResult() { + override fun toString() = DebugStringBuilder("InlineQueryResultCachedAudio").prop("id", id).prop("audioFileId", audioFileId).prop("caption", caption).prop("parseMode", parseMode).prop("captionEntities", captionEntities).prop("replyMarkup", replyMarkup).prop("inputMessageContent", inputMessageContent).toString() +} + +/** + * This object represents the content of a message to be sent as a result of an inline query. Telegram clients currently support the following 5 types: + * - [InputTextMessageContent] + * - [InputLocationMessageContent] + * - [InputVenueMessageContent] + * - [InputContactMessageContent] + * - [InputInvoiceMessageContent] + */ +@Serializable(with = InputMessageContentSerializer::class) +sealed class InputMessageContent + +object InputMessageContentSerializer : JsonContentPolymorphicSerializer(InputMessageContent::class) { + override fun selectDeserializer(element: JsonElement): DeserializationStrategy { + val json = element.jsonObject + return when { + "message_text" in json -> InputTextMessageContent.serializer() + "horizontal_accuracy" in json -> InputLocationMessageContent.serializer() + "address" in json -> InputVenueMessageContent.serializer() + "phone_number" in json -> InputContactMessageContent.serializer() + "payload" in json -> InputInvoiceMessageContent.serializer() + else -> error("Failed to deserialize an update type: $json") + } + } +} + +/** + * Represents the content of a text message to be sent as the result of an inline query. + * @param messageText Text of the message to be sent, 1-4096 characters + * @param parseMode Optional. Mode for parsing entities in the message text. See formatting options for more details. + * @param entities Optional. List of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Optional. Disables link previews for links in the sent message + */ +@Serializable +data class InputTextMessageContent( + val messageText: String, + val parseMode: ParseMode? = null, + val entities: List? = null, + val disableWebPagePreview: Boolean? = null, +) : InputMessageContent() { + override fun toString() = DebugStringBuilder("InputTextMessageContent").prop("messageText", messageText).prop("parseMode", parseMode).prop("entities", entities).prop("disableWebPagePreview", disableWebPagePreview).toString() +} + +/** + * Represents the content of a location message to be sent as the result of an inline query. + * @param latitude Latitude of the location in degrees + * @param longitude Longitude of the location in degrees + * @param horizontalAccuracy Optional. The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Optional. Period in seconds for which the location can be updated, should be between 60 and 86400. + * @param heading Optional. For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius Optional. For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + */ +@Serializable +data class InputLocationMessageContent( + val latitude: Double, + val longitude: Double, + val horizontalAccuracy: Double? = null, + val livePeriod: Long? = null, + val heading: Long? = null, + val proximityAlertRadius: Long? = null, +) : InputMessageContent() { + override fun toString() = DebugStringBuilder("InputLocationMessageContent").prop("latitude", latitude).prop("longitude", longitude).prop("horizontalAccuracy", horizontalAccuracy).prop("livePeriod", livePeriod).prop("heading", heading).prop("proximityAlertRadius", proximityAlertRadius).toString() +} + +/** + * Represents the content of a venue message to be sent as the result of an inline query. + * @param latitude Latitude of the venue in degrees + * @param longitude Longitude of the venue in degrees + * @param title Name of the venue + * @param address Address of the venue + * @param foursquareId Optional. Foursquare identifier of the venue, if known + * @param foursquareType Optional. Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Optional. Google Places identifier of the venue + * @param googlePlaceType Optional. Google Places type of the venue. (See supported types.) + */ +@Serializable +data class InputVenueMessageContent( + val latitude: Double, + val longitude: Double, + val title: String, + val address: String, + val foursquareId: String? = null, + val foursquareType: String? = null, + val googlePlaceId: String? = null, + val googlePlaceType: String? = null, +) : InputMessageContent() { + override fun toString() = DebugStringBuilder("InputVenueMessageContent").prop("latitude", latitude).prop("longitude", longitude).prop("title", title).prop("address", address).prop("foursquareId", foursquareId).prop("foursquareType", foursquareType).prop("googlePlaceId", googlePlaceId).prop("googlePlaceType", googlePlaceType).toString() +} + +/** + * Represents the content of a contact message to be sent as the result of an inline query. + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param lastName Optional. Contact's last name + * @param vcard Optional. Additional data about the contact in the form of a vCard, 0-2048 bytes + */ +@Serializable +data class InputContactMessageContent( + val phoneNumber: String, + val firstName: String, + val lastName: String? = null, + val vcard: String? = null, +) : InputMessageContent() { + override fun toString() = DebugStringBuilder("InputContactMessageContent").prop("phoneNumber", phoneNumber).prop("firstName", firstName).prop("lastName", lastName).prop("vcard", vcard).toString() +} + +/** + * Represents the content of an invoice message to be sent as the result of an inline query. + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount Optional. The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts Optional. A JSON-serialized array of suggested amounts of tip in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData Optional. A JSON-serialized object for data about the invoice, which will be shared with the payment provider. A detailed description of the required fields should be provided by the payment provider. + * @param photoUrl Optional. URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Optional. Photo size in bytes + * @param photoWidth Optional. Photo width + * @param photoHeight Optional. Photo height + * @param needName Optional. Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Optional. Pass True if you require the user's phone number to complete the order + * @param needEmail Optional. Pass True if you require the user's email address to complete the order + * @param needShippingAddress Optional. Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Optional. Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Optional. Pass True if the user's email address should be sent to provider + * @param isFlexible Optional. Pass True if the final price depends on the shipping method + */ +@Serializable +data class InputInvoiceMessageContent( + val title: String, + val description: String, + val payload: String, + val providerToken: String, + val currency: String, + val prices: List, + val maxTipAmount: Long? = null, + val suggestedTipAmounts: List? = null, + val providerData: String? = null, + val photoUrl: String? = null, + val photoSize: Long? = null, + val photoWidth: Long? = null, + val photoHeight: Long? = null, + val needName: Boolean? = null, + val needPhoneNumber: Boolean? = null, + val needEmail: Boolean? = null, + val needShippingAddress: Boolean? = null, + val sendPhoneNumberToProvider: Boolean? = null, + val sendEmailToProvider: Boolean? = null, + val isFlexible: Boolean? = null, +) : InputMessageContent() { + override fun toString() = DebugStringBuilder("InputInvoiceMessageContent").prop("title", title).prop("description", description).prop("payload", payload).prop("providerToken", providerToken).prop("currency", currency).prop("prices", prices).prop("maxTipAmount", maxTipAmount).prop("suggestedTipAmounts", suggestedTipAmounts).prop("providerData", providerData).prop("photoUrl", photoUrl).prop("photoSize", photoSize).prop("photoWidth", photoWidth).prop("photoHeight", photoHeight).prop("needName", needName).prop("needPhoneNumber", needPhoneNumber).prop("needEmail", needEmail).prop("needShippingAddress", needShippingAddress).prop("sendPhoneNumberToProvider", sendPhoneNumberToProvider).prop("sendEmailToProvider", sendEmailToProvider).prop("isFlexible", isFlexible).toString() +} + +/** + * Represents a result of an inline query that was chosen by the user and sent to their chat partner. + * @param resultId The unique identifier for the result that was chosen + * @param from The user that chose the result + * @param query The query that was used to obtain the result + * @param location Optional. Sender location, only for bots that require user location + * @param inlineMessageId Optional. Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. Will be also received in callback queries and can be used to edit the message. + */ +@Serializable +data class ChosenInlineResult( + val resultId: InlineQueryResultId, + val from: User, + val query: String, + val location: Location? = null, + val inlineMessageId: InlineMessageId? = null, +) { + override fun toString() = DebugStringBuilder("ChosenInlineResult").prop("resultId", resultId).prop("from", from).prop("query", query).prop("location", location).prop("inlineMessageId", inlineMessageId).toString() +} + +/** + * Describes an inline message sent by a Web App on behalf of a user. + * @param inlineMessageId Optional. Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. + */ +@Serializable +data class SentWebAppMessage( + val inlineMessageId: InlineMessageId? = null, +) { + override fun toString() = DebugStringBuilder("SentWebAppMessage").prop("inlineMessageId", inlineMessageId).toString() +} + +/** + * This object represents a portion of the price for goods or services. + * @param label Portion label + * @param amount Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). + */ +@Serializable +data class LabeledPrice( + val label: String, + val amount: Long, +) { + override fun toString() = DebugStringBuilder("LabeledPrice").prop("label", label).prop("amount", amount).toString() +} + +/** + * This object contains basic information about an invoice. + * @param title Product name + * @param description Product description + * @param startParameter Unique bot deep-linking parameter that can be used to generate this invoice + * @param currency Three-letter ISO 4217 currency code + * @param totalAmount Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). + */ +@Serializable +data class Invoice( + val title: String, + val description: String, + val startParameter: String, + val currency: String, + val totalAmount: Long, +) { + override fun toString() = DebugStringBuilder("Invoice").prop("title", title).prop("description", description).prop("startParameter", startParameter).prop("currency", currency).prop("totalAmount", totalAmount).toString() +} + +/** + * This object represents a shipping address. + * @param countryCode Two-letter ISO 3166-1 alpha-2 country code + * @param state State, if applicable + * @param city City + * @param streetLine1 First line for the address + * @param streetLine2 Second line for the address + * @param postCode Address post code + */ +@Serializable +data class ShippingAddress( + val countryCode: String, + val state: String, + val city: String, + val streetLine1: String, + val streetLine2: String, + val postCode: String, +) { + override fun toString() = DebugStringBuilder("ShippingAddress").prop("countryCode", countryCode).prop("state", state).prop("city", city).prop("streetLine1", streetLine1).prop("streetLine2", streetLine2).prop("postCode", postCode).toString() +} + +/** + * This object represents information about an order. + * @param name Optional. User name + * @param phoneNumber Optional. User's phone number + * @param email Optional. User email + * @param shippingAddress Optional. User shipping address + */ +@Serializable +data class OrderInfo( + val name: String? = null, + val phoneNumber: String? = null, + val email: String? = null, + val shippingAddress: ShippingAddress? = null, +) { + override fun toString() = DebugStringBuilder("OrderInfo").prop("name", name).prop("phoneNumber", phoneNumber).prop("email", email).prop("shippingAddress", shippingAddress).toString() +} + +/** + * This object represents one shipping option. + * @param id Shipping option identifier + * @param title Option title + * @param prices List of price portions + */ +@Serializable +data class ShippingOption( + val id: String, + val title: String, + val prices: List, +) { + override fun toString() = DebugStringBuilder("ShippingOption").prop("id", id).prop("title", title).prop("prices", prices).toString() +} + +/** + * This object contains basic information about a successful payment. + * @param currency Three-letter ISO 4217 currency code + * @param totalAmount Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). + * @param invoicePayload Bot specified invoice payload + * @param telegramPaymentChargeId Telegram payment identifier + * @param providerPaymentChargeId Provider payment identifier + * @param shippingOptionId Optional. Identifier of the shipping option chosen by the user + * @param orderInfo Optional. Order information provided by the user + */ +@Serializable +data class SuccessfulPayment( + val currency: String, + val totalAmount: Long, + val invoicePayload: String, + val telegramPaymentChargeId: String, + val providerPaymentChargeId: String, + val shippingOptionId: String? = null, + val orderInfo: OrderInfo? = null, +) { + override fun toString() = DebugStringBuilder("SuccessfulPayment").prop("currency", currency).prop("totalAmount", totalAmount).prop("invoicePayload", invoicePayload).prop("telegramPaymentChargeId", telegramPaymentChargeId).prop("providerPaymentChargeId", providerPaymentChargeId).prop("shippingOptionId", shippingOptionId).prop("orderInfo", orderInfo).toString() +} + +/** + * This object contains information about an incoming shipping query. + * @param id Unique query identifier + * @param from User who sent the query + * @param invoicePayload Bot specified invoice payload + * @param shippingAddress User specified shipping address + */ +@Serializable +data class ShippingQuery( + val id: ShippingQueryId, + val from: User, + val invoicePayload: String, + val shippingAddress: ShippingAddress, +) { + override fun toString() = DebugStringBuilder("ShippingQuery").prop("id", id).prop("from", from).prop("invoicePayload", invoicePayload).prop("shippingAddress", shippingAddress).toString() +} + +/** + * This object contains information about an incoming pre-checkout query. + * @param id Unique query identifier + * @param from User who sent the query + * @param currency Three-letter ISO 4217 currency code + * @param totalAmount Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). + * @param invoicePayload Bot specified invoice payload + * @param shippingOptionId Optional. Identifier of the shipping option chosen by the user + * @param orderInfo Optional. Order information provided by the user + */ +@Serializable +data class PreCheckoutQuery( + val id: String, + val from: User, + val currency: String, + val totalAmount: Long, + val invoicePayload: String, + val shippingOptionId: String? = null, + val orderInfo: OrderInfo? = null, +) { + override fun toString() = DebugStringBuilder("PreCheckoutQuery").prop("id", id).prop("from", from).prop("currency", currency).prop("totalAmount", totalAmount).prop("invoicePayload", invoicePayload).prop("shippingOptionId", shippingOptionId).prop("orderInfo", orderInfo).toString() +} + +/** + * Describes Telegram Passport data shared with the bot by the user. + * @param data Array with information about documents and other Telegram Passport elements that was shared with the bot + * @param credentials Encrypted credentials required to decrypt the data + */ +@Serializable +data class PassportData( + val data: List, + val credentials: EncryptedCredentials, +) { + override fun toString() = DebugStringBuilder("PassportData").prop("data", data).prop("credentials", credentials).toString() +} + +/** + * This object represents a file uploaded to Telegram Passport. Currently all Telegram Passport files are in JPEG format when decrypted and don't exceed 10MB. + * @param fileId Identifier for this file, which can be used to download or reuse the file + * @param fileUniqueId Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file. + * @param fileSize File size in bytes + * @param fileDate Unix time when the file was uploaded + */ +@Serializable +data class PassportFile( + val fileId: FileId, + val fileUniqueId: FileUniqueId, + val fileSize: Long, + val fileDate: UnixTimestamp, +) { + override fun toString() = DebugStringBuilder("PassportFile").prop("fileId", fileId).prop("fileUniqueId", fileUniqueId).prop("fileSize", fileSize).prop("fileDate", fileDate).toString() +} + +/** + * Describes documents or other Telegram Passport elements shared with the bot by the user. + * @param type Element type. One of “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport”, “address”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration”, “phone_number”, “email”. + * @param hash Base64-encoded element hash for using in PassportElementErrorUnspecified + * @param data Optional. Base64-encoded encrypted Telegram Passport element data provided by the user, available for “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport” and “address” types. Can be decrypted and verified using the accompanying EncryptedCredentials. + * @param phoneNumber Optional. User's verified phone number, available only for “phone_number” type + * @param email Optional. User's verified email address, available only for “email” type + * @param files Optional. Array of encrypted files with documents provided by the user, available for “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration” and “temporary_registration” types. Files can be decrypted and verified using the accompanying EncryptedCredentials. + * @param frontSide Optional. Encrypted file with the front side of the document, provided by the user. Available for “passport”, “driver_license”, “identity_card” and “internal_passport”. The file can be decrypted and verified using the accompanying EncryptedCredentials. + * @param reverseSide Optional. Encrypted file with the reverse side of the document, provided by the user. Available for “driver_license” and “identity_card”. The file can be decrypted and verified using the accompanying EncryptedCredentials. + * @param selfie Optional. Encrypted file with the selfie of the user holding a document, provided by the user; available for “passport”, “driver_license”, “identity_card” and “internal_passport”. The file can be decrypted and verified using the accompanying EncryptedCredentials. + * @param translation Optional. Array of encrypted files with translated versions of documents provided by the user. Available if requested for “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration” and “temporary_registration” types. Files can be decrypted and verified using the accompanying EncryptedCredentials. + */ +@Serializable +data class EncryptedPassportElement( + val type: String, + val hash: String, + val data: String? = null, + val phoneNumber: String? = null, + val email: String? = null, + val files: List? = null, + val frontSide: PassportFile? = null, + val reverseSide: PassportFile? = null, + val selfie: PassportFile? = null, + val translation: List? = null, +) { + override fun toString() = DebugStringBuilder("EncryptedPassportElement").prop("type", type).prop("hash", hash).prop("data", data).prop("phoneNumber", phoneNumber).prop("email", email).prop("files", files).prop("frontSide", frontSide).prop("reverseSide", reverseSide).prop("selfie", selfie).prop("translation", translation).toString() +} + +/** + * Describes data required for decrypting and authenticating EncryptedPassportElement. See the Telegram Passport Documentation for a complete description of the data decryption and authentication processes. + * @param data Base64-encoded encrypted JSON-serialized data with unique user's payload, data hashes and secrets required for EncryptedPassportElement decryption and authentication + * @param hash Base64-encoded data hash for data authentication + * @param secret Base64-encoded secret, encrypted with the bot's public RSA key, required for data decryption + */ +@Serializable +data class EncryptedCredentials( + val data: String, + val hash: String, + val secret: String, +) { + override fun toString() = DebugStringBuilder("EncryptedCredentials").prop("data", data).prop("hash", hash).prop("secret", secret).toString() +} + +/** + * This object represents an error in the Telegram Passport element which was submitted that should be resolved by the user. It should be one of: + * - [PassportElementErrorDataField] + * - [PassportElementErrorFrontSide] + * - [PassportElementErrorReverseSide] + * - [PassportElementErrorSelfie] + * - [PassportElementErrorFile] + * - [PassportElementErrorFiles] + * - [PassportElementErrorTranslationFile] + * - [PassportElementErrorTranslationFiles] + * - [PassportElementErrorUnspecified] + */ +@Serializable +@JsonClassDiscriminator("type") +sealed class PassportElementError + +/** + * Represents an issue in one of the data fields that was provided by the user. The error is considered resolved when the field's value changes. + * @param source Error source, must be data + * @param type The section of the user's Telegram Passport which has the error, one of “personal_details”, “passport”, “driver_license”, “identity_card”, “internal_passport”, “address” + * @param fieldName Name of the data field which has the error + * @param dataHash Base64-encoded data hash + * @param message Error message + */ +@Serializable +data class PassportElementErrorDataField( + val source: String, + val type: String, + val fieldName: String, + val dataHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorDataField").prop("source", source).prop("type", type).prop("fieldName", fieldName).prop("dataHash", dataHash).prop("message", message).toString() +} + +/** + * Represents an issue with the front side of a document. The error is considered resolved when the file with the front side of the document changes. + * @param source Error source, must be front_side + * @param type The section of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport” + * @param fileHash Base64-encoded hash of the file with the front side of the document + * @param message Error message + */ +@Serializable +data class PassportElementErrorFrontSide( + val source: String, + val type: String, + val fileHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorFrontSide").prop("source", source).prop("type", type).prop("fileHash", fileHash).prop("message", message).toString() +} + +/** + * Represents an issue with the reverse side of a document. The error is considered resolved when the file with reverse side of the document changes. + * @param source Error source, must be reverse_side + * @param type The section of the user's Telegram Passport which has the issue, one of “driver_license”, “identity_card” + * @param fileHash Base64-encoded hash of the file with the reverse side of the document + * @param message Error message + */ +@Serializable +data class PassportElementErrorReverseSide( + val source: String, + val type: String, + val fileHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorReverseSide").prop("source", source).prop("type", type).prop("fileHash", fileHash).prop("message", message).toString() +} + +/** + * Represents an issue with the selfie with a document. The error is considered resolved when the file with the selfie changes. + * @param source Error source, must be selfie + * @param type The section of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport” + * @param fileHash Base64-encoded hash of the file with the selfie + * @param message Error message + */ +@Serializable +data class PassportElementErrorSelfie( + val source: String, + val type: String, + val fileHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorSelfie").prop("source", source).prop("type", type).prop("fileHash", fileHash).prop("message", message).toString() +} + +/** + * Represents an issue with a document scan. The error is considered resolved when the file with the document scan changes. + * @param source Error source, must be file + * @param type The section of the user's Telegram Passport which has the issue, one of “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration” + * @param fileHash Base64-encoded file hash + * @param message Error message + */ +@Serializable +data class PassportElementErrorFile( + val source: String, + val type: String, + val fileHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorFile").prop("source", source).prop("type", type).prop("fileHash", fileHash).prop("message", message).toString() +} + +/** + * Represents an issue with a list of scans. The error is considered resolved when the list of files containing the scans changes. + * @param source Error source, must be files + * @param type The section of the user's Telegram Passport which has the issue, one of “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration” + * @param fileHashes List of base64-encoded file hashes + * @param message Error message + */ +@Serializable +data class PassportElementErrorFiles( + val source: String, + val type: String, + val fileHashes: List, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorFiles").prop("source", source).prop("type", type).prop("fileHashes", fileHashes).prop("message", message).toString() +} + +/** + * Represents an issue with one of the files that constitute the translation of a document. The error is considered resolved when the file changes. + * @param source Error source, must be translation_file + * @param type Type of element of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration” + * @param fileHash Base64-encoded file hash + * @param message Error message + */ +@Serializable +data class PassportElementErrorTranslationFile( + val source: String, + val type: String, + val fileHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorTranslationFile").prop("source", source).prop("type", type).prop("fileHash", fileHash).prop("message", message).toString() +} + +/** + * Represents an issue with the translated version of a document. The error is considered resolved when a file with the document translation change. + * @param source Error source, must be translation_files + * @param type Type of element of the user's Telegram Passport which has the issue, one of “passport”, “driver_license”, “identity_card”, “internal_passport”, “utility_bill”, “bank_statement”, “rental_agreement”, “passport_registration”, “temporary_registration” + * @param fileHashes List of base64-encoded file hashes + * @param message Error message + */ +@Serializable +data class PassportElementErrorTranslationFiles( + val source: String, + val type: String, + val fileHashes: List, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorTranslationFiles").prop("source", source).prop("type", type).prop("fileHashes", fileHashes).prop("message", message).toString() +} + +/** + * Represents an issue in an unspecified place. The error is considered resolved when new data is added. + * @param source Error source, must be unspecified + * @param type Type of element of the user's Telegram Passport which has the issue + * @param elementHash Base64-encoded element hash + * @param message Error message + */ +@Serializable +data class PassportElementErrorUnspecified( + val source: String, + val type: String, + val elementHash: String, + val message: String, +) : PassportElementError() { + override fun toString() = DebugStringBuilder("PassportElementErrorUnspecified").prop("source", source).prop("type", type).prop("elementHash", elementHash).prop("message", message).toString() +} + +/** + * This object represents a game. Use BotFather to create and edit games, their short names will act as unique identifiers. + * @param title Title of the game + * @param description Description of the game + * @param photo Photo that will be displayed in the game message in chats. + * @param text Optional. Brief description of the game or high scores included in the game message. Can be automatically edited to include current high scores for the game when the bot calls setGameScore, or manually edited using editMessageText. 0-4096 characters. + * @param textEntities Optional. Special entities that appear in text, such as usernames, URLs, bot commands, etc. + * @param animation Optional. Animation that will be displayed in the game message in chats. Upload via BotFather + */ +@Serializable +data class Game( + val title: String, + val description: String, + val photo: List, + val text: String? = null, + val textEntities: List? = null, + val animation: Animation? = null, +) { + override fun toString() = DebugStringBuilder("Game").prop("title", title).prop("description", description).prop("photo", photo).prop("text", text).prop("textEntities", textEntities).prop("animation", animation).toString() +} + +/** + * A placeholder, currently holds no information. Use BotFather to set up your game. + */ +@Serializable +data object CallbackGame + +/** + * This object represents one row of the high scores table for a game. + * @param position Position in high score table for the game + * @param user User + * @param score Score + */ +@Serializable +data class GameHighScore( + val position: Long, + val user: User, + val score: Long, +) { + override fun toString() = DebugStringBuilder("GameHighScore").prop("position", position).prop("user", user).prop("score", score).toString() +} + +/** + * This object represents an [inline keyboard](https://core.telegram.org/bots/features#inline-keyboards). + * - [InlineKeyboardMarkup] + * - [ReplyKeyboardMarkup] + * - [ReplyKeyboardRemove] + * - [ForceReply] + */ +@Serializable(with = ReplyMarkupSerializer::class) +sealed class ReplyMarkup + +object ReplyMarkupSerializer : JsonContentPolymorphicSerializer(ReplyMarkup::class) { + override fun selectDeserializer(element: JsonElement): DeserializationStrategy { + val json = element.jsonObject + return when { + "inline_keyboard" in json -> InlineKeyboardMarkup.serializer() + "keyboard" in json -> ReplyKeyboardMarkup.serializer() + "remove_keyboard" in json -> ReplyKeyboardRemove.serializer() + "force_reply" in json -> ForceReply.serializer() + else -> error("Failed to deserialize an update type: $json") + } + } +} + +/** + * Chat identifier. + */ +@Serializable +@JvmInline +value class ChatId(val value: Long) { + override fun toString(): String = "ChatId(${quoteWhenWhitespace(value)})" +} + +/** + * User identifier. + */ +@Serializable +@JvmInline +value class UserId(val value: Long) { + override fun toString(): String = "UserId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque message identifier. + */ +@Serializable +@JvmInline +value class MessageId(val value: Long) { + override fun toString(): String = "MessageId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque inline message identifier. + */ +@Serializable +@JvmInline +value class InlineMessageId(val value: String) { + override fun toString(): String = "InlineMessageId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque message thread identifier. + */ +@Serializable +@JvmInline +value class MessageThreadId(val value: Long) { + override fun toString(): String = "MessageThreadId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque [CallbackQuery] identifier. + */ +@Serializable +@JvmInline +value class CallbackQueryId(val value: String) { + override fun toString(): String = "CallbackQueryId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque [InlineQuery] identifier. + */ +@Serializable +@JvmInline +value class InlineQueryId(val value: String) { + override fun toString(): String = "InlineQueryId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque [InlineQueryResult] identifier. + */ +@Serializable +@JvmInline +value class InlineQueryResultId(val value: String) { + override fun toString(): String = "InlineQueryResultId(${quoteWhenWhitespace(value)})" +} + +/** + * Identifier for a file, which can be used to download or reuse the file. + */ +@Serializable +@JvmInline +value class FileId(val value: String) { + override fun toString(): String = "FileId(${quoteWhenWhitespace(value)})" +} + +/** + * Unique identifier for a file, which is supposed to be the same over time and for different bots. + * + * It can't be used to download or reuse the file. + */ +@Serializable +@JvmInline +value class FileUniqueId(val value: String) { + override fun toString(): String = "FileUniqueId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque [ShippingQuery] identifier. + */ +@Serializable +@JvmInline +value class ShippingQueryId(val value: String) { + override fun toString(): String = "ShippingQueryId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque web-app query identifier. + */ +@Serializable +@JvmInline +value class WebAppQueryId(val value: String) { + override fun toString(): String = "WebAppQueryId(${quoteWhenWhitespace(value)})" +} + +/** + * Opaque custom emoji identifier. + */ +@Serializable +@JvmInline +value class CustomEmojiId(val value: String) { + override fun toString(): String = "CustomEmojiId(${quoteWhenWhitespace(value)})" +} + +/** + * Duration in seconds. + */ +@Serializable +@JvmInline +value class Seconds(val value: Long) { + override fun toString(): String = "Seconds(${quoteWhenWhitespace(value)})" +} + +/** + * Unix time - **number of seconds** that have elapsed since 00:00:00 UTC on 1 January 1970. + */ +@Serializable +@JvmInline +value class UnixTimestamp(val value: Long) { + override fun toString(): String = "UnixTimestamp(${quoteWhenWhitespace(value)})" +} + diff --git a/src/main/generated-kotlin/me/alllex/tbot/api/model/WithContextMethods.kt b/src/main/generated-kotlin/me/alllex/tbot/api/model/WithContextMethods.kt new file mode 100644 index 0000000..99f6607 --- /dev/null +++ b/src/main/generated-kotlin/me/alllex/tbot/api/model/WithContextMethods.kt @@ -0,0 +1,3092 @@ +package me.alllex.tbot.api.model + +import me.alllex.tbot.api.client.* + + + +/** + * Use this method to receive incoming updates using long polling (wiki). Returns an Array of Update objects. + * + * @param offset Identifier of the first update to be returned. Must be greater by one than the highest among the identifiers of previously received updates. By default, updates starting with the earliest unconfirmed update are returned. An update is considered confirmed as soon as getUpdates is called with an offset higher than its update_id. The negative offset can be specified to retrieve updates starting from -offset update from the end of the updates queue. All previous updates will be forgotten. + * @param limit Limits the number of updates to be retrieved. Values between 1-100 are accepted. Defaults to 100. + * @param timeout Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the getUpdates, so unwanted updates may be received for a short period of time. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getUpdates( + offset: Long? = null, + limit: Long? = null, + timeout: Seconds? = null, + allowedUpdates: List? = null, +): List = + botApiClient.tryGetUpdates(GetUpdatesRequest(offset, limit, timeout, allowedUpdates)).getResultOrThrow() + +/** + * Use this method to specify a URL and receive incoming updates via an outgoing webhook. Whenever there is an update for the bot, we will send an HTTPS POST request to the specified URL, containing a JSON-serialized Update. In case of an unsuccessful request, we will give up after a reasonable amount of attempts. Returns True on success. + * + * If you'd like to make sure that the webhook was set by you, you can specify secret data in the parameter secret_token. If specified, the request will contain a header “X-Telegram-Bot-Api-Secret-Token” with the secret token as content. + * + * @param url HTTPS URL to send updates to. Use an empty string to remove webhook integration + * @param certificate Upload your public key certificate so that the root certificate in use can be checked. See our self-signed guide for details. + * @param ipAddress The fixed IP address which will be used to send webhook requests instead of the IP address resolved through DNS + * @param maxConnections The maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery, 1-100. Defaults to 40. Use lower values to limit the load on your bot's server, and higher values to increase your bot's throughput. + * @param allowedUpdates A JSON-serialized list of the update types you want your bot to receive. For example, specify [“message”, “edited_channel_post”, “callback_query”] to only receive updates of these types. See Update for a complete list of available update types. Specify an empty list to receive all update types except chat_member (default). If not specified, the previous setting will be used. Please note that this parameter doesn't affect updates created before the call to the setWebhook, so unwanted updates may be received for a short period of time. + * @param dropPendingUpdates Pass True to drop all pending updates + * @param secretToken A secret token to be sent in a header “X-Telegram-Bot-Api-Secret-Token” in every webhook request, 1-256 characters. Only characters A-Z, a-z, 0-9, _ and - are allowed. The header is useful to ensure that the request comes from a webhook set by you. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setWebhook( + url: String, + certificate: String? = null, + ipAddress: String? = null, + maxConnections: Long? = null, + allowedUpdates: List? = null, + dropPendingUpdates: Boolean? = null, + secretToken: String? = null, +): Boolean = + botApiClient.trySetWebhook(SetWebhookRequest(url, certificate, ipAddress, maxConnections, allowedUpdates, dropPendingUpdates, secretToken)).getResultOrThrow() + +/** + * Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success. + * + * @param dropPendingUpdates Pass True to drop all pending updates + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteWebhook( + dropPendingUpdates: Boolean? = null, +): Boolean = + botApiClient.tryDeleteWebhook(DeleteWebhookRequest(dropPendingUpdates)).getResultOrThrow() + +/** + * Use this method to get current webhook status. Requires no parameters. On success, returns a WebhookInfo object. If the bot is using getUpdates, will return an object with the url field empty. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getWebhookInfo(): WebhookInfo = + botApiClient.tryGetWebhookInfo().getResultOrThrow() + +/** + * A simple method for testing your bot's authentication token. Requires no parameters. Returns basic information about the bot in form of a User object. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMe(): User = + botApiClient.tryGetMe().getResultOrThrow() + +/** + * Use this method to log out from the cloud Bot API server before launching the bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. After a successful call, you can immediately log in on a local server, but will not be able to log in back to the cloud Bot API server for 10 minutes. Returns True on success. Requires no parameters. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun logOut(): Boolean = + botApiClient.tryLogOut().getResultOrThrow() + +/** + * Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart. The method will return error 429 in the first 10 minutes after the bot is launched. Returns True on success. Requires no parameters. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun close(): Boolean = + botApiClient.tryClose().getResultOrThrow() + +/** + * Use this method to send text messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param text Text of the message to be sent, 1-4096 characters after entities parsing + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendMessage( + chatId: ChatId, + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendMessage(SendMessageRequest(chatId, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendMessage( + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(id, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendMarkdown( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(id, text, messageThreadId, ParseMode.MARKDOWN, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendMarkdownV2( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(id, text, messageThreadId, ParseMode.MARKDOWN_V2, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendHtml( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(id, text, messageThreadId, ParseMode.HTML, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendMessage( + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(this, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendMarkdown( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(this, text, messageThreadId, ParseMode.MARKDOWN, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendMarkdownV2( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(this, text, messageThreadId, ParseMode.MARKDOWN_V2, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendHtml( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(this, text, messageThreadId, ParseMode.HTML, entities, disableWebPagePreview, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.reply( + text: String, + messageThreadId: MessageThreadId? = null, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(chat.id, text, messageThreadId, parseMode, entities, disableWebPagePreview, disableNotification, protectContent, messageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.replyMarkdown( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(chat.id, text, messageThreadId, ParseMode.MARKDOWN, entities, disableWebPagePreview, disableNotification, protectContent, messageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.replyMarkdownV2( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(chat.id, text, messageThreadId, ParseMode.MARKDOWN_V2, entities, disableWebPagePreview, disableNotification, protectContent, messageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.replyHtml( + text: String, + messageThreadId: MessageThreadId? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendMessage(chat.id, text, messageThreadId, ParseMode.HTML, entities, disableWebPagePreview, disableNotification, protectContent, messageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to forward messages of any kind. Service messages can't be forwarded. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the forwarded message from forwarding and saving + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun forwardMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, +): Message = + botApiClient.tryForwardMessage(ForwardMessageRequest(chatId, fromChatId, messageId, messageThreadId, disableNotification, protectContent)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.forward( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, +): Message = + forwardMessage(chatId, chat.id, messageId, messageThreadId, disableNotification, protectContent) + +/** + * Use this method to copy messages of any kind. Service messages and invoice messages can't be copied. A quiz poll can be copied only if the value of the field correct_option_id is known to the bot. The method is analogous to the method forwardMessage, but the copied message doesn't have a link to the original message. Returns the MessageId of the sent message on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param fromChatId Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername) + * @param messageId Message identifier in the chat specified in from_chat_id + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption New caption for media, 0-1024 characters after entities parsing. If not specified, the original caption is kept + * @param parseMode Mode for parsing entities in the new caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the new caption, which can be specified instead of parse_mode + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun copyMessage( + chatId: ChatId, + fromChatId: ChatId, + messageId: MessageId, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): MessageIdResult = + botApiClient.tryCopyMessage(CopyMessageRequest(chatId, fromChatId, messageId, messageThreadId, caption, parseMode, captionEntities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.copyMessage( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): MessageIdResult = + copyMessage(chatId, chat.id, messageId, messageThreadId, caption, parseMode, captionEntities, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send photos. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size. The photo's width and height must not exceed 10000 in total. Width and height ratio must be at most 20. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Photo caption (may also be used when resending photos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the photo caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the photo needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendPhoto( + chatId: ChatId, + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendPhoto(SendPhotoRequest(chatId, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendPhoto( + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendPhoto(id, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendPhoto( + photo: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendPhoto(this, photo, messageThreadId, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send audio files, if you want Telegram clients to display them in the music player. Your audio must be in the .MP3 or .M4A format. On success, the sent Message is returned. Bots can currently send audio files of up to 50 MB in size, this limit may be changed in the future. + * + * For sending voice messages, use the sendVoice method instead. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param audio Audio file to send. Pass a file_id as String to send an audio file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an audio file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Audio caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the audio caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the audio in seconds + * @param performer Performer + * @param title Track name + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendAudio( + chatId: ChatId, + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendAudio(SendAudioRequest(chatId, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendAudio( + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendAudio(id, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendAudio( + audio: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + performer: String? = null, + title: String? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendAudio(this, audio, messageThreadId, caption, parseMode, captionEntities, duration, performer, title, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send general files. On success, the sent Message is returned. Bots can currently send files of any type of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param document File to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Document caption (may also be used when resending documents by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the document caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param disableContentTypeDetection Disables automatic server-side content type detection for files uploaded using multipart/form-data + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendDocument( + chatId: ChatId, + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendDocument(SendDocumentRequest(chatId, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendDocument( + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendDocument(id, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendDocument( + document: String, + messageThreadId: MessageThreadId? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + disableContentTypeDetection: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendDocument(this, document, messageThreadId, thumbnail, caption, parseMode, captionEntities, disableContentTypeDetection, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send video files, Telegram clients support MPEG4 videos (other formats may be sent as Document). On success, the sent Message is returned. Bots can currently send video files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param video Video to send. Pass a file_id as String to send a video that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a video from the Internet, or upload a new video using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param width Video width + * @param height Video height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Video caption (may also be used when resending videos by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the video caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the video needs to be covered with a spoiler animation + * @param supportsStreaming Pass True if the uploaded video is suitable for streaming + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendVideo( + chatId: ChatId, + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendVideo(SendVideoRequest(chatId, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendVideo( + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVideo(id, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendVideo( + video: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + supportsStreaming: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVideo(this, video, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, supportsStreaming, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). On success, the sent Message is returned. Bots can currently send animation files of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param animation Animation to send. Pass a file_id as String to send an animation that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get an animation from the Internet, or upload a new animation using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent animation in seconds + * @param width Animation width + * @param height Animation height + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param caption Animation caption (may also be used when resending animation by file_id), 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the animation caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param hasSpoiler Pass True if the animation needs to be covered with a spoiler animation + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendAnimation( + chatId: ChatId, + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendAnimation(SendAnimationRequest(chatId, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendAnimation( + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendAnimation(id, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendAnimation( + animation: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + width: Long? = null, + height: Long? = null, + thumbnail: String? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + hasSpoiler: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendAnimation(this, animation, messageThreadId, duration, width, height, thumbnail, caption, parseMode, captionEntities, hasSpoiler, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message. For this to work, your audio must be in an .OGG file encoded with OPUS (other formats may be sent as Audio or Document). On success, the sent Message is returned. Bots can currently send voice messages of up to 50 MB in size, this limit may be changed in the future. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param voice Audio file to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files » + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param caption Voice message caption, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the voice message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param duration Duration of the voice message in seconds + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendVoice( + chatId: ChatId, + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendVoice(SendVoiceRequest(chatId, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendVoice( + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVoice(id, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendVoice( + voice: String, + messageThreadId: MessageThreadId? = null, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + duration: Seconds? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVoice(this, voice, messageThreadId, caption, parseMode, captionEntities, duration, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * As of v.4.0, Telegram clients support rounded square MPEG4 videos of up to 1 minute long. Use this method to send video messages. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param videoNote Video note to send. Pass a file_id as String to send a video note that exists on the Telegram servers (recommended) or upload a new video using multipart/form-data. More information on Sending Files ». Sending video notes by a URL is currently unsupported + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param duration Duration of sent video in seconds + * @param length Video width and height, i.e. diameter of the video message + * @param thumbnail Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://” if the thumbnail was uploaded using multipart/form-data under . More information on Sending Files » + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendVideoNote( + chatId: ChatId, + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendVideoNote(SendVideoNoteRequest(chatId, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendVideoNote( + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVideoNote(id, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendVideoNote( + videoNote: String, + messageThreadId: MessageThreadId? = null, + duration: Seconds? = null, + length: Long? = null, + thumbnail: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVideoNote(this, videoNote, messageThreadId, duration, length, thumbnail, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send a group of photos, videos, documents or audios as an album. Documents and audio files can be only grouped in an album with messages of the same type. On success, an array of Messages that were sent is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param media A JSON-serialized array describing messages to be sent, must include 2-10 items + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends messages silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent messages from forwarding and saving + * @param replyToMessageId If the messages are a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendMediaGroup( + chatId: ChatId, + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): List = + botApiClient.trySendMediaGroup(SendMediaGroupRequest(chatId, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendMediaGroup( + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): List = + sendMediaGroup(id, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendMediaGroup( + media: List, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, +): List = + sendMediaGroup(this, media, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply) + +/** + * Use this method to send point on the map. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the location + * @param longitude Longitude of the location + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param livePeriod Period in seconds for which the location will be updated (see Live Locations, should be between 60 and 86400. + * @param heading For live locations, a direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius For live locations, a maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendLocation( + chatId: ChatId, + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendLocation(SendLocationRequest(chatId, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendLocation( + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendLocation(id, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendLocation( + latitude: Double, + longitude: Double, + messageThreadId: MessageThreadId? = null, + horizontalAccuracy: Double? = null, + livePeriod: Long? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendLocation(this, latitude, longitude, messageThreadId, horizontalAccuracy, livePeriod, heading, proximityAlertRadius, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send information about a venue. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param latitude Latitude of the venue + * @param longitude Longitude of the venue + * @param title Name of the venue + * @param address Address of the venue + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param foursquareId Foursquare identifier of the venue + * @param foursquareType Foursquare type of the venue, if known. (For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.) + * @param googlePlaceId Google Places identifier of the venue + * @param googlePlaceType Google Places type of the venue. (See supported types.) + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendVenue( + chatId: ChatId, + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendVenue(SendVenueRequest(chatId, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendVenue( + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVenue(id, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendVenue( + latitude: Double, + longitude: Double, + title: String, + address: String, + messageThreadId: MessageThreadId? = null, + foursquareId: String? = null, + foursquareType: String? = null, + googlePlaceId: String? = null, + googlePlaceType: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendVenue(this, latitude, longitude, title, address, messageThreadId, foursquareId, foursquareType, googlePlaceId, googlePlaceType, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send phone contacts. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param phoneNumber Contact's phone number + * @param firstName Contact's first name + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param lastName Contact's last name + * @param vcard Additional data about the contact in the form of a vCard, 0-2048 bytes + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendContact( + chatId: ChatId, + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendContact(SendContactRequest(chatId, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendContact( + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendContact(id, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendContact( + phoneNumber: String, + firstName: String, + messageThreadId: MessageThreadId? = null, + lastName: String? = null, + vcard: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendContact(this, phoneNumber, firstName, messageThreadId, lastName, vcard, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send a native poll. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param question Poll question, 1-300 characters + * @param options A JSON-serialized list of answer options, 2-10 strings 1-100 characters each + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param isAnonymous True, if the poll needs to be anonymous, defaults to True + * @param type Poll type, “quiz” or “regular”, defaults to “regular” + * @param allowsMultipleAnswers True, if the poll allows multiple answers, ignored for polls in quiz mode, defaults to False + * @param correctOptionId 0-based identifier of the correct answer option, required for polls in quiz mode + * @param explanation Text that is shown when a user chooses an incorrect answer or taps on the lamp icon in a quiz-style poll, 0-200 characters with at most 2 line feeds after entities parsing + * @param explanationParseMode Mode for parsing entities in the explanation. See formatting options for more details. + * @param explanationEntities A JSON-serialized list of special entities that appear in the poll explanation, which can be specified instead of parse_mode + * @param openPeriod Amount of time in seconds the poll will be active after creation, 5-600. Can't be used together with close_date. + * @param closeDate Point in time (Unix timestamp) when the poll will be automatically closed. Must be at least 5 and no more than 600 seconds in the future. Can't be used together with open_period. + * @param isClosed Pass True if the poll needs to be immediately closed. This can be useful for poll preview. + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendPoll( + chatId: ChatId, + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendPoll(SendPollRequest(chatId, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendPoll( + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendPoll(id, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendPoll( + question: String, + options: List, + messageThreadId: MessageThreadId? = null, + isAnonymous: Boolean? = null, + type: String? = null, + allowsMultipleAnswers: Boolean? = null, + correctOptionId: Long? = null, + explanation: String? = null, + explanationParseMode: String? = null, + explanationEntities: List? = null, + openPeriod: Seconds? = null, + closeDate: UnixTimestamp? = null, + isClosed: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendPoll(this, question, options, messageThreadId, isAnonymous, type, allowsMultipleAnswers, correctOptionId, explanation, explanationParseMode, explanationEntities, openPeriod, closeDate, isClosed, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method to send an animated emoji that will display a random value. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji on which the dice throw animation is based. Currently, must be one of “”, “”, “”, “”, “”, or “”. Dice can have values 1-6 for “”, “” and “”, values 1-5 for “” and “”, and values 1-64 for “”. Defaults to “” + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendDice( + chatId: ChatId, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendDice(SendDiceRequest(chatId, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendDice( + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendDice(id, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendDice( + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + sendDice(this, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup) + +/** + * Use this method when you need to tell the user that something is happening on the bot's side. The status is set for 5 seconds or less (when a message arrives from your bot, Telegram clients clear its typing status). Returns True on success. + * + * Example: The ImageBot needs some time to process a request and upload the image. Instead of sending a text message along the lines of “Retrieving image, please wait…”, the bot may use sendChatAction with action = upload_photo. The user will see a “sending photo” status for the bot. + * + * We only recommend using this method when a response from the bot will take a noticeable amount of time to arrive. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param action Type of action to broadcast. Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_voice or upload_voice for voice notes, upload_document for general files, choose_sticker for stickers, find_location for location data, record_video_note or upload_video_note for video notes. + * @param messageThreadId Unique identifier for the target message thread; supergroups only + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendChatAction( + chatId: ChatId, + action: String, + messageThreadId: MessageThreadId? = null, +): Boolean = + botApiClient.trySendChatAction(SendChatActionRequest(chatId, action, messageThreadId)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.sendChatAction( + action: String, + messageThreadId: MessageThreadId? = null, +): Boolean = + sendChatAction(id, action, messageThreadId) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.sendChatAction( + action: String, + messageThreadId: MessageThreadId? = null, +): Boolean = + sendChatAction(this, action, messageThreadId) + +/** + * Use this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object. + * + * @param userId Unique identifier of the target user + * @param offset Sequential number of the first photo to be returned. By default, all photos are returned. + * @param limit Limits the number of photos to be retrieved. Values between 1-100 are accepted. Defaults to 100. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getUserProfilePhotos( + userId: UserId, + offset: Long? = null, + limit: Long? = null, +): UserProfilePhotos = + botApiClient.tryGetUserProfilePhotos(GetUserProfilePhotosRequest(userId, offset, limit)).getResultOrThrow() + +/** + * Use this method to get basic information about a file and prepare it for downloading. For the moment, bots can download files of up to 20MB in size. On success, a File object is returned. The file can then be downloaded via the link https://api.telegram.org/file/bot/, where is taken from the response. It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by calling getFile again. + * + * @param fileId File identifier to get information about + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getFile( + fileId: FileId, +): File = + botApiClient.tryGetFile(GetFileRequest(fileId)).getResultOrThrow() + +/** + * Use this method to ban a user in a group, a supergroup or a channel. In the case of supergroups and channels, the user will not be able to return to the chat on their own using invite links, etc., unless unbanned first. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param untilDate Date when the user will be unbanned; Unix time. If user is banned for more than 366 days or less than 30 seconds from the current time they are considered to be banned forever. Applied for supergroups and channels only. + * @param revokeMessages Pass True to delete all messages from the chat for the user that is being removed. If False, the user will be able to see messages in the group that were sent before the user was removed. Always True for supergroups and channels. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun banChatMember( + chatId: ChatId, + userId: UserId, + untilDate: UnixTimestamp? = null, + revokeMessages: Boolean? = null, +): Boolean = + botApiClient.tryBanChatMember(BanChatMemberRequest(chatId, userId, untilDate, revokeMessages)).getResultOrThrow() + +/** + * Use this method to unban a previously banned user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc. The bot must be an administrator for this to work. By default, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. So if the user is a member of the chat they will also be removed from the chat. If you don't want this, use the parameter only_if_banned. Returns True on success. + * + * @param chatId Unique identifier for the target group or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param onlyIfBanned Do nothing if the user is not banned + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unbanChatMember( + chatId: ChatId, + userId: UserId, + onlyIfBanned: Boolean? = null, +): Boolean = + botApiClient.tryUnbanChatMember(UnbanChatMemberRequest(chatId, userId, onlyIfBanned)).getResultOrThrow() + +/** + * Use this method to restrict a user in a supergroup. The bot must be an administrator in the supergroup for this to work and must have the appropriate administrator rights. Pass True for all permissions to lift restrictions from a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param permissions A JSON-serialized object for new user permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + * @param untilDate Date when restrictions will be lifted for the user; Unix time. If user is restricted for more than 366 days or less than 30 seconds from the current time, they are considered to be restricted forever + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun restrictChatMember( + chatId: ChatId, + userId: UserId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, + untilDate: UnixTimestamp? = null, +): Boolean = + botApiClient.tryRestrictChatMember(RestrictChatMemberRequest(chatId, userId, permissions, useIndependentChatPermissions, untilDate)).getResultOrThrow() + +/** + * Use this method to promote or demote a user in a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Pass False for all boolean parameters to demote a user. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + * @param isAnonymous Pass True if the administrator's presence in the chat is hidden + * @param canManageChat Pass True if the administrator can access the chat event log, chat statistics, boost list in channels, message statistics in channels, see channel members, see anonymous administrators in supergroups and ignore slow mode. Implied by any other administrator privilege + * @param canPostMessages Pass True if the administrator can post messages in the channel; channels only + * @param canEditMessages Pass True if the administrator can edit messages of other users and can pin messages; channels only + * @param canDeleteMessages Pass True if the administrator can delete messages of other users + * @param canPostStories Pass True if the administrator can post stories in the channel; channels only + * @param canEditStories Pass True if the administrator can edit stories posted by other users; channels only + * @param canDeleteStories Pass True if the administrator can delete stories posted by other users; channels only + * @param canManageVideoChats Pass True if the administrator can manage video chats + * @param canRestrictMembers Pass True if the administrator can restrict, ban or unban chat members + * @param canPromoteMembers Pass True if the administrator can add new administrators with a subset of their own privileges or demote administrators that they have promoted, directly or indirectly (promoted by administrators that were appointed by him) + * @param canChangeInfo Pass True if the administrator can change chat title, photo and other settings + * @param canInviteUsers Pass True if the administrator can invite new users to the chat + * @param canPinMessages Pass True if the administrator can pin messages, supergroups only + * @param canManageTopics Pass True if the user is allowed to create, rename, close, and reopen forum topics, supergroups only + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun promoteChatMember( + chatId: ChatId, + userId: UserId, + isAnonymous: Boolean? = null, + canManageChat: Boolean? = null, + canPostMessages: Boolean? = null, + canEditMessages: Boolean? = null, + canDeleteMessages: Boolean? = null, + canPostStories: Boolean? = null, + canEditStories: Boolean? = null, + canDeleteStories: Boolean? = null, + canManageVideoChats: Boolean? = null, + canRestrictMembers: Boolean? = null, + canPromoteMembers: Boolean? = null, + canChangeInfo: Boolean? = null, + canInviteUsers: Boolean? = null, + canPinMessages: Boolean? = null, + canManageTopics: Boolean? = null, +): Boolean = + botApiClient.tryPromoteChatMember(PromoteChatMemberRequest(chatId, userId, isAnonymous, canManageChat, canPostMessages, canEditMessages, canDeleteMessages, canPostStories, canEditStories, canDeleteStories, canManageVideoChats, canRestrictMembers, canPromoteMembers, canChangeInfo, canInviteUsers, canPinMessages, canManageTopics)).getResultOrThrow() + +/** + * Use this method to set a custom title for an administrator in a supergroup promoted by the bot. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param userId Unique identifier of the target user + * @param customTitle New custom title for the administrator; 0-16 characters, emoji are not allowed + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatAdministratorCustomTitle( + chatId: ChatId, + userId: UserId, + customTitle: String, +): Boolean = + botApiClient.trySetChatAdministratorCustomTitle(SetChatAdministratorCustomTitleRequest(chatId, userId, customTitle)).getResultOrThrow() + +/** + * Use this method to ban a channel chat in a supergroup or a channel. Until the chat is unbanned, the owner of the banned chat won't be able to send messages on behalf of any of their channels. The bot must be an administrator in the supergroup or channel for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun banChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): Boolean = + botApiClient.tryBanChatSenderChat(BanChatSenderChatRequest(chatId, senderChatId)).getResultOrThrow() + +/** + * Use this method to unban a previously banned channel chat in a supergroup or channel. The bot must be an administrator for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param senderChatId Unique identifier of the target sender chat + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unbanChatSenderChat( + chatId: ChatId, + senderChatId: ChatId, +): Boolean = + botApiClient.tryUnbanChatSenderChat(UnbanChatSenderChatRequest(chatId, senderChatId)).getResultOrThrow() + +/** + * Use this method to set default chat permissions for all members. The bot must be an administrator in the group or a supergroup for this to work and must have the can_restrict_members administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param permissions A JSON-serialized object for new default chat permissions + * @param useIndependentChatPermissions Pass True if chat permissions are set independently. Otherwise, the can_send_other_messages and can_add_web_page_previews permissions will imply the can_send_messages, can_send_audios, can_send_documents, can_send_photos, can_send_videos, can_send_video_notes, and can_send_voice_notes permissions; the can_send_polls permission will imply the can_send_messages permission. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatPermissions( + chatId: ChatId, + permissions: ChatPermissions, + useIndependentChatPermissions: Boolean? = null, +): Boolean = + botApiClient.trySetChatPermissions(SetChatPermissionsRequest(chatId, permissions, useIndependentChatPermissions)).getResultOrThrow() + +/** + * Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the new invite link as String on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun exportChatInviteLink( + chatId: ChatId, +): String = + botApiClient.tryExportChatInviteLink(ExportChatInviteLinkRequest(chatId)).getResultOrThrow() + +/** + * Use this method to create an additional invite link for a chat. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. The link can be revoked using the method revokeChatInviteLink. Returns the new invite link as ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun createChatInviteLink( + chatId: ChatId, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): ChatInviteLink = + botApiClient.tryCreateChatInviteLink(CreateChatInviteLinkRequest(chatId, name, expireDate, memberLimit, createsJoinRequest)).getResultOrThrow() + +/** + * Use this method to edit a non-primary invite link created by the bot. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the edited invite link as a ChatInviteLink object. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to edit + * @param name Invite link name; 0-32 characters + * @param expireDate Point in time (Unix timestamp) when the link will expire + * @param memberLimit The maximum number of users that can be members of the chat simultaneously after joining the chat via this invite link; 1-99999 + * @param createsJoinRequest True, if users joining the chat via the link need to be approved by chat administrators. If True, member_limit can't be specified + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editChatInviteLink( + chatId: ChatId, + inviteLink: String, + name: String? = null, + expireDate: UnixTimestamp? = null, + memberLimit: Long? = null, + createsJoinRequest: Boolean? = null, +): ChatInviteLink = + botApiClient.tryEditChatInviteLink(EditChatInviteLinkRequest(chatId, inviteLink, name, expireDate, memberLimit, createsJoinRequest)).getResultOrThrow() + +/** + * Use this method to revoke an invite link created by the bot. If the primary link is revoked, a new link is automatically generated. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns the revoked invite link as ChatInviteLink object. + * + * @param chatId Unique identifier of the target chat or username of the target channel (in the format @channelusername) + * @param inviteLink The invite link to revoke + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun revokeChatInviteLink( + chatId: ChatId, + inviteLink: String, +): ChatInviteLink = + botApiClient.tryRevokeChatInviteLink(RevokeChatInviteLinkRequest(chatId, inviteLink)).getResultOrThrow() + +/** + * Use this method to approve a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun approveChatJoinRequest( + chatId: ChatId, + userId: UserId, +): Boolean = + botApiClient.tryApproveChatJoinRequest(ApproveChatJoinRequestRequest(chatId, userId)).getResultOrThrow() + +/** + * Use this method to decline a chat join request. The bot must be an administrator in the chat for this to work and must have the can_invite_users administrator right. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun declineChatJoinRequest( + chatId: ChatId, + userId: UserId, +): Boolean = + botApiClient.tryDeclineChatJoinRequest(DeclineChatJoinRequestRequest(chatId, userId)).getResultOrThrow() + +/** + * Use this method to set a new profile photo for the chat. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param photo New chat photo, uploaded using multipart/form-data + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatPhoto( + chatId: ChatId, + photo: String, +): Boolean = + botApiClient.trySetChatPhoto(SetChatPhotoRequest(chatId, photo)).getResultOrThrow() + +/** + * Use this method to delete a chat photo. Photos can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteChatPhoto( + chatId: ChatId, +): Boolean = + botApiClient.tryDeleteChatPhoto(DeleteChatPhotoRequest(chatId)).getResultOrThrow() + +/** + * Use this method to change the title of a chat. Titles can't be changed for private chats. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title New chat title, 1-128 characters + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatTitle( + chatId: ChatId, + title: String, +): Boolean = + botApiClient.trySetChatTitle(SetChatTitleRequest(chatId, title)).getResultOrThrow() + +/** + * Use this method to change the description of a group, a supergroup or a channel. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param description New chat description, 0-255 characters + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatDescription( + chatId: ChatId, + description: String? = null, +): Boolean = + botApiClient.trySetChatDescription(SetChatDescriptionRequest(chatId, description)).getResultOrThrow() + +/** + * Use this method to add a message to the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to pin + * @param disableNotification Pass True if it is not necessary to send a notification to all chat members about the new pinned message. Notifications are always disabled in channels and private chats. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun pinChatMessage( + chatId: ChatId, + messageId: MessageId, + disableNotification: Boolean? = null, +): Boolean = + botApiClient.tryPinChatMessage(PinChatMessageRequest(chatId, messageId, disableNotification)).getResultOrThrow() + +/** + * Use this method to remove a message from the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of a message to unpin. If not specified, the most recent pinned message (by sending date) will be unpinned. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unpinChatMessage( + chatId: ChatId, + messageId: MessageId? = null, +): Boolean = + botApiClient.tryUnpinChatMessage(UnpinChatMessageRequest(chatId, messageId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a chat. If the chat is not a private chat, the bot must be an administrator in the chat for this to work and must have the 'can_pin_messages' administrator right in a supergroup or 'can_edit_messages' administrator right in a channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unpinAllChatMessages( + chatId: ChatId, +): Boolean = + botApiClient.tryUnpinAllChatMessages(UnpinAllChatMessagesRequest(chatId)).getResultOrThrow() + +/** + * Use this method for your bot to leave a group, supergroup or channel. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun leaveChat( + chatId: ChatId, +): Boolean = + botApiClient.tryLeaveChat(LeaveChatRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get up to date information about the chat (current name of the user for one-on-one conversations, current username of a user, group or channel, etc.). Returns a Chat object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getChat( + chatId: ChatId, +): Chat = + botApiClient.tryGetChat(GetChatRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get a list of administrators in a chat, which aren't bots. Returns an Array of ChatMember objects. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getChatAdministrators( + chatId: ChatId, +): List = + botApiClient.tryGetChatAdministrators(GetChatAdministratorsRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get the number of members in a chat. Returns Int on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getChatMemberCount( + chatId: ChatId, +): Int = + botApiClient.tryGetChatMemberCount(GetChatMemberCountRequest(chatId)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.getMemberCount(): Int = + getChatMemberCount(id) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.getMemberCount(): Int = + getChatMemberCount(this) + +/** + * Use this method to get information about a member of a chat. The method is only guaranteed to work for other users if the bot is an administrator in the chat. Returns a ChatMember object on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup or channel (in the format @channelusername) + * @param userId Unique identifier of the target user + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getChatMember( + chatId: ChatId, + userId: UserId, +): ChatMember = + botApiClient.tryGetChatMember(GetChatMemberRequest(chatId, userId)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Chat.getMember( + userId: UserId, +): ChatMember = + getChatMember(id, userId) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun ChatId.getMember( + userId: UserId, +): ChatMember = + getChatMember(this, userId) + +/** + * Use this method to set a new group sticker set for a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param stickerSetName Name of the sticker set to be set as the group sticker set + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatStickerSet( + chatId: ChatId, + stickerSetName: String, +): Boolean = + botApiClient.trySetChatStickerSet(SetChatStickerSetRequest(chatId, stickerSetName)).getResultOrThrow() + +/** + * Use this method to delete a group sticker set from a supergroup. The bot must be an administrator in the chat for this to work and must have the appropriate administrator rights. Use the field can_set_sticker_set optionally returned in getChat requests to check if the bot can use this method. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteChatStickerSet( + chatId: ChatId, +): Boolean = + botApiClient.tryDeleteChatStickerSet(DeleteChatStickerSetRequest(chatId)).getResultOrThrow() + +/** + * Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. Requires no parameters. Returns an Array of Sticker objects. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getForumTopicIconStickers(): List = + botApiClient.tryGetForumTopicIconStickers().getResultOrThrow() + +/** + * Use this method to create a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns information about the created topic as a ForumTopic object. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name Topic name, 1-128 characters + * @param iconColor Color of the topic icon in RGB format. Currently, must be one of 7322096 (0x6FB9F0), 16766590 (0xFFD67E), 13338331 (0xCB86DB), 9367192 (0x8EEE98), 16749490 (0xFF93B2), or 16478047 (0xFB6F5F) + * @param iconCustomEmojiId Unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun createForumTopic( + chatId: ChatId, + name: String, + iconColor: Long? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): ForumTopic = + botApiClient.tryCreateForumTopic(CreateForumTopicRequest(chatId, name, iconColor, iconCustomEmojiId)).getResultOrThrow() + +/** + * Use this method to edit name and icon of a topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + * @param name New topic name, 0-128 characters. If not specified or empty, the current name of the topic will be kept + * @param iconCustomEmojiId New unique identifier of the custom emoji shown as the topic icon. Use getForumTopicIconStickers to get all allowed custom emoji identifiers. Pass an empty string to remove the icon. If not specified, the current icon will be kept + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, + name: String? = null, + iconCustomEmojiId: CustomEmojiId? = null, +): Boolean = + botApiClient.tryEditForumTopic(EditForumTopicRequest(chatId, messageThreadId, name, iconCustomEmojiId)).getResultOrThrow() + +/** + * Use this method to close an open topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun closeForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + botApiClient.tryCloseForumTopic(CloseForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to reopen a closed topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun reopenForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + botApiClient.tryReopenForumTopic(ReopenForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to delete a forum topic along with all its messages in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteForumTopic( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + botApiClient.tryDeleteForumTopic(DeleteForumTopicRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param messageThreadId Unique identifier for the target message thread of the forum topic + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unpinAllForumTopicMessages( + chatId: ChatId, + messageThreadId: MessageThreadId, +): Boolean = + botApiClient.tryUnpinAllForumTopicMessages(UnpinAllForumTopicMessagesRequest(chatId, messageThreadId)).getResultOrThrow() + +/** + * Use this method to edit the name of the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + * @param name New topic name, 1-128 characters + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editGeneralForumTopic( + chatId: ChatId, + name: String, +): Boolean = + botApiClient.tryEditGeneralForumTopic(EditGeneralForumTopicRequest(chatId, name)).getResultOrThrow() + +/** + * Use this method to close an open 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun closeGeneralForumTopic( + chatId: ChatId, +): Boolean = + botApiClient.tryCloseGeneralForumTopic(CloseGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to reopen a closed 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically unhidden if it was hidden. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun reopenGeneralForumTopic( + chatId: ChatId, +): Boolean = + botApiClient.tryReopenGeneralForumTopic(ReopenGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to hide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. The topic will be automatically closed if it was open. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun hideGeneralForumTopic( + chatId: ChatId, +): Boolean = + botApiClient.tryHideGeneralForumTopic(HideGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to unhide the 'General' topic in a forum supergroup chat. The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unhideGeneralForumTopic( + chatId: ChatId, +): Boolean = + botApiClient.tryUnhideGeneralForumTopic(UnhideGeneralForumTopicRequest(chatId)).getResultOrThrow() + +/** + * Use this method to clear the list of pinned messages in a General forum topic. The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target supergroup (in the format @supergroupusername) + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun unpinAllGeneralForumTopicMessages( + chatId: ChatId, +): Boolean = + botApiClient.tryUnpinAllGeneralForumTopicMessages(UnpinAllGeneralForumTopicMessagesRequest(chatId)).getResultOrThrow() + +/** + * Use this method to send answers to callback queries sent from inline keyboards. The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. On success, True is returned. + * + * Alternatively, the user can be redirected to the specified Game URL. For this option to work, you must first create a game for your bot via @BotFather and accept the terms. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * + * @param callbackQueryId Unique identifier for the query to be answered + * @param text Text of the notification. If not specified, nothing will be shown to the user, 0-200 characters + * @param showAlert If True, an alert will be shown by the client instead of a notification at the top of the chat screen. Defaults to false. + * @param url URL that will be opened by the user's client. If you have created a Game and accepted the conditions via @BotFather, specify the URL that opens your game - note that this will only work if the query comes from a callback_game button. Otherwise, you may use links like t.me/your_bot?start=XXXX that open your bot with a parameter. + * @param cacheTime The maximum amount of time in seconds that the result of the callback query may be cached client-side. Telegram apps will support caching starting in version 3.14. Defaults to 0. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun answerCallbackQuery( + callbackQueryId: CallbackQueryId, + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): Boolean = + botApiClient.tryAnswerCallbackQuery(AnswerCallbackQueryRequest(callbackQueryId, text, showAlert, url, cacheTime)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun CallbackQuery.answer( + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): Boolean = + answerCallbackQuery(id, text, showAlert, url, cacheTime) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun CallbackQueryId.answer( + text: String? = null, + showAlert: Boolean? = null, + url: String? = null, + cacheTime: Seconds? = null, +): Boolean = + answerCallbackQuery(this, text, showAlert, url, cacheTime) + +/** + * Use this method to change the list of the bot's commands. See this manual for more details about bot commands. Returns True on success. + * + * @param commands A JSON-serialized list of bot commands to be set as the list of the bot's commands. At most 100 commands can be specified. + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setMyCommands( + commands: List, + scope: BotCommandScope? = null, + languageCode: String? = null, +): Boolean = + botApiClient.trySetMyCommands(SetMyCommandsRequest(commands, scope, languageCode)).getResultOrThrow() + +/** + * Use this method to delete the list of the bot's commands for the given scope and user language. After deletion, higher level commands will be shown to affected users. Returns True on success. + * + * @param scope A JSON-serialized object, describing scope of users for which the commands are relevant. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code. If empty, commands will be applied to all users from the given scope, for whose language there are no dedicated commands + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): Boolean = + botApiClient.tryDeleteMyCommands(DeleteMyCommandsRequest(scope, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current list of the bot's commands for the given scope and user language. Returns an Array of BotCommand objects. If commands aren't set, an empty list is returned. + * + * @param scope A JSON-serialized object, describing scope of users. Defaults to BotCommandScopeDefault. + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMyCommands( + scope: BotCommandScope? = null, + languageCode: String? = null, +): List = + botApiClient.tryGetMyCommands(GetMyCommandsRequest(scope, languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's name. Returns True on success. + * + * @param name New bot name; 0-64 characters. Pass an empty string to remove the dedicated name for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the name will be shown to all users for whose language there is no dedicated name. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setMyName( + name: String? = null, + languageCode: String? = null, +): Boolean = + botApiClient.trySetMyName(SetMyNameRequest(name, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot name for the given user language. Returns BotName on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMyName( + languageCode: String? = null, +): BotName = + botApiClient.tryGetMyName(GetMyNameRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. Returns True on success. + * + * @param description New bot description; 0-512 characters. Pass an empty string to remove the dedicated description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the description will be applied to all users for whose language there is no dedicated description. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setMyDescription( + description: String? = null, + languageCode: String? = null, +): Boolean = + botApiClient.trySetMyDescription(SetMyDescriptionRequest(description, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot description for the given user language. Returns BotDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMyDescription( + languageCode: String? = null, +): BotDescription = + botApiClient.tryGetMyDescription(GetMyDescriptionRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's short description, which is shown on the bot's profile page and is sent together with the link when users share the bot. Returns True on success. + * + * @param shortDescription New short description for the bot; 0-120 characters. Pass an empty string to remove the dedicated short description for the given language. + * @param languageCode A two-letter ISO 639-1 language code. If empty, the short description will be applied to all users for whose language there is no dedicated short description. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setMyShortDescription( + shortDescription: String? = null, + languageCode: String? = null, +): Boolean = + botApiClient.trySetMyShortDescription(SetMyShortDescriptionRequest(shortDescription, languageCode)).getResultOrThrow() + +/** + * Use this method to get the current bot short description for the given user language. Returns BotShortDescription on success. + * + * @param languageCode A two-letter ISO 639-1 language code or an empty string + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMyShortDescription( + languageCode: String? = null, +): BotShortDescription = + botApiClient.tryGetMyShortDescription(GetMyShortDescriptionRequest(languageCode)).getResultOrThrow() + +/** + * Use this method to change the bot's menu button in a private chat, or the default menu button. Returns True on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be changed + * @param menuButton A JSON-serialized object for the bot's new menu button. Defaults to MenuButtonDefault + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setChatMenuButton( + chatId: ChatId? = null, + menuButton: MenuButton? = null, +): Boolean = + botApiClient.trySetChatMenuButton(SetChatMenuButtonRequest(chatId, menuButton)).getResultOrThrow() + +/** + * Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. Returns MenuButton on success. + * + * @param chatId Unique identifier for the target private chat. If not specified, default bot's menu button will be returned + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getChatMenuButton( + chatId: ChatId? = null, +): MenuButton = + botApiClient.tryGetChatMenuButton(GetChatMenuButtonRequest(chatId)).getResultOrThrow() + +/** + * Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. These rights will be suggested to users, but they are free to modify the list before adding the bot. Returns True on success. + * + * @param rights A JSON-serialized object describing new default administrator rights. If not specified, the default administrator rights will be cleared. + * @param forChannels Pass True to change the default administrator rights of the bot in channels. Otherwise, the default administrator rights of the bot for groups and supergroups will be changed. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setMyDefaultAdministratorRights( + rights: ChatAdministratorRights? = null, + forChannels: Boolean? = null, +): Boolean = + botApiClient.trySetMyDefaultAdministratorRights(SetMyDefaultAdministratorRightsRequest(rights, forChannels)).getResultOrThrow() + +/** + * Use this method to get the current default administrator rights of the bot. Returns ChatAdministratorRights on success. + * + * @param forChannels Pass True to get default administrator rights of the bot in channels. Otherwise, default administrator rights of the bot for groups and supergroups will be returned. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getMyDefaultAdministratorRights( + forChannels: Boolean? = null, +): ChatAdministratorRights = + botApiClient.tryGetMyDefaultAdministratorRights(GetMyDefaultAdministratorRightsRequest(forChannels)).getResultOrThrow() + +/** + * Use this method to edit text and game messages. On success the edited Message is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editMessageText( + text: String, + chatId: ChatId, + messageId: MessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryEditMessageText(EditMessageTextRequest(text = text, chatId = chatId, messageId = messageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.editText( + text: String, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + editMessageText(text, chat.id, messageId, parseMode, entities, disableWebPagePreview, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.editTextMarkdown( + text: String, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + editMessageText(text, chat.id, messageId, ParseMode.MARKDOWN, entities, disableWebPagePreview, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.editTextMarkdownV2( + text: String, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + editMessageText(text, chat.id, messageId, ParseMode.MARKDOWN_V2, entities, disableWebPagePreview, replyMarkup) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.editTextHtml( + text: String, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + editMessageText(text, chat.id, messageId, ParseMode.HTML, entities, disableWebPagePreview, replyMarkup) + +/** + * Use this method to edit text and game messages. On success True is returned. + * + * @param text New text of the message, 1-4096 characters after entities parsing + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param parseMode Mode for parsing entities in the message text. See formatting options for more details. + * @param entities A JSON-serialized list of special entities that appear in message text, which can be specified instead of parse_mode + * @param disableWebPagePreview Disables link previews for links in this message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editInlineMessageText( + text: String, + inlineMessageId: InlineMessageId, + parseMode: ParseMode? = null, + entities: List? = null, + disableWebPagePreview: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryEditInlineMessageText(EditMessageTextRequest(text = text, inlineMessageId = inlineMessageId, parseMode = parseMode, entities = entities, disableWebPagePreview = disableWebPagePreview, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit captions of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editMessageCaption( + chatId: ChatId, + messageId: MessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryEditMessageCaption(EditMessageCaptionRequest(chatId = chatId, messageId = messageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit captions of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param caption New caption of the message, 0-1024 characters after entities parsing + * @param parseMode Mode for parsing entities in the message caption. See formatting options for more details. + * @param captionEntities A JSON-serialized list of special entities that appear in the caption, which can be specified instead of parse_mode + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editInlineMessageCaption( + inlineMessageId: InlineMessageId, + caption: String? = null, + parseMode: ParseMode? = null, + captionEntities: List? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryEditInlineMessageCaption(EditMessageCaptionRequest(inlineMessageId = inlineMessageId, caption = caption, parseMode = parseMode, captionEntities = captionEntities, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success the edited Message is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editMessageMedia( + media: InputMedia, + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryEditMessageMedia(EditMessageMediaRequest(media = media, chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit animation, audio, document, photo, or video messages. If a message is part of a message album, then it can be edited only to an audio for audio albums, only to a document for document albums and to a photo or a video otherwise. When an inline message is edited, a new file can't be uploaded; use a previously uploaded file via its file_id or specify a URL. On success True is returned. + * + * @param media A JSON-serialized object for a new media content of the message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editInlineMessageMedia( + media: InputMedia, + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryEditInlineMessageMedia(EditMessageMediaRequest(media = media, inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success the edited Message is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editMessageLiveLocation( + latitude: Double, + longitude: Double, + chatId: ChatId, + messageId: MessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryEditMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, chatId = chatId, messageId = messageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit live location messages. A location can be edited until its live_period expires or editing is explicitly disabled by a call to stopMessageLiveLocation. On success True is returned. + * + * @param latitude Latitude of new location + * @param longitude Longitude of new location + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param horizontalAccuracy The radius of uncertainty for the location, measured in meters; 0-1500 + * @param heading Direction in which the user is moving, in degrees. Must be between 1 and 360 if specified. + * @param proximityAlertRadius The maximum distance for proximity alerts about approaching another chat member, in meters. Must be between 1 and 100000 if specified. + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editInlineMessageLiveLocation( + latitude: Double, + longitude: Double, + inlineMessageId: InlineMessageId, + horizontalAccuracy: Double? = null, + heading: Long? = null, + proximityAlertRadius: Long? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryEditInlineMessageLiveLocation(EditMessageLiveLocationRequest(latitude = latitude, longitude = longitude, inlineMessageId = inlineMessageId, horizontalAccuracy = horizontalAccuracy, heading = heading, proximityAlertRadius = proximityAlertRadius, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop updating a live location message before live_period expires. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message with live location to stop + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun stopMessageLiveLocation( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryStopMessageLiveLocation(StopMessageLiveLocationRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop updating a live location message before live_period expires. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for a new inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun stopInlineMessageLiveLocation( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryStopInlineMessageLiveLocation(StopMessageLiveLocationRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit only the reply markup of messages. On success the edited Message is returned. + * + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Required if inline_message_id is not specified. Identifier of the message to edit + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editMessageReplyMarkup( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.tryEditMessageReplyMarkup(EditMessageReplyMarkupRequest(chatId = chatId, messageId = messageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to edit only the reply markup of messages. On success True is returned. + * + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + * @param replyMarkup A JSON-serialized object for an inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun editInlineMessageReplyMarkup( + inlineMessageId: InlineMessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Boolean = + botApiClient.tryEditInlineMessageReplyMarkup(EditMessageReplyMarkupRequest(inlineMessageId = inlineMessageId, replyMarkup = replyMarkup)).getResultOrThrow() + +/** + * Use this method to stop a poll which was sent by the bot. On success, the stopped Poll is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the original message with the poll + * @param replyMarkup A JSON-serialized object for a new message inline keyboard. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun stopPoll( + chatId: ChatId, + messageId: MessageId, + replyMarkup: InlineKeyboardMarkup? = null, +): Poll = + botApiClient.tryStopPoll(StopPollRequest(chatId, messageId, replyMarkup)).getResultOrThrow() + +/** + * Use this method to delete a message, including service messages, with the following limitations: - A message can only be deleted if it was sent less than 48 hours ago. - Service messages about a supergroup, channel, or forum topic creation can't be deleted. - A dice message in a private chat can only be deleted if it was sent more than 24 hours ago. - Bots can delete outgoing messages in private chats, groups, and supergroups. - Bots can delete incoming messages in private chats. - Bots granted can_post_messages permissions can delete outgoing messages in channels. - If the bot is an administrator of a group, it can delete any message there. - If the bot has can_delete_messages permission in a supergroup or a channel, it can delete any message there. Returns True on success. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param messageId Identifier of the message to delete + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteMessage( + chatId: ChatId, + messageId: MessageId, +): Boolean = + botApiClient.tryDeleteMessage(DeleteMessageRequest(chatId, messageId)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun Message.delete(): Boolean = + deleteMessage(chat.id, messageId) + +/** + * Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param sticker Sticker to send. Pass a file_id as String to send a file that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a .WEBP sticker from the Internet, or upload a new .WEBP or .TGS sticker using multipart/form-data. More information on Sending Files ». Video stickers can only be sent by a file_id. Animated stickers can't be sent via an HTTP URL. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param emoji Emoji associated with the sticker; only for just uploaded stickers + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup Additional interface options. A JSON-serialized object for an inline keyboard, custom reply keyboard, instructions to remove reply keyboard or to force a reply from the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendSticker( + chatId: ChatId, + sticker: String, + messageThreadId: MessageThreadId? = null, + emoji: String? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: ReplyMarkup? = null, +): Message = + botApiClient.trySendSticker(SendStickerRequest(chatId, sticker, messageThreadId, emoji, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to get a sticker set. On success, a StickerSet object is returned. + * + * @param name Name of the sticker set + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getStickerSet( + name: String, +): StickerSet = + botApiClient.tryGetStickerSet(GetStickerSetRequest(name)).getResultOrThrow() + +/** + * Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects. + * + * @param customEmojiIds List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getCustomEmojiStickers( + customEmojiIds: List, +): List = + botApiClient.tryGetCustomEmojiStickers(GetCustomEmojiStickersRequest(customEmojiIds)).getResultOrThrow() + +/** + * Use this method to upload a file with a sticker for later use in the createNewStickerSet and addStickerToSet methods (the file can be used multiple times). Returns the uploaded File on success. + * + * @param userId User identifier of sticker file owner + * @param sticker A file with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. See https://core.telegram.org/stickers for technical requirements. More information on Sending Files » + * @param stickerFormat Format of the sticker, must be one of “static”, “animated”, “video” + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun uploadStickerFile( + userId: UserId, + sticker: String, + stickerFormat: String, +): File = + botApiClient.tryUploadStickerFile(UploadStickerFileRequest(userId, sticker, stickerFormat)).getResultOrThrow() + +/** + * Use this method to create a new sticker set owned by a user. The bot will be able to edit the sticker set thus created. Returns True on success. + * + * @param userId User identifier of created sticker set owner + * @param name Short name of sticker set, to be used in t.me/addstickers/ URLs (e.g., animals). Can contain only English letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_". is case insensitive. 1-64 characters. + * @param title Sticker set title, 1-64 characters + * @param stickers A JSON-serialized list of 1-50 initial stickers to be added to the sticker set + * @param stickerFormat Format of stickers in the set, must be one of “static”, “animated”, “video” + * @param stickerType Type of stickers in the set, pass “regular”, “mask”, or “custom_emoji”. By default, a regular sticker set is created. + * @param needsRepainting Pass True if stickers in the sticker set must be repainted to the color of text when used in messages, the accent color if used as emoji status, white on chat photos, or another appropriate color based on context; for custom emoji sticker sets only + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun createNewStickerSet( + userId: UserId, + name: String, + title: String, + stickers: List, + stickerFormat: String, + stickerType: String? = null, + needsRepainting: Boolean? = null, +): Boolean = + botApiClient.tryCreateNewStickerSet(CreateNewStickerSetRequest(userId, name, title, stickers, stickerFormat, stickerType, needsRepainting)).getResultOrThrow() + +/** + * Use this method to add a new sticker to a set created by the bot. The format of the added sticker must match the format of the other stickers in the set. Emoji sticker sets can have up to 200 stickers. Animated and video sticker sets can have up to 50 stickers. Static sticker sets can have up to 120 stickers. Returns True on success. + * + * @param userId User identifier of sticker set owner + * @param name Sticker set name + * @param sticker A JSON-serialized object with information about the added sticker. If exactly the same sticker had already been added to the set, then the set isn't changed. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun addStickerToSet( + userId: UserId, + name: String, + sticker: InputSticker, +): Boolean = + botApiClient.tryAddStickerToSet(AddStickerToSetRequest(userId, name, sticker)).getResultOrThrow() + +/** + * Use this method to move a sticker in a set created by the bot to a specific position. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param position New sticker position in the set, zero-based + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerPositionInSet( + sticker: String, + position: Long, +): Boolean = + botApiClient.trySetStickerPositionInSet(SetStickerPositionInSetRequest(sticker, position)).getResultOrThrow() + +/** + * Use this method to delete a sticker from a set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteStickerFromSet( + sticker: String, +): Boolean = + botApiClient.tryDeleteStickerFromSet(DeleteStickerFromSetRequest(sticker)).getResultOrThrow() + +/** + * Use this method to change the list of emoji assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param emojiList A JSON-serialized list of 1-20 emoji associated with the sticker + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerEmojiList( + sticker: String, + emojiList: List, +): Boolean = + botApiClient.trySetStickerEmojiList(SetStickerEmojiListRequest(sticker, emojiList)).getResultOrThrow() + +/** + * Use this method to change search keywords assigned to a regular or custom emoji sticker. The sticker must belong to a sticker set created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param keywords A JSON-serialized list of 0-20 search keywords for the sticker with total length of up to 64 characters + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerKeywords( + sticker: String, + keywords: List? = null, +): Boolean = + botApiClient.trySetStickerKeywords(SetStickerKeywordsRequest(sticker, keywords)).getResultOrThrow() + +/** + * Use this method to change the mask position of a mask sticker. The sticker must belong to a sticker set that was created by the bot. Returns True on success. + * + * @param sticker File identifier of the sticker + * @param maskPosition A JSON-serialized object with the position where the mask should be placed on faces. Omit the parameter to remove the mask position. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerMaskPosition( + sticker: String, + maskPosition: MaskPosition? = null, +): Boolean = + botApiClient.trySetStickerMaskPosition(SetStickerMaskPositionRequest(sticker, maskPosition)).getResultOrThrow() + +/** + * Use this method to set the title of a created sticker set. Returns True on success. + * + * @param name Sticker set name + * @param title Sticker set title, 1-64 characters + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerSetTitle( + name: String, + title: String, +): Boolean = + botApiClient.trySetStickerSetTitle(SetStickerSetTitleRequest(name, title)).getResultOrThrow() + +/** + * Use this method to set the thumbnail of a regular or mask sticker set. The format of the thumbnail file must match the format of the stickers in the set. Returns True on success. + * + * @param name Sticker set name + * @param userId User identifier of the sticker set owner + * @param thumbnail A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have a width and height of exactly 100px, or a .TGS animation with a thumbnail up to 32 kilobytes in size (see https://core.telegram.org/stickers#animated-sticker-requirements for animated sticker technical requirements), or a WEBM video with the thumbnail up to 32 kilobytes in size; see https://core.telegram.org/stickers#video-sticker-requirements for video sticker technical requirements. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one using multipart/form-data. More information on Sending Files ». Animated and video sticker set thumbnails can't be uploaded via HTTP URL. If omitted, then the thumbnail is dropped and the first sticker is used as the thumbnail. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setStickerSetThumbnail( + name: String, + userId: UserId, + thumbnail: String? = null, +): Boolean = + botApiClient.trySetStickerSetThumbnail(SetStickerSetThumbnailRequest(name, userId, thumbnail)).getResultOrThrow() + +/** + * Use this method to set the thumbnail of a custom emoji sticker set. Returns True on success. + * + * @param name Sticker set name + * @param customEmojiId Custom emoji identifier of a sticker from the sticker set; pass an empty string to drop the thumbnail and use the first sticker as the thumbnail. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setCustomEmojiStickerSetThumbnail( + name: String, + customEmojiId: CustomEmojiId? = null, +): Boolean = + botApiClient.trySetCustomEmojiStickerSetThumbnail(SetCustomEmojiStickerSetThumbnailRequest(name, customEmojiId)).getResultOrThrow() + +/** + * Use this method to delete a sticker set that was created by the bot. Returns True on success. + * + * @param name Sticker set name + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun deleteStickerSet( + name: String, +): Boolean = + botApiClient.tryDeleteStickerSet(DeleteStickerSetRequest(name)).getResultOrThrow() + +/** + * Use this method to send answers to an inline query. On success, True is returned. No more than 50 results per query are allowed. + * + * @param inlineQueryId Unique identifier for the answered query + * @param results A JSON-serialized array of results for the inline query + * @param cacheTime The maximum amount of time in seconds that the result of the inline query may be cached on the server. Defaults to 300. + * @param isPersonal Pass True if results may be cached on the server side only for the user that sent the query. By default, results may be returned to any user who sends the same query. + * @param nextOffset Pass the offset that a client should send in the next query with the same text to receive more results. Pass an empty string if there are no more results or if you don't support pagination. Offset length can't exceed 64 bytes. + * @param button A JSON-serialized object describing a button to be shown above inline query results + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun answerInlineQuery( + inlineQueryId: InlineQueryId, + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): Boolean = + botApiClient.tryAnswerInlineQuery(AnswerInlineQueryRequest(inlineQueryId, results, cacheTime, isPersonal, nextOffset, button)).getResultOrThrow() + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun InlineQuery.answer( + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): Boolean = + answerInlineQuery(id, results, cacheTime, isPersonal, nextOffset, button) + +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun InlineQueryId.answer( + results: List, + cacheTime: Seconds? = null, + isPersonal: Boolean? = null, + nextOffset: String? = null, + button: InlineQueryResultsButton? = null, +): Boolean = + answerInlineQuery(this, results, cacheTime, isPersonal, nextOffset, button) + +/** + * Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated. On success, a SentWebAppMessage object is returned. + * + * @param webAppQueryId Unique identifier for the query to be answered + * @param result A JSON-serialized object describing the message to be sent + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun answerWebAppQuery( + webAppQueryId: WebAppQueryId, + result: InlineQueryResult, +): SentWebAppMessage = + botApiClient.tryAnswerWebAppQuery(AnswerWebAppQueryRequest(webAppQueryId, result)).getResultOrThrow() + +/** + * Use this method to send invoices. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat or username of the target channel (in the format @channelusername) + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via @BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param startParameter Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to provider + * @param isFlexible Pass True if the final price depends on the shipping method + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Pay total price' button will be shown. If not empty, the first button must be a Pay button. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendInvoice( + chatId: ChatId, + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + messageThreadId: MessageThreadId? = null, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + startParameter: String? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.trySendInvoice(SendInvoiceRequest(chatId, title, description, payload, providerToken, currency, prices, messageThreadId, maxTipAmount, suggestedTipAmounts, startParameter, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to create a link for an invoice. Returns the created invoice link as String on success. + * + * @param title Product name, 1-32 characters + * @param description Product description, 1-255 characters + * @param payload Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. + * @param providerToken Payment provider token, obtained via BotFather + * @param currency Three-letter ISO 4217 currency code, see more on currencies + * @param prices Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.) + * @param maxTipAmount The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0 + * @param suggestedTipAmounts A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount. + * @param providerData JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider. + * @param photoUrl URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. + * @param photoSize Photo size in bytes + * @param photoWidth Photo width + * @param photoHeight Photo height + * @param needName Pass True if you require the user's full name to complete the order + * @param needPhoneNumber Pass True if you require the user's phone number to complete the order + * @param needEmail Pass True if you require the user's email address to complete the order + * @param needShippingAddress Pass True if you require the user's shipping address to complete the order + * @param sendPhoneNumberToProvider Pass True if the user's phone number should be sent to the provider + * @param sendEmailToProvider Pass True if the user's email address should be sent to the provider + * @param isFlexible Pass True if the final price depends on the shipping method + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun createInvoiceLink( + title: String, + description: String, + payload: String, + providerToken: String, + currency: String, + prices: List, + maxTipAmount: Long? = null, + suggestedTipAmounts: List? = null, + providerData: String? = null, + photoUrl: String? = null, + photoSize: Long? = null, + photoWidth: Long? = null, + photoHeight: Long? = null, + needName: Boolean? = null, + needPhoneNumber: Boolean? = null, + needEmail: Boolean? = null, + needShippingAddress: Boolean? = null, + sendPhoneNumberToProvider: Boolean? = null, + sendEmailToProvider: Boolean? = null, + isFlexible: Boolean? = null, +): String = + botApiClient.tryCreateInvoiceLink(CreateInvoiceLinkRequest(title, description, payload, providerToken, currency, prices, maxTipAmount, suggestedTipAmounts, providerData, photoUrl, photoSize, photoWidth, photoHeight, needName, needPhoneNumber, needEmail, needShippingAddress, sendPhoneNumberToProvider, sendEmailToProvider, isFlexible)).getResultOrThrow() + +/** + * If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot. Use this method to reply to shipping queries. On success, True is returned. + * + * @param shippingQueryId Unique identifier for the query to be answered + * @param ok Pass True if delivery to the specified address is possible and False if there are any problems (for example, if delivery to the specified address is not possible) + * @param shippingOptions Required if ok is True. A JSON-serialized array of available shipping options. + * @param errorMessage Required if ok is False. Error message in human readable form that explains why it is impossible to complete the order (e.g. "Sorry, delivery to your desired address is unavailable'). Telegram will display this message to the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun answerShippingQuery( + shippingQueryId: ShippingQueryId, + ok: Boolean, + shippingOptions: List? = null, + errorMessage: String? = null, +): Boolean = + botApiClient.tryAnswerShippingQuery(AnswerShippingQueryRequest(shippingQueryId, ok, shippingOptions, errorMessage)).getResultOrThrow() + +/** + * Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query. Use this method to respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + * + * @param preCheckoutQueryId Unique identifier for the query to be answered + * @param ok Specify True if everything is alright (goods are available, etc.) and the bot is ready to proceed with the order. Use False if there are any problems. + * @param errorMessage Required if ok is False. Error message in human readable form that explains the reason for failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our amazing black T-shirts while you were busy filling out your payment details. Please choose a different color or garment!"). Telegram will display this message to the user. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun answerPreCheckoutQuery( + preCheckoutQueryId: String, + ok: Boolean, + errorMessage: String? = null, +): Boolean = + botApiClient.tryAnswerPreCheckoutQuery(AnswerPreCheckoutQueryRequest(preCheckoutQueryId, ok, errorMessage)).getResultOrThrow() + +/** + * Informs a user that some of the Telegram Passport elements they provided contains errors. The user will not be able to re-submit their Passport to you until the errors are fixed (the contents of the field for which you returned the error must change). Returns True on success. + * + * Use this if the data submitted by the user doesn't satisfy the standards your service requires for any reason. For example, if a birthday date seems invalid, a submitted document is blurry, a scan shows evidence of tampering, etc. Supply some details in the error message to make sure the user knows how to correct the issues. + * + * @param userId User identifier + * @param errors A JSON-serialized array describing the errors + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setPassportDataErrors( + userId: UserId, + errors: List, +): Boolean = + botApiClient.trySetPassportDataErrors(SetPassportDataErrorsRequest(userId, errors)).getResultOrThrow() + +/** + * Use this method to send a game. On success, the sent Message is returned. + * + * @param chatId Unique identifier for the target chat + * @param gameShortName Short name of the game, serves as the unique identifier for the game. Set up your games via @BotFather. + * @param messageThreadId Unique identifier for the target message thread (topic) of the forum; for forum supergroups only + * @param disableNotification Sends the message silently. Users will receive a notification with no sound. + * @param protectContent Protects the contents of the sent message from forwarding and saving + * @param replyToMessageId If the message is a reply, ID of the original message + * @param allowSendingWithoutReply Pass True if the message should be sent even if the specified replied-to message is not found + * @param replyMarkup A JSON-serialized object for an inline keyboard. If empty, one 'Play game_title' button will be shown. If not empty, the first button must launch the game. + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun sendGame( + chatId: ChatId, + gameShortName: String, + messageThreadId: MessageThreadId? = null, + disableNotification: Boolean? = null, + protectContent: Boolean? = null, + replyToMessageId: MessageId? = null, + allowSendingWithoutReply: Boolean? = null, + replyMarkup: InlineKeyboardMarkup? = null, +): Message = + botApiClient.trySendGame(SendGameRequest(chatId, gameShortName, messageThreadId, disableNotification, protectContent, replyToMessageId, allowSendingWithoutReply, replyMarkup)).getResultOrThrow() + +/** + * Use this method to set the score of the specified user in a game message. On success the edited Message is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + chatId: ChatId, + messageId: MessageId, +): Message = + botApiClient.trySetGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, chatId = chatId, messageId = messageId)).getResultOrThrow() + +/** + * Use this method to set the score of the specified user in a game message. On success True is returned. Returns an error, if the new score is not greater than the user's current score in the chat and force is False. + * + * @param userId User identifier + * @param score New score, must be non-negative + * @param force Pass True if the high score is allowed to decrease. This can be useful when fixing mistakes or banning cheaters + * @param disableEditMessage Pass True if the game message should not be automatically edited to include the current scoreboard + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun setInlineGameScore( + userId: UserId, + score: Long, + force: Boolean? = null, + disableEditMessage: Boolean? = null, + inlineMessageId: InlineMessageId, +): Boolean = + botApiClient.trySetInlineGameScore(SetGameScoreRequest(userId = userId, score = score, force = force, disableEditMessage = disableEditMessage, inlineMessageId = inlineMessageId)).getResultOrThrow() + +/** + * Use this method to get data for high score tables. Will return the score of the specified user and several of their neighbors in a game. Returns an Array of GameHighScore objects. + * + * This method will currently return scores for the target user, plus two of their closest neighbors on each side. Will also return the top three users if the user and their neighbors are not among them. Please note that this behavior is subject to change. + * + * @param userId Target user id + * @param chatId Required if inline_message_id is not specified. Unique identifier for the target chat + * @param messageId Required if inline_message_id is not specified. Identifier of the sent message + * @param inlineMessageId Required if chat_id and message_id are not specified. Identifier of the inline message + */ +context(TelegramBotApiContext) +@Throws(TelegramBotApiException::class) +suspend fun getGameHighScores( + userId: UserId, + chatId: ChatId? = null, + messageId: MessageId? = null, + inlineMessageId: InlineMessageId? = null, +): List = + botApiClient.tryGetGameHighScores(GetGameHighScoresRequest(userId, chatId, messageId, inlineMessageId)).getResultOrThrow() diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiClient.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiClient.kt new file mode 100644 index 0000000..198edc7 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiClient.kt @@ -0,0 +1,95 @@ +package me.alllex.tbot.api.client + +import io.ktor.client.* +import io.ktor.client.engine.* +import io.ktor.client.plugins.contentnegotiation.* +import io.ktor.http.* +import io.ktor.serialization.kotlinx.json.* +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonNamingStrategy + + +const val DEFAULT_TELEGRAM_API_HOST = "api.telegram.org" + +class TelegramBotApiClient private constructor( + internal val httpClient: HttpClient, + internal val apiToken: String, + internal val apiProtocol: URLProtocol = URLProtocol.HTTPS, + internal val apiHost: String = DEFAULT_TELEGRAM_API_HOST, + internal val apiPort: Int = DEFAULT_PORT, + private val onRequest: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?) -> Unit)? = null, + private val onResponse: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?, responseBody: TelegramResponse<*>) -> Unit)? = null, +) { + + internal inline fun executeRequest(requestMethod: String, requestBody: Any?, request: () -> TelegramResponse): TelegramResponse { + onRequest?.invoke(this, requestMethod, requestBody) + val responseBody = request() + onResponse?.invoke(this, requestMethod, requestBody, responseBody) + return responseBody + } + + fun closeHttpClient() { + httpClient.close() + } + + companion object { + + @OptIn(ExperimentalSerializationApi::class) + private fun HttpClientConfig<*>.applyDefaultConfiguration() { + install(ContentNegotiation) { + json(Json { + // chat_id to chatId + namingStrategy = JsonNamingStrategy.SnakeCase + // To avoid the deserialization breaking when Telegram introduces new fields + ignoreUnknownKeys = true + // Smaller payloads + explicitNulls = false + }) + } + } + + operator fun invoke( + apiToken: String, + protocol: URLProtocol = URLProtocol.HTTPS, + engine: HttpClientEngine? = null, + host: String = DEFAULT_TELEGRAM_API_HOST, + port: Int = DEFAULT_PORT, + onRequest: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?) -> Unit)? = null, + onResponse: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?, responseBody: TelegramResponse<*>) -> Unit)? = null, + configuration: (HttpClientConfig<*>.() -> Unit)? = null, + ): TelegramBotApiClient { + val httpClient = if (engine == null) { + HttpClient { + applyDefaultConfiguration() + configuration?.invoke(this) + } + } else { + HttpClient(engine) { + applyDefaultConfiguration() + configuration?.invoke(this) + } + } + return TelegramBotApiClient(httpClient, apiToken, protocol, host, port, onRequest, onResponse) + } + + operator fun invoke( + apiToken: String, + engine: HttpClientEngineFactory, + protocol: URLProtocol = URLProtocol.HTTPS, + host: String = DEFAULT_TELEGRAM_API_HOST, + port: Int = DEFAULT_PORT, + onRequest: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?) -> Unit)? = null, + onResponse: (TelegramBotApiClient.(requestMethod: String, requestBody: Any?, responseBody: TelegramResponse<*>) -> Unit)? = null, + configuration: (HttpClientConfig.() -> Unit)? = null, + ): TelegramBotApiClient { + val httpClient = HttpClient(engine) { + applyDefaultConfiguration() + configuration?.let { it() } + } + return TelegramBotApiClient(httpClient, apiToken, protocol, host, port, onRequest, onResponse) + } + + } + +} diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiContext.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiContext.kt new file mode 100644 index 0000000..04a66d9 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiContext.kt @@ -0,0 +1,5 @@ +package me.alllex.tbot.api.client + +interface TelegramBotApiContext { + val botApiClient: TelegramBotApiClient +} diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiException.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiException.kt new file mode 100644 index 0000000..f5e7934 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiException.kt @@ -0,0 +1,10 @@ +package me.alllex.tbot.api.client + +class TelegramBotApiException( + val response: TelegramResponse<*>, +) : RuntimeException(response.description) { + + override fun toString(): String { + return "TelegramBotApiException(response=$response)" + } +} diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiPoller.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiPoller.kt new file mode 100644 index 0000000..ed7d54b --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotApiPoller.kt @@ -0,0 +1,205 @@ +package me.alllex.tbot.api.client + +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.BufferOverflow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.takeWhile +import me.alllex.tbot.api.model.Update +import me.alllex.tbot.api.model.asSeconds +import me.alllex.tbot.api.model.tryGetUpdates +import org.slf4j.Logger +import org.slf4j.LoggerFactory +import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicLong +import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.coroutineContext +import kotlin.time.Duration +import kotlin.time.Duration.Companion.milliseconds +import kotlin.time.Duration.Companion.seconds + + +@OptIn(ExperimentalCoroutinesApi::class) +class TelegramBotApiPoller( + private val client: TelegramBotApiClient, + private val pollingTimeout: Duration = 10.seconds +) { + + private val started = AtomicBoolean(false) + private val updateOffset = AtomicLong(0) + + private val dispatcher = Dispatchers.IO.limitedParallelism(1) + // should not need sync as long as start/stop are ordered by happens-before + private var pollerCoroutineScope: CoroutineScope? = null + + /** + * When a batch of updates is emitted into this flow, + * the flow suspends emission of a next value until the previous on has been consumed (zero-buffer + suspend on overflow). + * This leads to a behavior that the next batch of updates is not requested from the Bot API until + * the last update from the previous batch is emitted. + * It means that as soon as the last update from a batch is emitted, the poller does not wait for the listeners to + * process it and starts fetching the next batch immediately (in doing so, it confirms that the previous batch can be dropped on the Bot API side). + */ + private val _updates: MutableSharedFlow = MutableSharedFlow(extraBufferCapacity = 0, onBufferOverflow = BufferOverflow.SUSPEND) + + private val botApiContext = object : TelegramBotApiContext { + override val botApiClient: TelegramBotApiClient get() = client + } + + /** + * Starts polling with the given listener. + * + * Cannot be restarted again. + */ + fun start(listener: TelegramBotUpdateListener) { + check(started.compareAndSet(false, true)) { "Already started" } + + val coroutineScope = CoroutineScope(SupervisorJob() + dispatcher + CoroutineExceptionHandler(::onUnhandledCoroutineException)) + this.pollerCoroutineScope = coroutineScope + + coroutineScope.launch { + _updates.collect { update -> + listener.onUpdateSafely(update) + } + } + + coroutineScope.launch { + // have to await, because the collector registration happens concurrently + // and as soon as there is at least one collector the polling will start immediately + // which could lead to the remaining collectors to skip updates if they start collecting later + _updates.awaitCollectors(n = 1) + + runPollingForever() + } + + log.info("Started") + } + + fun runForever(listener: TelegramBotUpdateListener) { + start(listener) + + runBlocking { + pollerCoroutineScope!!.coroutineContext.job.join() + } + } + + suspend fun stop() { + val pollerJob = pollerCoroutineScope!!.coroutineContext.job + try { + pollerJob.cancelAndJoin() + log.info("Polling job stopped successfully") + } catch (e: CancellationException) { + throw e + } catch (e: Throwable) { + log.error("Failed to gracefully stop polling job", e) + } finally { + pollerCoroutineScope = null + started.set(false) + log.info("Stopped") + } + } + + fun stopBlocking(gracefulAwait: Duration = 500.milliseconds) { + runBlocking { + withTimeout(gracefulAwait) { + stop() + } + } + } + + private suspend fun TelegramBotUpdateListener.onUpdateSafely(update: Update) { + try { + with(botApiContext) { + onUpdate(update) + } + } catch (e: CancellationException) { + throw e + } catch (e: Throwable) { + log.error("Failed to process update $update", e) + } + } + + private suspend fun runPollingForever() { + while (coroutineContext.isActive) { + runPollingIteration() + } + } + + private suspend fun runPollingIteration() { + val updates = fetchUpdatesSafelyRetryingForever() ?: return + log.debug("Received ${updates.size} updates") + + for (update in updates) { + _updates.emit(update) // cancellable + val updateId = update.updateId + updateOffset.updateAndGet { maxOf(it, updateId + 1) } + } + } + + private suspend fun fetchUpdatesSafelyRetryingForever(): List? { + // happy path + fetchUpdatesSafely()?.let { return it } + + // 1, 2, 4, 8, 10, 10, ... + val retryDelaySeconds = generateSequence(1) { it * 2 }.map { it.coerceAtMost(10) } + + for (delaySeconds in retryDelaySeconds) { + if (!coroutineContext.isActive) break + + fetchUpdatesSafely()?.let { return it } + + log.warn("Retrying update fetching in $delaySeconds seconds...") + delay(delaySeconds * 1000L) + } + + // Should not get here + return null + } + + /** + * Returns fetched updates or null if an error occurred. + */ + private suspend fun fetchUpdatesSafely(): List? { + return try { + fetchUpdates() + } catch (e: CancellationException) { + throw e + } catch (e: Throwable) { + log.error("Failed to get updates due to unexpected error:", e) + null + } + } + + private suspend fun fetchUpdates(): List? { + val updateOffsetValue = updateOffset.get() + log.debug("Fetching updates with offset $updateOffsetValue") + val response = client.tryGetUpdates(updateOffsetValue, timeout = pollingTimeout.asSeconds) + if (response.ok) { + return response.result + } + + log.error("Failed to get updates: $response") + + val retryAfter = response.parameters?.retryAfter + if (retryAfter != null) { + log.warn("Too many requests, Bot API asks to retry after $retryAfter seconds. Suspending requests for this time...") + delay(retryAfter.value * 1000L) + return null + } + + return null + } + + companion object { + + private val log: Logger = LoggerFactory.getLogger(TelegramBotApiPoller::class.java) + + private fun onUnhandledCoroutineException(context: CoroutineContext, throwable: Throwable) { + log.error("Unhandled coroutine exception in $context", throwable) + } + + private suspend fun MutableSharedFlow.awaitCollectors(n: Int = 1) { + subscriptionCount.takeWhile { it < n }.collect() + } + } +} diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotUpdateListener.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotUpdateListener.kt new file mode 100644 index 0000000..befe095 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramBotUpdateListener.kt @@ -0,0 +1,151 @@ +package me.alllex.tbot.api.client + +import me.alllex.tbot.api.model.* + + +interface TelegramBotUpdateListener { + + context(TelegramBotApiContext) + suspend fun onMessage(message: Message) { + } + + context(TelegramBotApiContext) + suspend fun onEditedMessage(message: Message) { + } + + context(TelegramBotApiContext) + suspend fun onChannelPost(message: Message) { + } + + context(TelegramBotApiContext) + suspend fun onEditedChannelPost(message: Message) { + } + + context(TelegramBotApiContext) + suspend fun onInlineQuery(inlineQuery: InlineQuery) { + } + + context(TelegramBotApiContext) + suspend fun onChosenInlineResult(chosenInlineResult: ChosenInlineResult) { + } + + context(TelegramBotApiContext) + suspend fun onCallbackQuery(callbackQuery: CallbackQuery) { + } + + context(TelegramBotApiContext) + suspend fun onShippingQuery(shippingQuery: ShippingQuery) { + } + + context(TelegramBotApiContext) + suspend fun onPreCheckoutQuery(preCheckoutQuery: PreCheckoutQuery) { + } + + context(TelegramBotApiContext) + suspend fun onPoll(poll: Poll) { + } + + context(TelegramBotApiContext) + suspend fun onPollAnswer(pollAnswer: PollAnswer) { + } + + context(TelegramBotApiContext) + suspend fun onMyChatMember(chatMemberUpdated: ChatMemberUpdated) { + } + + context(TelegramBotApiContext) + suspend fun onChatMember(chatMemberUpdated: ChatMemberUpdated) { + } + + context(TelegramBotApiContext) + suspend fun onChatJoinRequest(chatJoinRequest: ChatJoinRequest) { + } + + context(TelegramBotApiContext) + suspend fun onUpdate(update: Update) { + when (update) { + is MessageUpdate -> onMessage(update.message) + is EditedMessageUpdate -> onEditedMessage(update.editedMessage) + is ChannelPostUpdate -> onChannelPost(update.channelPost) + is EditedChannelPostUpdate -> onEditedChannelPost(update.editedChannelPost) + is InlineQueryUpdate -> onInlineQuery(update.inlineQuery) + is ChosenInlineResultUpdate -> onChosenInlineResult(update.chosenInlineResult) + is CallbackQueryUpdate -> onCallbackQuery(update.callbackQuery) + is ShippingQueryUpdate -> onShippingQuery(update.shippingQuery) + is PreCheckoutQueryUpdate -> onPreCheckoutQuery(update.preCheckoutQuery) + is PollUpdate -> onPoll(update.poll) + is PollAnswerUpdate -> onPollAnswer(update.pollAnswer) + is MyChatMemberUpdate -> onMyChatMember(update.myChatMember) + is ChatMemberUpdate -> onChatMember(update.chatMember) + is ChatJoinRequestUpdate -> onChatJoinRequest(update.chatJoinRequest) + } + } +} + +fun interface TelegramBotUpdateHandler { + context(TelegramBotApiContext) + suspend fun handle(update: T) +} + +fun TelegramBotUpdateListener( + onMessage: TelegramBotUpdateHandler? = null, + onEditedMessage: TelegramBotUpdateHandler? = null, + onChannelPost: TelegramBotUpdateHandler? = null, + onEditedChannelPost: TelegramBotUpdateHandler? = null, + onInlineQuery: TelegramBotUpdateHandler? = null, + onChosenInlineResult: TelegramBotUpdateHandler? = null, + onCallbackQuery: TelegramBotUpdateHandler? = null, + onShippingQuery: TelegramBotUpdateHandler? = null, + onPreCheckoutQuery: TelegramBotUpdateHandler? = null, + onPoll: TelegramBotUpdateHandler? = null, + onPollAnswer: TelegramBotUpdateHandler? = null, + onMyChatMember: TelegramBotUpdateHandler? = null, + onChatMember: TelegramBotUpdateHandler? = null, + onChatJoinRequest: TelegramBotUpdateHandler? = null, + @Suppress("UNUSED_PARAMETER") noTrailingLambda: Unit = Unit, +): TelegramBotUpdateListener { + + return object : TelegramBotUpdateListener { + context(TelegramBotApiContext) override suspend fun onMessage(message: Message) = + onMessage?.handle(message) ?: Unit + + context(TelegramBotApiContext) override suspend fun onEditedMessage(message: Message) = + onEditedMessage?.handle(message) ?: Unit + + context(TelegramBotApiContext) override suspend fun onChannelPost(message: Message) = + onChannelPost?.handle(message) ?: Unit + + context(TelegramBotApiContext) override suspend fun onEditedChannelPost(message: Message) = + onEditedChannelPost?.handle(message) ?: Unit + + context(TelegramBotApiContext) override suspend fun onInlineQuery(inlineQuery: InlineQuery) = + onInlineQuery?.handle(inlineQuery) ?: Unit + + context(TelegramBotApiContext) override suspend fun onChosenInlineResult(chosenInlineResult: ChosenInlineResult) = + onChosenInlineResult?.handle(chosenInlineResult) ?: Unit + + context(TelegramBotApiContext) override suspend fun onCallbackQuery(callbackQuery: CallbackQuery) = + onCallbackQuery?.handle(callbackQuery) ?: Unit + + context(TelegramBotApiContext) override suspend fun onShippingQuery(shippingQuery: ShippingQuery) = + onShippingQuery?.handle(shippingQuery) ?: Unit + + context(TelegramBotApiContext) override suspend fun onPreCheckoutQuery(preCheckoutQuery: PreCheckoutQuery) = + onPreCheckoutQuery?.handle(preCheckoutQuery) ?: Unit + + context(TelegramBotApiContext) override suspend fun onPoll(poll: Poll) = + onPoll?.handle(poll) ?: Unit + + context(TelegramBotApiContext) override suspend fun onPollAnswer(pollAnswer: PollAnswer) = + onPollAnswer?.handle(pollAnswer) ?: Unit + + context(TelegramBotApiContext) override suspend fun onMyChatMember(chatMemberUpdated: ChatMemberUpdated) = + onMyChatMember?.handle(chatMemberUpdated) ?: Unit + + context(TelegramBotApiContext) override suspend fun onChatMember(chatMemberUpdated: ChatMemberUpdated) = + onChatMember?.handle(chatMemberUpdated) ?: Unit + + context(TelegramBotApiContext) override suspend fun onChatJoinRequest(chatJoinRequest: ChatJoinRequest) = + onChatJoinRequest?.handle(chatJoinRequest) ?: Unit + } +} diff --git a/src/main/kotlin/me/alllex/tbot/api/client/TelegramResponse.kt b/src/main/kotlin/me/alllex/tbot/api/client/TelegramResponse.kt new file mode 100644 index 0000000..af08bd8 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/client/TelegramResponse.kt @@ -0,0 +1,23 @@ +package me.alllex.tbot.api.client + +import kotlinx.serialization.Serializable +import me.alllex.tbot.api.model.ResponseParameters +import kotlin.jvm.Throws + +@Serializable +data class TelegramResponse( + val result: T? = null, + val ok: Boolean, + val description: String? = null, + val errorCode: Int? = null, + val parameters: ResponseParameters? = null +) + +@Throws(TelegramBotApiException::class) +fun TelegramResponse.getResultOrThrow(): T { + if (ok && result != null) { + return result + } + + throw TelegramBotApiException(this) +} diff --git a/src/main/kotlin/me/alllex/tbot/api/model/Helpers.kt b/src/main/kotlin/me/alllex/tbot/api/model/Helpers.kt new file mode 100644 index 0000000..6ac97b1 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/model/Helpers.kt @@ -0,0 +1,64 @@ +package me.alllex.tbot.api.model + +import me.alllex.tbot.api.client.TelegramBotApiClient +import java.time.Instant +import kotlin.time.Duration + + +val Int.asSeconds get() = Seconds(this.toLong()) + +val Long.asSeconds get() = Seconds(this) + +val Duration.asSeconds get() = Seconds(this.inWholeSeconds) + +val User.usernameOrId: String get() = "@" + (username ?: id.value.toString()) + +fun UnixTimestamp.toInstant(): Instant = Instant.ofEpochMilli(value * 1000) + +val MessageEntity.isBotCommand get(): Boolean = type == "bot_command" + +fun Message.findLeadCommand(): MessageEntity? { + return findEntity { it.isBotCommand } + ?.takeIf { it.offset == 0L } +} + +inline fun Message.findEntity(predicate: (MessageEntity) -> Boolean): MessageEntity? { + return entities?.find(predicate) +} + +inline fun Message.findEntityText(predicate: (MessageEntity) -> Boolean): String? { + val e = findEntity(predicate) ?: return null + return this[e] +} + +/** + * Extracts part of the [text] which is covered by the [entity] + */ +operator fun Message.get(entity: MessageEntity): String { + val text = ensureText("unable to extract entity from missing text") + val start = entity.offset + val endExcl = start + entity.length + return text.substring(start.toInt(), endExcl.toInt()) +} + +fun Message.getTextAfter(entity: MessageEntity): String { + val text = ensureText("unable to determine entity boundaries in empty text") + val startIndex = entity.offset + entity.length + return text.substring(startIndex.toInt()) +} + +private fun Message.ensureText(reason: String): String { + val text = text + requireNotNull(text) { reason } + return text +} + +suspend fun TelegramBotApiClient.selfCheck(expectedUsername: String) { + val me = getMe() + check(me.isBot) { + "Self-check for being a bot has failed" + } + check(me.username == expectedUsername) { + "Username must be @$expectedUsername, but it is @${me.username}" + } +} diff --git a/src/main/kotlin/me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder.kt b/src/main/kotlin/me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder.kt new file mode 100644 index 0000000..61a8cb6 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/model/InlineKeyboardMarkupBuilder.kt @@ -0,0 +1,158 @@ +package me.alllex.tbot.api.model + + +/** + * Creates an [InlineKeyboardMarkup] using the provided [block]. + * + * Example: + * ``` + * val markup = inlineKeyboard { + * row { + * button("Yes", "yes") + * button("No", "no") + * } + * button("Cancel", "maybe") + * } + * ``` + * + * Creates the following markup: + * ``` + * ____________ + * | Yes | No | + * ____________ + * | Cancel | + * ------------ + * ``` + */ +@InlineKeyboardMarkupDsl +fun inlineKeyboard(block: InlineKeyboardMarkupBuilder.() -> Unit): InlineKeyboardMarkup { + val inlineKeyboardBuilder = InlineKeyboardMarkupBuilder() + inlineKeyboardBuilder.apply(block) + return inlineKeyboardBuilder.build() +} + +/** + * Adds a row to the inline keyboard. + */ +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.row(block: InlineKeyboardMarkupBuilder.RowBuilder.() -> Unit) { + val rowBuilder = InlineKeyboardMarkupBuilder.RowBuilder() + rowBuilder.apply(block) + addRow(rowBuilder.build()) +} + +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.rowsChunked(columns: Int, block: InlineKeyboardMarkupBuilder.RowBuilder.() -> Unit) { + val rowBuilder = InlineKeyboardMarkupBuilder.RowBuilder() + rowBuilder.apply(block) + val buttons = rowBuilder.build() + buttons.chunked(columns).forEach { addRow(it) } +} + +/** + * Adds a button to the row in the inline keyboard. + */ +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.RowBuilder.button(text: String, callbackData: String) { + val buttonBuilder = InlineKeyboardMarkupBuilder.ButtonBuilder() + buttonBuilder.text = text + buttonBuilder.callbackData = callbackData + addButton(buttonBuilder) +} + +/** + * Adds a row with a single button to the inline keyboard. + */ +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.button(text: String, callbackData: String) { + row { + button(text, callbackData) + } +} + +/** + * Adds a link-button to the row in the inline keyboard. + */ +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.RowBuilder.buttonLink(text: String, url: String) { + val buttonBuilder = InlineKeyboardMarkupBuilder.ButtonBuilder() + buttonBuilder.text = text + buttonBuilder.url = url + addButton(buttonBuilder) +} + +/** + * Adds a row with a single link-button to the inline keyboard. + */ +@InlineKeyboardMarkupDsl +fun InlineKeyboardMarkupBuilder.buttonLink(text: String, url: String) { + row { + buttonLink(text, url) + } +} + +/** + * Builder for [InlineKeyboardMarkup]. Best used with DSL functions such as [inlineKeyboard]. + */ +@InlineKeyboardMarkupDsl +class InlineKeyboardMarkupBuilder { + + private val rows = mutableListOf>() + + fun addRow(row: List) { + if (row.isNotEmpty()) { + rows += row + } + } + + fun build(): InlineKeyboardMarkup { + return InlineKeyboardMarkup(rows) + } + + @InlineKeyboardMarkupDsl + class RowBuilder { + + private val buttons = mutableListOf() + + fun addButton(button: ButtonBuilder) { + buttons += button + } + + fun build(): List { + return buttons.map { it.build() } + } + + } + + @InlineKeyboardMarkupDsl + class ButtonBuilder { + + var text: String? = null + var url: String? = null + var callbackData: String? = null + + fun build(): InlineKeyboardButton { + val text = text ?: error("text is not set") + check(text.isNotEmpty()) { "text is empty" } + + val url = url + val callbackData = callbackData + + check(listOfNotNull(url, callbackData).size == 1) { + "Exactly one of optional fields must be set" + } + check(url == null || url.isNotEmpty()) { "url is empty" } + check(callbackData == null || callbackData.isNotEmpty()) { "callbackData is empty" } + + return InlineKeyboardButton(text, url = url, callbackData = callbackData) + } + + } + +} + +/** + * Marks DSL and makes sure invalid constructs such as `row { row { } }` do not compile. + */ +@DslMarker +annotation class InlineKeyboardMarkupDsl diff --git a/src/main/kotlin/me/alllex/tbot/api/model/ParseMode.kt b/src/main/kotlin/me/alllex/tbot/api/model/ParseMode.kt new file mode 100644 index 0000000..84a5b00 --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/model/ParseMode.kt @@ -0,0 +1,24 @@ +package me.alllex.tbot.api.model + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +/** + * Telegram supports multiple kinds of [ParseMode] for text messages. + * + * See more in [formatting options documentation](https://core.telegram.org/bots/api#formatting-options) + */ +@Serializable +enum class ParseMode(val value: String) { + + @SerialName("MarkdownV2") + MARKDOWN_V2("MarkdownV2"), + + @SerialName("HTML") + HTML("HTML"), + + @SerialName("Markdown") + MARKDOWN("Markdown"); + + override fun toString() = value +} diff --git a/src/main/kotlin/me/alllex/tbot/api/model/util.kt b/src/main/kotlin/me/alllex/tbot/api/model/util.kt new file mode 100644 index 0000000..0a4155b --- /dev/null +++ b/src/main/kotlin/me/alllex/tbot/api/model/util.kt @@ -0,0 +1,32 @@ +package me.alllex.tbot.api.model + +internal fun quoteWhenWhitespace(v: Any?) = + if (v != null && v is CharSequence) quoteWhenWhitespace(v) else v + +internal fun quoteWhenWhitespace(s: CharSequence): String = if (s.any { it.isWhitespace() }) "'$s'" else s.toString() + +internal fun joinLines(v: Any?) = + if (v != null && v is CharSequence) joinLines(v) else v + +internal fun joinLines(s: CharSequence): String = s.splitToSequence('\n').joinToString(separator = "\\n") + +class DebugStringBuilder(name: String) { + + private val sb = StringBuilder(name).append('(') + private var first = true + + fun prop(name: String, value: Any?) = apply { + if (value == null) return@apply + + if (first) { + first = false + } else { + sb.append(", ") + } + sb.append(name).append('=').append(quoteWhenWhitespace(joinLines(value))) + } + + override fun toString(): String { + return sb.append(')').toString() + } +} diff --git a/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiClientTest.kt b/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiClientTest.kt new file mode 100644 index 0000000..7a7ea7a --- /dev/null +++ b/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiClientTest.kt @@ -0,0 +1,202 @@ +package me.alllex.tbot.api.client + +import assertk.assertThat +import assertk.assertions.isEqualTo +import assertk.assertions.isInstanceOf +import assertk.assertions.prop +import io.ktor.client.engine.mock.* +import io.ktor.client.utils.* +import io.ktor.content.* +import io.ktor.http.* +import org.junit.jupiter.api.Test + +import io.ktor.utils.io.ByteReadChannel +import kotlinx.coroutines.test.runTest +import me.alllex.tbot.api.model.* +import kotlin.test.assertEquals + + +class TelegramBotApiClientTest { + + @Test + fun sendsGetRequestAndReceivesResponse() = runTest { + val engine = MockEngine { request -> + assertThat(request.url.toString()).isEqualTo("https://bot.test/botToken/getMe") + assertThat(request.method).isEqualTo(HttpMethod.Get) + assertThat(request.body).isEqualTo(EmptyContent) + + respond( + content = ByteReadChannel("""{"ok": true, "result": {"id": 525, "is_bot": true, "first_name": "Test Bot", "username": "test_bot"}}"""), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json") + ) + } + + val client = TelegramBotApiClient("Token", host = "bot.test", engine = engine) + + val actualResponse = client.tryGetMe() + + assertEquals( + actual = actualResponse, + expected = TelegramResponse( + ok = true, + result = User( + id = UserId(525), + isBot = true, + firstName = "Test Bot", + username = "test_bot" + ) + ) + ) + } + + @Test + fun sendsGetRequestAndReceivesFailingResponse() = runTest { + val engine = MockEngine { request -> + assertThat(request.url.toString()).isEqualTo("https://bot.test/botToken/getMe") + assertThat(request.method).isEqualTo(HttpMethod.Get) + assertThat(request.body).isEqualTo(EmptyContent) + + respond( + content = ByteReadChannel("""{"ok": false, "description":"wrong parameter"}"""), + status = HttpStatusCode.BadRequest, + headers = headersOf(HttpHeaders.ContentType, "application/json") + ) + } + + val client = TelegramBotApiClient("Token", host = "bot.test", engine = engine) + + val actualResponse = client.tryGetMe() + + assertEquals( + actual = actualResponse, + expected = TelegramResponse( + ok = false, + description = "wrong parameter" + ) + ) + } + + @Test + fun sendsPostRequestAndReceivesResponse() = runTest { + val engine = MockEngine { request -> + assertThat(request.url.toString()).isEqualTo("https://bot.test/botToken/getUpdates") + assertThat(request.method).isEqualTo(HttpMethod.Post) + assertThat(request.body).isInstanceOf() + .prop(TextContent::text).isEqualTo("""{"allowed_updates":["message","inline_query"]}""") + + respond( + content = ByteReadChannel( + """{ + "ok": true, + "result": [ + {"update_id": 8000, "message": {"message_id": 1000, "date": 2023, "chat": {"id": 1, "type": "private"}, "text": "Message text"}}, + {"update_id": 8001, "inline_query": {"id": "3001", "from": {"id": 2, "is_bot": false, "first_name": "TestUser"}, "query": "Query text", "offset": "test offset"}} + ] + }""".trimIndent() + ), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json") + ) + } + + val client = TelegramBotApiClient("Token", host = "bot.test", engine = engine) + + val actualResponse = client.tryGetUpdates( + allowedUpdates = listOf(UpdateType.MESSAGE, UpdateType.INLINE_QUERY) + ) + + assertEquals( + actual = actualResponse, + expected = TelegramResponse( + ok = true, + result = listOf( + MessageUpdate( + updateId = 8000, + message = Message( + messageId = MessageId(1000), + date = UnixTimestamp(2023), + chat = Chat( + id = ChatId(1), + type = "private", + ), + text = "Message text" + ) + ), + InlineQueryUpdate( + updateId = 8001, + inlineQuery = InlineQuery( + id = InlineQueryId("3001"), + from = User( + id = UserId(2), + isBot = false, + firstName = "TestUser" + ), + query = "Query text", + offset = "test offset" + ) + ) + ) + ) + ) + } + + @Test + fun sendsPostRequestWithUnionTypeField() = runTest { + val engine = MockEngine { request -> + assertThat(request.url.toString()).isEqualTo("https://bot.test/botToken/sendMessage") + assertThat(request.method).isEqualTo(HttpMethod.Post) + assertThat(request.body).isInstanceOf() + .prop(TextContent::text).isEqualTo("""{"chat_id":1,"text":"Hello","reply_markup":{"inline_keyboard":[[{"text":"Button"}]]}}""") + + respond( + content = ByteReadChannel( + """{ + "ok": true, + "result": { + "message_id": 1000, + "date": 2023, + "chat": {"id": 1, "type": "private"}, + "text": "Message text" + } + }""".trimIndent() + ), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json") + ) + } + + val client = TelegramBotApiClient("Token", host = "bot.test", engine = engine) + + val actualResponse = client.trySendMessage( + chatId = ChatId(1), + text = "Hello", + replyMarkup = InlineKeyboardMarkup( + inlineKeyboard = listOf( + listOf( + InlineKeyboardButton( + text = "Button", + ) + ) + ) + ) + ) + + assertEquals( + actual = actualResponse, + expected = TelegramResponse( + ok = true, + result = Message( + messageId = MessageId(1000), + date = UnixTimestamp(2023), + chat = Chat( + id = ChatId(1), + type = "private", + ), + text = "Message text" + ) + ) + ) + } + +} diff --git a/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiPollerTest.kt b/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiPollerTest.kt new file mode 100644 index 0000000..7e3769a --- /dev/null +++ b/src/test/kotlin/me/alllex/tbot/api/client/TelegramBotApiPollerTest.kt @@ -0,0 +1,112 @@ +package me.alllex.tbot.api.client + +import assertk.all +import assertk.assertThat +import assertk.assertions.isEqualTo +import assertk.assertions.prop +import io.ktor.client.engine.mock.* +import io.ktor.client.request.* +import io.ktor.content.* +import io.ktor.http.* +import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.test.runTest +import kotlinx.serialization.ExperimentalSerializationApi +import kotlinx.serialization.encodeToString +import kotlinx.serialization.json.Json +import kotlinx.serialization.json.JsonNamingStrategy +import me.alllex.tbot.api.model.* +import org.junit.jupiter.api.Test +import org.slf4j.LoggerFactory +import kotlin.test.fail + +@OptIn(ExperimentalSerializationApi::class) +class TelegramBotApiPollerTest { + + private val json = Json { + namingStrategy = JsonNamingStrategy.SnakeCase + explicitNulls = false + } + + private inline fun MockRequestHandleScope.respondOk(body: T): HttpResponseData = respond( + content = json.encodeToString(TelegramResponse(ok = true, result = body)), + status = HttpStatusCode.OK, + headers = headersOf(HttpHeaders.ContentType, "application/json") + ) + + @Test + fun pollerRequestsUpdatesAndCanBeStopped() = runTest { + + val deferredStop = CompletableDeferred() + val deferredEnd = CompletableDeferred() + + val engine = MockEngine { request -> + val url = request.url.toString() + val requestBodyText = (request.body as TextContent).text + when { + url.endsWith("/getUpdates") -> { + val body = json.decodeFromString(requestBodyText) + when (body.offset?.toInt()) { + 0 -> { + log.info("[TEST] API: Responding with 1 message") + respondOk( + listOf( + MessageUpdate( + updateId = 8000, + message = Message( + messageId = MessageId(1000), + date = UnixTimestamp(2023), + chat = Chat(id = ChatId(1), type = "private"), + text = "Message 1" + ) + ) + ) + ) + } + + 8001 -> { + log.info("[TEST] API: Completing deferred for stop") + deferredStop.complete(true) + log.info("[TEST] API: Waiting for deferred for end") + deferredEnd.await() + log.info("[TEST] API: Responding with empty list") + respondOk(listOf()) + } + + else -> fail("Unexpected offset: ${body.offset}") + } + } + + else -> fail("Unexpected request: $request") + } + + } + + val client = TelegramBotApiClient(":testToken", host = "bot.test", engine = engine) + val poller = TelegramBotApiPoller(client) + + poller.start(TelegramBotUpdateListener( + onMessage = { message -> + log.info("[TEST] Received message: $message") + assertThat(message).all { + prop(Message::text).isEqualTo("Message 1") + } + } + )) + + log.info("[TEST] Waiting for deferred for stop") + deferredStop.await() + + log.info("[TEST] Stopping poller") + poller.stop() + + log.info("[TEST] Completing deferred for end") + deferredEnd.complete(true) + + log.info("[TEST] Done") + } + + companion object { + private val log = LoggerFactory.getLogger(TelegramBotApiPollerTest::class.java) + } + +} diff --git a/src/test/kotlin/me/alllex/tbot/demo/EchoBot.kt b/src/test/kotlin/me/alllex/tbot/demo/EchoBot.kt new file mode 100644 index 0000000..2d4169a --- /dev/null +++ b/src/test/kotlin/me/alllex/tbot/demo/EchoBot.kt @@ -0,0 +1,52 @@ +package me.alllex.tbot.demo + +import kotlinx.coroutines.runBlocking +import me.alllex.tbot.api.client.TelegramBotApiClient +import me.alllex.tbot.api.client.TelegramBotApiPoller +import me.alllex.tbot.api.client.TelegramBotUpdateListener +import me.alllex.tbot.api.model.* +import java.util.concurrent.CountDownLatch + + +fun main(args: Array) { + check(args.size >= 2) { "Expected 2 arguments" } + val (botApiToken, botUsername) = args + + val client = TelegramBotApiClient(botApiToken) + + println("Checking bot info...") + runBlocking { client.selfCheck(botUsername) } + println("Bot info is OK") + + val poller = TelegramBotApiPoller(client) + val countDownLatch = CountDownLatch(1) + + val listener = TelegramBotUpdateListener( + onMessage = { message -> + println("Received message: $message") + val text = message.text + if (text.equals("stop", ignoreCase = true)) { + println("Received stop command, stopping...") + countDownLatch.countDown() + } else { + println("Echoing the message back to the chat...") + message.copyMessage(message.chat.id, replyToMessageId = message.messageId, replyMarkup = inlineKeyboard { + button("Button", "wow") + }) + } + }, + onCallbackQuery = { callbackQuery -> + println("Received callback query: $callbackQuery") + callbackQuery.answer("Wow!") + } + ) + + println("Starting bot...") + poller.start(listener) + println("Bot started") + + countDownLatch.await() + poller.stopBlocking() + + println("Done") +} diff --git a/src/test/resources/log4j2-test.properties b/src/test/resources/log4j2-test.properties new file mode 100644 index 0000000..2c8659a --- /dev/null +++ b/src/test/resources/log4j2-test.properties @@ -0,0 +1,8 @@ +rootLogger.level=DEBUG +appenders=console +appender.console.type=Console +appender.console.name=STDOUT +appender.console.layout.type=PatternLayout +appender.console.layout.pattern=%highlight{%p{length=1}} %highlight{%d{yyMMdd HHmmss.SSS}}{INFO=normal,DEBUG=normal,TRACE=normal} [%t] %c{1.} - %m%n +rootLogger.appenderRefs=console +rootLogger.appenderRef.console.ref=STDOUT diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..1d0ba9e --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +0.4.0