import { EventEmitter } from "node:events";
import { HttpClient, type HttpClientOptions } from "./http.js";
import { type PollingOptions, type PollingStartOptions, type PollingStopOptions } from "./polling.js";
import { type WebHookOptions } from "./webhook.js";
import { type FileInput, type FileMeta } from "./utils.js";
import type { ChatId, InputRichMessage, MessageType, Update, Message, CallbackQuery, InlineQuery, ChosenInlineResult, ShippingQuery, PreCheckoutQuery, PaidMediaPurchased, Poll, PollAnswer, ChatMemberUpdated, ChatJoinRequest, ChatBoostUpdated, ChatBoostRemoved, BusinessConnection, BusinessMessagesDeleted, MessageReactionUpdated, MessageReactionCountUpdated, ManagedBotUpdated, BotCommand, InputProfilePhotoInput, MaskPosition, InlineKeyboardMarkup, ChatPermissions, InlineQueryResult, InputPollOption, InputMedia, InputFile, InputStoryContent, InputChecklist, KeyboardButton, AcceptedGiftTypes, GetUpdatesParams, SetWebhookParams, DeleteWebhookParams, SendMessageParams, ForwardMessageParams, ForwardMessagesParams, CopyMessageParams, CopyMessagesParams, SendPhotoParams, SendLivePhotoParams, SendPaidMediaParams, SendMediaGroupParams, SendAudioParams, SendDocumentParams, SendVideoParams, SendAnimationParams, SendVoiceParams, SendVideoNoteParams, SendLocationParams, SendVenueParams, SendContactParams, SendPollParams, SendDiceParams, SendChatActionParams, AnswerCallbackQueryParams, AnswerInlineQueryParams, SendInvoiceParams, SendChecklistParams, SendMessageDraftParams, SendRichMessageParams, SendRichMessageDraftParams, AnswerChatJoinRequestQueryParams, SendChatJoinRequestWebAppParams, SetMessageReactionParams, GetUserProfilePhotosParams, GetUserProfileAudiosParams, SetUserEmojiStatusParams, EditMessageLiveLocationParams, StopMessageLiveLocationParams, BanChatMemberParams, UnbanChatMemberParams, RestrictChatMemberParams, PromoteChatMemberParams, SetChatMemberTagParams, SetChatPermissionsParams, CreateChatInviteLinkParams, EditChatInviteLinkParams, CreateChatSubscriptionInviteLinkParams, EditChatSubscriptionInviteLinkParams, PinChatMessageParams, UnpinChatMessageParams, GetChatAdministratorsParams, CreateForumTopicParams, EditForumTopicParams, SetManagedBotAccessSettingsParams, SetMyCommandsParams, DeleteMyCommandsParams, GetMyCommandsParams, SetMyNameParams, GetMyNameParams, SetMyDescriptionParams, GetMyDescriptionParams, SetMyShortDescriptionParams, GetMyShortDescriptionParams, SetChatMenuButtonParams, GetChatMenuButtonParams, SetMyDefaultAdministratorRightsParams, GetMyDefaultAdministratorRightsParams, EditMessageTextParams, EditMessageCaptionParams, EditMessageMediaParams, EditMessageChecklistParams, EditMessageReplyMarkupParams, StopPollParams, ApproveSuggestedPostParams, DeclineSuggestedPostParams, SendStickerParams, ReplaceStickerInSetParams, SetStickerKeywordsParams, SetStickerMaskPositionParams, SetCustomEmojiStickerSetThumbnailParams, AnswerWebAppQueryParams, CreateInvoiceLinkParams, AnswerShippingQueryParams, AnswerPreCheckoutQueryParams, GetStarTransactionsParams, SendGameParams, SetGameScoreParams, SendGiftParams, GiftPremiumSubscriptionParams, VerifyUserParams, VerifyChatParams, SetBusinessAccountNameParams, SetBusinessAccountUsernameParams, SetBusinessAccountBioParams, SetBusinessAccountProfilePhotoParams, RemoveBusinessAccountProfilePhotoParams, SetBusinessAccountGiftSettingsParams, GetBusinessAccountGiftsParams, GetUserGiftsParams, GetChatGiftsParams, UpgradeGiftParams, TransferGiftParams, PostStoryParams, RepostStoryParams, EditStoryParams, SavePreparedInlineMessageParams, SavePreparedKeyboardButtonParams, PassportElementError, GetWebhookInfoParams, GetMeParams, LogOutParams, CloseParams, GetForumTopicIconStickersParams, RemoveMyProfilePhotoParams, GetMyStarBalanceParams, GetAvailableGiftsParams, AddStickerToSetResult, AnswerCallbackQueryResult, AnswerGuestQueryResult, AnswerInlineQueryResult, AnswerPreCheckoutQueryResult, AnswerShippingQueryResult, AnswerWebAppQueryResult, ApproveChatJoinRequestResult, ApproveSuggestedPostResult, BanChatMemberResult, BanChatSenderChatResult, CloseForumTopicResult, CloseGeneralForumTopicResult, CloseResult, ConvertGiftToStarsResult, CopyMessageResult, CopyMessagesResult, CreateChatInviteLinkResult, CreateChatSubscriptionInviteLinkResult, CreateForumTopicResult, CreateInvoiceLinkResult, CreateNewStickerSetResult, DeclineChatJoinRequestResult, DeclineSuggestedPostResult, DeleteAllMessageReactionsResult, DeleteBusinessMessagesResult, DeleteChatPhotoResult, DeleteChatStickerSetResult, DeleteForumTopicResult, DeleteMessageReactionResult, DeleteMessageResult, DeleteMessagesResult, DeleteMyCommandsResult, DeleteStickerFromSetResult, DeleteStickerSetResult, DeleteStoryResult, DeleteWebhookResult, EditChatInviteLinkResult, EditChatSubscriptionInviteLinkResult, EditForumTopicResult, EditGeneralForumTopicResult, EditMessageCaptionResult, EditMessageChecklistResult, EditMessageLiveLocationResult, EditMessageMediaResult, EditMessageReplyMarkupResult, EditMessageTextResult, EditStoryResult, EditUserStarSubscriptionResult, ExportChatInviteLinkResult, ForwardMessageResult, ForwardMessagesResult, GetAvailableGiftsResult, GetBusinessAccountGiftsResult, GetBusinessAccountStarBalanceResult, GetBusinessConnectionResult, GetChatAdministratorsResult, GetChatGiftsResult, GetChatMemberCountResult, GetChatMemberResult, GetChatMenuButtonResult, GetChatResult, GetCustomEmojiStickersResult, GetFileResult, GetForumTopicIconStickersResult, GetGameHighScoresResult, GetManagedBotAccessSettingsResult, GetManagedBotTokenResult, GetMeResult, GetMyCommandsResult, GetMyDefaultAdministratorRightsResult, GetMyDescriptionResult, GetMyNameResult, GetMyShortDescriptionResult, GetMyStarBalanceResult, GetStarTransactionsResult, GetStickerSetResult, GetUpdatesResult, GetUserChatBoostsResult, GetUserGiftsResult, GetUserPersonalChatMessagesResult, GetUserProfileAudiosResult, GetUserProfilePhotosResult, GetWebhookInfoResult, GiftPremiumSubscriptionResult, HideGeneralForumTopicResult, LeaveChatResult, LogOutResult, PinChatMessageResult, PostStoryResult, PromoteChatMemberResult, ReadBusinessMessageResult, RefundStarPaymentResult, RemoveBusinessAccountProfilePhotoResult, RemoveChatVerificationResult, RemoveMyProfilePhotoResult, RemoveUserVerificationResult, ReopenForumTopicResult, ReopenGeneralForumTopicResult, ReplaceManagedBotTokenResult, ReplaceStickerInSetResult, RepostStoryResult, RestrictChatMemberResult, RevokeChatInviteLinkResult, SavePreparedInlineMessageResult, SavePreparedKeyboardButtonResult, SendChatActionResult, SendChecklistResult, SendContactResult, SendDiceResult, SendGameResult, SendGiftResult, SendInvoiceResult, SendLivePhotoResult, SendLocationResult, SendMediaGroupResult, SendMessageDraftResult, SendRichMessageResult, SendRichMessageDraftResult, AnswerChatJoinRequestQueryResult, SendChatJoinRequestWebAppResult, SendMessageResult, SendPaidMediaResult, SendPhotoResult, SendPollResult, SendStickerResult, SendAudioResult, SendDocumentResult, SendVideoResult, SendAnimationResult, SendVideoNoteResult, UploadStickerFileResult, SetStickerSetThumbnailResult, SendVenueResult, SendVoiceResult, SetBusinessAccountBioResult, SetBusinessAccountGiftSettingsResult, SetBusinessAccountNameResult, SetBusinessAccountProfilePhotoResult, SetBusinessAccountUsernameResult, SetChatAdministratorCustomTitleResult, SetChatDescriptionResult, SetChatMemberTagResult, SetChatMenuButtonResult, SetChatPermissionsResult, SetChatPhotoResult, SetChatStickerSetResult, SetChatTitleResult, SetCustomEmojiStickerSetThumbnailResult, SetGameScoreResult, SetManagedBotAccessSettingsResult, SetMessageReactionResult, SetMyCommandsResult, SetMyDefaultAdministratorRightsResult, SetMyDescriptionResult, SetMyNameResult, SetMyProfilePhotoResult, SetMyShortDescriptionResult, SetPassportDataErrorsResult, SetStickerEmojiListResult, SetStickerKeywordsResult, SetStickerMaskPositionResult, SetStickerPositionInSetResult, SetStickerSetTitleResult, SetUserEmojiStatusResult, SetWebhookResult, StopMessageLiveLocationResult, StopPollResult, TransferBusinessAccountStarsResult, TransferGiftResult, UnbanChatMemberResult, UnbanChatSenderChatResult, UnhideGeneralForumTopicResult, UnpinAllChatMessagesResult, UnpinAllForumTopicMessagesResult, UnpinAllGeneralForumTopicMessagesResult, UnpinChatMessageResult, UpgradeGiftResult, VerifyChatResult, VerifyUserResult } from "./types/schemas.js";
import * as errors from "./errors.js";
/** Options shared by both transports and general client configuration. */
export interface BotOptionsBase {
    /** Telegram API base URL — useful for proxying or testing against a mock server. */
    baseApiUrl?: string;
    /** Use Telegram's test environment (`/bot<token>/test/...`). */
    testEnvironment?: boolean;
    /** When true, treat string file arguments that resolve to existing paths as filesystem files. */
    filepath?: boolean;
    /** Additional HTTP request defaults (timeouts, headers). */
    request?: HttpClientOptions["request"];
    /** Stop processing further regex listeners after the first match. */
    onlyFirstMatch?: boolean;
    /** Forward-compat flag: see `TelegramBotPolling._poll()` for details. */
    badRejection?: boolean;
}
/**
 * Constructor options.
 *
 * `polling` and `webHook` select the two update transports (`true` uses
 * defaults; an object is passed through to `TelegramBotPolling` /
 * `TelegramBotWebHook`). They are **mutually exclusive** — enable at most one.
 * Passing both truthy is a type error; the constructor's runtime guard prefers
 * polling if it happens anyway (e.g. a JS caller bypassing the types).
 */
export type TelegramBotOptions = BotOptionsBase & ({
    polling: true | PollingOptions;
    webHook?: false;
} | {
    webHook: true | WebHookOptions;
    polling?: false;
} | {
    polling?: false;
    webHook?: false;
});
/** Second argument passed to `message` and message-subtype listeners. */
export interface EventMetadata {
    type?: MessageType;
}
/**
 * Maps each emitted event name to the tuple of arguments its listeners receive.
 * Powers the typed {@link TelegramBot.on} overloads.
 *
 * `poll` is emitted in two shapes: as a message sub-type when a poll message
 * arrives (`(message, metadata)`, since `Message` carries a `poll` field) and
 * as a dedicated poll-state update (`(poll)`). It is therefore typed as the
 * union of both shapes, and listeners must discriminate on the payload.
 * `message_reaction` is only ever emitted as the dedicated update (there is no
 * `message_reaction` field on `Message`), so it keeps a single shape.
 */
export type TelegramBotEvents = {
    [K in Exclude<MessageType, "poll" | "message_reaction">]: [message: Message, metadata: EventMetadata];
} & {
    message: [message: Message, metadata: EventMetadata];
    edited_message: [message: Message];
    edited_message_text: [message: Message];
    edited_message_caption: [message: Message];
    channel_post: [post: Message];
    edited_channel_post: [post: Message];
    edited_channel_post_text: [post: Message];
    edited_channel_post_caption: [post: Message];
    business_connection: [connection: BusinessConnection];
    business_message: [message: Message];
    edited_business_message: [message: Message];
    deleted_business_messages: [messages: BusinessMessagesDeleted];
    guest_message: [message: Message];
    message_reaction: [reaction: MessageReactionUpdated];
    message_reaction_count: [reaction: MessageReactionCountUpdated];
    inline_query: [query: InlineQuery];
    chosen_inline_result: [result: ChosenInlineResult];
    callback_query: [query: CallbackQuery];
    shipping_query: [query: ShippingQuery];
    pre_checkout_query: [query: PreCheckoutQuery];
    purchased_paid_media: [media: PaidMediaPurchased];
    poll: [poll: Poll] | [message: Message, metadata: EventMetadata];
    poll_answer: [answer: PollAnswer];
    chat_member: [update: ChatMemberUpdated];
    my_chat_member: [update: ChatMemberUpdated];
    chat_join_request: [request: ChatJoinRequest];
    chat_boost: [boost: ChatBoostUpdated];
    removed_chat_boost: [boost: ChatBoostRemoved];
    managed_bot: [update: ManagedBotUpdated];
    polling_error: [error: Error];
    webhook_error: [error: Error];
    error: [error: Error];
};
interface TextRegexpEntry {
    regexp: RegExp;
    callback: (msg: Message, match: RegExpExecArray | null) => void;
}
interface ReplyListenerEntry {
    id: number;
    chatId: ChatId;
    messageId: number;
    callback: (msg: Message) => void;
}
/**
 * Widen the file-bearing fields of a generated `InputMedia*` variant. The
 * schema is docs-faithful, so `media` / `thumbnail` / `cover` / `photo` are
 * typed `string` (an `attach://` ref, file_id or URL); this library also
 * accepts an {@link InputFile} (Buffer / stream / local path) there and uploads
 * it. Per-file `fileOptions` (filename / content-type hints) apply to `media`.
 *
 * Note: the variants share `type: string` (not a literal), so this is not a
 * discriminated union - value types of known fields are checked, but a wrong
 * field/`type` pairing is not.
 */
type Uploadable<T> = T extends unknown ? {
    [K in keyof T]: K extends "media" | "thumbnail" | "cover" | "photo" ? InputFile : T[K];
} & {
    fileOptions?: FileMeta;
} : never;
type SendMediaGroupMedia = Uploadable<SendMediaGroupParams["media"][number]>;
type SendPaidMediaMedia = Uploadable<SendPaidMediaParams["media"][number]>;
/**
 * The TelegramBot class is the main entry point of the library. It provides
 * methods that map 1:1 to the Telegram Bot API and emits events for incoming
 * updates received via either long polling or a webhook server.
 *
 * @example
 * ```ts
 * const bot = new TelegramBot(token, { polling: true });
 * bot.on('message', msg => bot.sendMessage(msg.chat.id, 'echo: ' + msg.text));
 * ```
 */
export declare class TelegramBot extends EventEmitter {
    /** Static reference to the error classes the library throws. */
    static readonly errors: typeof errors;
    /** The set of message-type events the library understands. */
    static readonly messageTypes: readonly MessageType[];
    /** The Telegram Bot API token. */
    readonly token: string;
    /** The fully-resolved bot configuration (both transport flags always present). */
    readonly options: BotOptionsBase & {
        polling: boolean | PollingOptions;
        webHook: boolean | WebHookOptions;
    };
    /** Underlying HTTP client. Accessible for advanced extensions. */
    readonly http: HttpClient;
    private _polling;
    private _webHook;
    private _textRegexpCallbacks;
    private _replyListenerId;
    private _replyListeners;
    constructor(token: string, options?: TelegramBotOptions);
    on<E extends keyof TelegramBotEvents>(event: E, listener: (...args: TelegramBotEvents[E]) => void): this;
    on(event: string | symbol, listener: (...args: any[]) => void): this;
    private _request;
    private _fixReplyMarkup;
    private _fixEntitiesField;
    private _fixReplyParameters;
    private _fixSuggestedPostParameters;
    private _fixLinkPreviewOptions;
    private _fixStoryAreas;
    private _fixMessageIds;
    /**
     * JSON-stringify the remaining structured fields that the Bot API expects as
     * strings on a form body. Each is left untouched when already a string (a
     * caller may pre-serialize) or absent, so methods can pass the typed value
     * straight through and let normalization happen here.
     */
    private _fixJsonFields;
    /** Submit a request whose body is a flat form. Internal helper. */
    private _form;
    /**
     * Common pattern: a method that uploads exactly one file (sendPhoto / sendAudio / etc).
     * Falls back to a string when `data` is a Telegram fileId or HTTPS URL.
     */
    private _sendFile;
    /**
     * Build the `media` array + multipart `formData` shared by `sendMediaGroup`
     * and `sendPaidMedia`. Every file-bearing field of each item is treated
     * alike -- the primary `media`, plus `thumbnail` / `cover` (video, animation,
     * audio, document) and `photo` (a live photo's still image): a Buffer /
     * stream / local path is uploaded under a `<index>_<field>` part name and the
     * field is rewritten to an `attach://` reference, while a fileId / URL string
     * passes through unchanged. The caller serializes the returned `inputMedia`
     * into the request's `media` field.
     */
    private _buildMediaItems;
    /** Start polling. */
    startPolling(options?: PollingStartOptions): Promise<void>;
    /** Stop polling. */
    stopPolling(options?: PollingStopOptions): Promise<void>;
    isPolling(): boolean;
    openWebHook(): Promise<void>;
    closeWebHook(): Promise<void>;
    hasOpenWebHook(): boolean;
    onText(regexp: RegExp | string, callback: TextRegexpEntry["callback"]): void;
    removeTextListener(regexp: RegExp | string): TextRegexpEntry | null;
    clearTextListeners(): void;
    onReplyToMessage(chatId: ChatId, messageId: number, callback: ReplyListenerEntry["callback"]): number;
    removeReplyListener(replyListenerId: number): ReplyListenerEntry | null;
    clearReplyListeners(): ReplyListenerEntry[];
    /**
     * Dispatch a single Update. Use this if you obtain updates from a source other
     * than this library's polling/webhook (e.g. AWS Lambda, custom proxy, tests).
     */
    processUpdate(update: Update): void;
    /** Resolve a file id to the public download URL on Telegram's servers. */
    getFileLink(fileId: string, options?: {}): Promise<string>;
    /**
     * Stream the contents of a Telegram file. The returned stream emits an `info`
     * event with the resolved URI before the bytes start flowing.
     */
    getFileStream(fileId: string, options?: {}): NodeJS.ReadableStream & {
        path: string;
    };
    /**
     * Download a Telegram file to a local directory and resolve to the resulting path.
     */
    downloadFile(fileId: string, downloadDir: string, options?: {}): Promise<string>;
    getUpdates(form?: GetUpdatesParams): Promise<GetUpdatesResult>;
    setWebhook(url: string, options?: Omit<SetWebhookParams, "url">, fileOptions?: FileMeta): Promise<SetWebhookResult>;
    deleteWebhook(form?: DeleteWebhookParams): Promise<DeleteWebhookResult>;
    getWebhookInfo(form?: GetWebhookInfoParams): Promise<GetWebhookInfoResult>;
    /** @deprecated Renamed to {@link TelegramBot.setWebhook} to match the Bot API casing. */
    setWebHook(url: string, options?: Omit<SetWebhookParams, "url">, fileOptions?: FileMeta): Promise<SetWebhookResult>;
    /** @deprecated Renamed to {@link TelegramBot.deleteWebhook} to match the Bot API casing. */
    deleteWebHook(form?: DeleteWebhookParams): Promise<DeleteWebhookResult>;
    /** @deprecated Renamed to {@link TelegramBot.getWebhookInfo} to match the Bot API casing. */
    getWebHookInfo(form?: GetWebhookInfoParams): Promise<GetWebhookInfoResult>;
    getMe(form?: GetMeParams): Promise<GetMeResult>;
    logOut(form?: LogOutParams): Promise<LogOutResult>;
    close(form?: CloseParams): Promise<CloseResult>;
    sendMessage(chatId: ChatId, text: string, form?: Omit<SendMessageParams, "chat_id" | "text">): Promise<SendMessageResult>;
    sendRichMessage(chatId: ChatId, richMessage: InputRichMessage, form?: Omit<SendRichMessageParams, "chat_id" | "rich_message">): Promise<SendRichMessageResult>;
    forwardMessage(chatId: ChatId, fromChatId: ChatId, messageId: number, form?: Omit<ForwardMessageParams, "chat_id" | "from_chat_id" | "message_id">): Promise<ForwardMessageResult>;
    forwardMessages(chatId: ChatId, fromChatId: ChatId, messageIds: number[], form?: Omit<ForwardMessagesParams, "chat_id" | "from_chat_id" | "message_ids">): Promise<ForwardMessagesResult>;
    copyMessage(chatId: ChatId, fromChatId: ChatId, messageId: number, form?: Omit<CopyMessageParams, "chat_id" | "from_chat_id" | "message_id">): Promise<CopyMessageResult>;
    copyMessages(chatId: ChatId, fromChatId: ChatId, messageIds: number[], form?: Omit<CopyMessagesParams, "chat_id" | "from_chat_id" | "message_ids">): Promise<CopyMessagesResult>;
    sendPhoto(chatId: ChatId, photo: FileInput, options?: Omit<SendPhotoParams, "chat_id" | "photo">, fileOptions?: FileMeta): Promise<SendPhotoResult>;
    sendLivePhoto(chatId: ChatId, livePhoto: FileInput, photo: FileInput, options?: Omit<SendLivePhotoParams, "chat_id" | "live_photo" | "photo">, fileOptions?: FileMeta): Promise<SendLivePhotoResult>;
    sendAudio(chatId: ChatId, audio: FileInput, options?: Omit<SendAudioParams, "chat_id" | "audio">, fileOptions?: FileMeta): Promise<SendAudioResult>;
    sendDocument(chatId: ChatId, doc: FileInput, options?: Omit<SendDocumentParams, "chat_id" | "document">, fileOptions?: FileMeta): Promise<SendDocumentResult>;
    sendVideo(chatId: ChatId, video: FileInput, options?: Omit<SendVideoParams, "chat_id" | "video">, fileOptions?: FileMeta): Promise<SendVideoResult>;
    sendAnimation(chatId: ChatId, animation: FileInput, options?: Omit<SendAnimationParams, "chat_id" | "animation">, fileOptions?: FileMeta): Promise<SendAnimationResult>;
    sendVoice(chatId: ChatId, voice: FileInput, options?: Omit<SendVoiceParams, "chat_id" | "voice">, fileOptions?: FileMeta): Promise<SendVoiceResult>;
    sendVideoNote(chatId: ChatId, videoNote: FileInput, options?: Omit<SendVideoNoteParams, "chat_id" | "video_note">, fileOptions?: FileMeta): Promise<SendVideoNoteResult>;
    /**
     * Send paid media. Each item's file fields are widened to accept uploads: the
     * primary `media` plus any `thumbnail` / `cover` (video) or `photo` (live photo)
     * may be a Buffer / stream / local path (uploaded as a multipart part) or a
     * file_id / URL string (passed through). {@link _buildMediaItems} resolves them.
     */
    sendPaidMedia(chatId: ChatId, starCount: number, media: SendPaidMediaMedia[], options?: Omit<SendPaidMediaParams, "chat_id" | "star_count" | "media">): Promise<SendPaidMediaResult>;
    /**
     * Send a group of photos / videos / etc as an album. Each item's file fields are
     * widened to accept uploads: the primary `media` plus any `thumbnail` / `cover`
     * (video) or `photo` (live photo) may be a Buffer / stream / local path (uploaded
     * as a multipart part) or a file_id / URL string (passed through).
     * {@link _buildMediaItems} resolves every file field of every item - unlike
     * {@link editMessageMedia}, whose secondary fields are string-only.
     */
    sendMediaGroup(chatId: ChatId, media: SendMediaGroupMedia[], options?: Omit<SendMediaGroupParams, "chat_id" | "media">): Promise<SendMediaGroupResult>;
    sendLocation(chatId: ChatId, latitude: number, longitude: number, form?: Omit<SendLocationParams, "chat_id" | "latitude" | "longitude">): Promise<SendLocationResult>;
    sendVenue(chatId: ChatId, latitude: number, longitude: number, title: string, address: string, form?: Omit<SendVenueParams, "chat_id" | "latitude" | "longitude" | "title" | "address">): Promise<SendVenueResult>;
    sendContact(chatId: ChatId, phoneNumber: string, firstName: string, form?: Omit<SendContactParams, "chat_id" | "phone_number" | "first_name">): Promise<SendContactResult>;
    sendPoll(chatId: ChatId, question: string, pollOptions: InputPollOption[], form?: Omit<SendPollParams, "chat_id" | "question" | "options">): Promise<SendPollResult>;
    sendChecklist(businessConnectionId: string, chatId: ChatId, checklist: InputChecklist, form?: Omit<SendChecklistParams, "business_connection_id" | "chat_id" | "checklist">): Promise<SendChecklistResult>;
    sendDice(chatId: ChatId, options?: Omit<SendDiceParams, "chat_id">): Promise<SendDiceResult>;
    sendMessageDraft(chatId: ChatId, draftId: number, text: string, form?: Omit<SendMessageDraftParams, "chat_id" | "draft_id" | "text">): Promise<SendMessageDraftResult>;
    sendRichMessageDraft(chatId: ChatId, draftId: number, richMessage: InputRichMessage, form?: Omit<SendRichMessageDraftParams, "chat_id" | "draft_id" | "rich_message">): Promise<SendRichMessageDraftResult>;
    sendChatAction(chatId: ChatId, action: string, form?: Omit<SendChatActionParams, "chat_id" | "action">): Promise<SendChatActionResult>;
    setMessageReaction(chatId: ChatId, messageId: number, form?: Omit<SetMessageReactionParams, "chat_id" | "message_id">): Promise<SetMessageReactionResult>;
    editMessageLiveLocation(latitude: number, longitude: number, form?: Omit<EditMessageLiveLocationParams, "latitude" | "longitude">): Promise<EditMessageLiveLocationResult>;
    stopMessageLiveLocation(form?: StopMessageLiveLocationParams): Promise<StopMessageLiveLocationResult>;
    getUserProfilePhotos(userId: number, form?: Omit<GetUserProfilePhotosParams, "user_id">): Promise<GetUserProfilePhotosResult>;
    getUserProfileAudios(userId: number, form?: Omit<GetUserProfileAudiosParams, "user_id">): Promise<GetUserProfileAudiosResult>;
    setUserEmojiStatus(userId: number, form?: Omit<SetUserEmojiStatusParams, "user_id">): Promise<SetUserEmojiStatusResult>;
    getFile(fileId: string, form?: {}): Promise<GetFileResult>;
    getUserPersonalChatMessages(userId: number, limit: number): Promise<GetUserPersonalChatMessagesResult>;
    banChatMember(chatId: ChatId, userId: number, form?: Omit<BanChatMemberParams, "chat_id" | "user_id">): Promise<BanChatMemberResult>;
    unbanChatMember(chatId: ChatId, userId: number, form?: Omit<UnbanChatMemberParams, "chat_id" | "user_id">): Promise<UnbanChatMemberResult>;
    restrictChatMember(chatId: ChatId, userId: number, permissions: ChatPermissions, form?: Omit<RestrictChatMemberParams, "chat_id" | "user_id" | "permissions">): Promise<RestrictChatMemberResult>;
    promoteChatMember(chatId: ChatId, userId: number, form?: Omit<PromoteChatMemberParams, "chat_id" | "user_id">): Promise<PromoteChatMemberResult>;
    setChatAdministratorCustomTitle(chatId: ChatId, userId: number, customTitle: string, form?: {}): Promise<SetChatAdministratorCustomTitleResult>;
    setChatMemberTag(chatId: ChatId, userId: number, form?: Omit<SetChatMemberTagParams, "chat_id" | "user_id">): Promise<SetChatMemberTagResult>;
    banChatSenderChat(chatId: ChatId, senderChatId: number, form?: {}): Promise<BanChatSenderChatResult>;
    unbanChatSenderChat(chatId: ChatId, senderChatId: number, form?: {}): Promise<UnbanChatSenderChatResult>;
    setChatPermissions(chatId: ChatId, permissions: ChatPermissions, form?: Omit<SetChatPermissionsParams, "chat_id" | "permissions">): Promise<SetChatPermissionsResult>;
    exportChatInviteLink(chatId: ChatId, form?: {}): Promise<ExportChatInviteLinkResult>;
    createChatInviteLink(chatId: ChatId, form?: Omit<CreateChatInviteLinkParams, "chat_id">): Promise<CreateChatInviteLinkResult>;
    editChatInviteLink(chatId: ChatId, inviteLink: string, form?: Omit<EditChatInviteLinkParams, "chat_id" | "invite_link">): Promise<EditChatInviteLinkResult>;
    createChatSubscriptionInviteLink(chatId: ChatId, subscriptionPeriod: number, subscriptionPrice: number, form?: Omit<CreateChatSubscriptionInviteLinkParams, "chat_id" | "subscription_period" | "subscription_price">): Promise<CreateChatSubscriptionInviteLinkResult>;
    editChatSubscriptionInviteLink(chatId: ChatId, inviteLink: string, form?: Omit<EditChatSubscriptionInviteLinkParams, "chat_id" | "invite_link">): Promise<EditChatSubscriptionInviteLinkResult>;
    revokeChatInviteLink(chatId: ChatId, inviteLink: string, form?: {}): Promise<RevokeChatInviteLinkResult>;
    approveChatJoinRequest(chatId: ChatId, userId: number, form?: {}): Promise<ApproveChatJoinRequestResult>;
    declineChatJoinRequest(chatId: ChatId, userId: number, form?: {}): Promise<DeclineChatJoinRequestResult>;
    answerChatJoinRequestQuery(chatJoinRequestQueryId: string, result: "approve" | "decline" | "queue", form?: Omit<AnswerChatJoinRequestQueryParams, "chat_join_request_query_id" | "result">): Promise<AnswerChatJoinRequestQueryResult>;
    sendChatJoinRequestWebApp(chatJoinRequestQueryId: string, webAppUrl: string, form?: Omit<SendChatJoinRequestWebAppParams, "chat_join_request_query_id" | "web_app_url">): Promise<SendChatJoinRequestWebAppResult>;
    /**
     * Set the chat photo. The photo must be a JPEG: Telegram's chat-photo backend
     * silently stalls on a non-JPEG (e.g. a PNG) until the request times out
     * (EFATAL); no layer here validates or converts, so the caller must pass a JPEG.
     */
    setChatPhoto(chatId: ChatId, photo: FileInput, options?: {}, fileOptions?: FileMeta): Promise<SetChatPhotoResult>;
    deleteChatPhoto(chatId: ChatId, form?: {}): Promise<DeleteChatPhotoResult>;
    setChatTitle(chatId: ChatId, title: string, form?: {}): Promise<SetChatTitleResult>;
    setChatDescription(chatId: ChatId, description: string, form?: {}): Promise<SetChatDescriptionResult>;
    pinChatMessage(chatId: ChatId, messageId: number, form?: Omit<PinChatMessageParams, "chat_id" | "message_id">): Promise<PinChatMessageResult>;
    unpinChatMessage(chatId: ChatId, form?: Omit<UnpinChatMessageParams, "chat_id">): Promise<UnpinChatMessageResult>;
    unpinAllChatMessages(chatId: ChatId, form?: {}): Promise<UnpinAllChatMessagesResult>;
    leaveChat(chatId: ChatId, form?: {}): Promise<LeaveChatResult>;
    getChat(chatId: ChatId, form?: {}): Promise<GetChatResult>;
    getChatAdministrators(chatId: ChatId, form?: Omit<GetChatAdministratorsParams, "chat_id">): Promise<GetChatAdministratorsResult>;
    getChatMemberCount(chatId: ChatId, form?: {}): Promise<GetChatMemberCountResult>;
    getChatMember(chatId: ChatId, userId: number, form?: {}): Promise<GetChatMemberResult>;
    setChatStickerSet(chatId: ChatId, stickerSetName: string, form?: {}): Promise<SetChatStickerSetResult>;
    deleteChatStickerSet(chatId: ChatId, form?: {}): Promise<DeleteChatStickerSetResult>;
    getForumTopicIconStickers(form?: GetForumTopicIconStickersParams): Promise<GetForumTopicIconStickersResult>;
    createForumTopic(chatId: ChatId, name: string, form?: Omit<CreateForumTopicParams, "chat_id" | "name">): Promise<CreateForumTopicResult>;
    editForumTopic(chatId: ChatId, messageThreadId: number, form?: Omit<EditForumTopicParams, "chat_id" | "message_thread_id">): Promise<EditForumTopicResult>;
    closeForumTopic(chatId: ChatId, messageThreadId: number, form?: {}): Promise<CloseForumTopicResult>;
    reopenForumTopic(chatId: ChatId, messageThreadId: number, form?: {}): Promise<ReopenForumTopicResult>;
    deleteForumTopic(chatId: ChatId, messageThreadId: number, form?: {}): Promise<DeleteForumTopicResult>;
    unpinAllForumTopicMessages(chatId: ChatId, messageThreadId: number, form?: {}): Promise<UnpinAllForumTopicMessagesResult>;
    editGeneralForumTopic(chatId: ChatId, name: string, form?: {}): Promise<EditGeneralForumTopicResult>;
    closeGeneralForumTopic(chatId: ChatId, form?: {}): Promise<CloseGeneralForumTopicResult>;
    reopenGeneralForumTopic(chatId: ChatId, form?: {}): Promise<ReopenGeneralForumTopicResult>;
    hideGeneralForumTopic(chatId: ChatId, form?: {}): Promise<HideGeneralForumTopicResult>;
    unhideGeneralForumTopic(chatId: ChatId, form?: {}): Promise<UnhideGeneralForumTopicResult>;
    unpinAllGeneralForumTopicMessages(chatId: ChatId, form?: {}): Promise<UnpinAllGeneralForumTopicMessagesResult>;
    answerCallbackQuery(callbackQueryId: string, form?: Omit<AnswerCallbackQueryParams, "callback_query_id">): Promise<AnswerCallbackQueryResult>;
    answerGuestQuery(guestQueryId: string, result: InlineQueryResult): Promise<AnswerGuestQueryResult>;
    savePreparedInlineMessage(userId: number, result: InlineQueryResult, form?: Omit<SavePreparedInlineMessageParams, "user_id" | "result">): Promise<SavePreparedInlineMessageResult>;
    savePreparedKeyboardButton(userId: number, button: KeyboardButton, form?: Omit<SavePreparedKeyboardButtonParams, "user_id" | "button">): Promise<SavePreparedKeyboardButtonResult>;
    getUserChatBoosts(chatId: ChatId, userId: number, form?: {}): Promise<GetUserChatBoostsResult>;
    getBusinessConnection(businessConnectionId: string, form?: {}): Promise<GetBusinessConnectionResult>;
    getManagedBotToken(userId: number, form?: {}): Promise<GetManagedBotTokenResult>;
    replaceManagedBotToken(userId: number, form?: {}): Promise<ReplaceManagedBotTokenResult>;
    getManagedBotAccessSettings(userId: number, form?: {}): Promise<GetManagedBotAccessSettingsResult>;
    setManagedBotAccessSettings(userId: number, isAccessRestricted: boolean, form?: Omit<SetManagedBotAccessSettingsParams, "user_id" | "is_access_restricted">): Promise<SetManagedBotAccessSettingsResult>;
    setMyCommands(commands: BotCommand[], form?: Omit<SetMyCommandsParams, "commands">): Promise<SetMyCommandsResult>;
    deleteMyCommands(form?: DeleteMyCommandsParams): Promise<DeleteMyCommandsResult>;
    getMyCommands(form?: GetMyCommandsParams): Promise<GetMyCommandsResult>;
    setMyName(form?: SetMyNameParams): Promise<SetMyNameResult>;
    getMyName(form?: GetMyNameParams): Promise<GetMyNameResult>;
    setMyDescription(form?: SetMyDescriptionParams): Promise<SetMyDescriptionResult>;
    getMyDescription(form?: GetMyDescriptionParams): Promise<GetMyDescriptionResult>;
    setMyShortDescription(form?: SetMyShortDescriptionParams): Promise<SetMyShortDescriptionResult>;
    getMyShortDescription(form?: GetMyShortDescriptionParams): Promise<GetMyShortDescriptionResult>;
    /**
     * Set the bot's profile photo.
     *
     * ⚠️ A `static` photo **must be a JPEG**. Telegram's backend
     * (`photos.uploadProfilePhoto`) only accepts JPEG and no layer in the stack
     * — this library, the Bot API server, or TDLib — validates or converts the
     * format, so the raw bytes are forwarded as-is. A non-JPEG (e.g. PNG) is not
     * rejected cleanly: the upstream call typically returns `504 Gateway Timeout`
     * (an `ETELEGRAM` error) or stalls until the request times out. Convert to
     * JPEG before calling.
     */
    setMyProfilePhoto(photo: InputProfilePhotoInput, form?: {}): Promise<SetMyProfilePhotoResult>;
    removeMyProfilePhoto(form?: RemoveMyProfilePhotoParams): Promise<RemoveMyProfilePhotoResult>;
    setChatMenuButton(form?: SetChatMenuButtonParams): Promise<SetChatMenuButtonResult>;
    getChatMenuButton(form?: GetChatMenuButtonParams): Promise<GetChatMenuButtonResult>;
    setMyDefaultAdministratorRights(form?: SetMyDefaultAdministratorRightsParams): Promise<SetMyDefaultAdministratorRightsResult>;
    getMyDefaultAdministratorRights(form?: GetMyDefaultAdministratorRightsParams): Promise<GetMyDefaultAdministratorRightsResult>;
    /**
     * Edit text or rich messages. On success, if the edited message is not an
     * inline message, the edited {@link Message} is returned, otherwise `true`.
     *
     * **Call with a single object** (preferred):
     *   - Text edit: `editMessageText({ chat_id, message_id, text: "…" })`
     *   - Rich edit: `editMessageText({ chat_id, message_id, rich_message: { … } })`
     *
     * **`(text, form)` signature** (deprecated — kept for backward compatibility):
     *   - `editMessageText("new text", { chat_id, message_id })`
     *
     * @deprecated The two-argument form is deprecated; prefer the single-object call.
     */
    editMessageText(text: string, form: Omit<EditMessageTextParams, "text">): Promise<EditMessageTextResult>;
    editMessageText(form: EditMessageTextParams): Promise<EditMessageTextResult>;
    editMessageCaption(caption: string, form?: Omit<EditMessageCaptionParams, "caption">): Promise<EditMessageCaptionResult>;
    /**
     * Edit a message's media. Unlike {@link sendMediaGroup} / {@link sendPaidMedia},
     * the `media` argument is the docs-faithful `InputMedia`, so every file field is
     * typed `string` and NOT widened to accept uploads:
     *   - Secondary fields (`thumbnail` / `cover` / `photo`) must be file_id / URL
     *     strings; they pass through untouched. Uploading a *new* secondary file is
     *     not supported here (the method attaches only the single primary part).
     *   - The primary `media` is uploaded only when given as `attach://<local-path>`;
     *     a plain file_id / URL is sent as-is.
     */
    editMessageMedia(media: InputMedia & {
        fileOptions?: FileMeta;
    }, form?: Omit<EditMessageMediaParams, "media">): Promise<EditMessageMediaResult>;
    editMessageChecklist(businessConnectionId: string, chatId: ChatId, messageId: number, checklist: InputChecklist, form?: Omit<EditMessageChecklistParams, "business_connection_id" | "chat_id" | "message_id" | "checklist">): Promise<EditMessageChecklistResult>;
    editMessageReplyMarkup(replyMarkup: InlineKeyboardMarkup, form?: Omit<EditMessageReplyMarkupParams, "reply_markup">): Promise<EditMessageReplyMarkupResult>;
    stopPoll(chatId: ChatId, pollId: number, form?: Omit<StopPollParams, "chat_id" | "message_id">): Promise<StopPollResult>;
    approveSuggestedPost(chatId: number, messageId: number, form?: Omit<ApproveSuggestedPostParams, "chat_id" | "message_id">): Promise<ApproveSuggestedPostResult>;
    declineSuggestedPost(chatId: number, messageId: number, form?: Omit<DeclineSuggestedPostParams, "chat_id" | "message_id">): Promise<DeclineSuggestedPostResult>;
    sendSticker(chatId: ChatId, sticker: FileInput, options?: Omit<SendStickerParams, "chat_id" | "sticker">, fileOptions?: FileMeta): Promise<SendStickerResult>;
    getStickerSet(name: string, form?: {}): Promise<GetStickerSetResult>;
    getCustomEmojiStickers(customEmojiIds: string[], form?: {}): Promise<GetCustomEmojiStickersResult>;
    uploadStickerFile(userId: number, sticker: FileInput, stickerFormat?: "static" | "animated" | "video", options?: {}, fileOptions?: FileMeta): Promise<UploadStickerFileResult>;
    createNewStickerSet(userId: number, name: string, title: string, pngSticker: FileInput, emojis: string, options?: {
        mask_position?: MaskPosition;
        sticker_type?: string;
        needs_repainting?: boolean;
    }, fileOptions?: FileMeta): Promise<CreateNewStickerSetResult>;
    addStickerToSet(userId: number, name: string, sticker: FileInput, emojis: string, stickerType?: "png_sticker" | "tgs_sticker" | "webm_sticker", options?: {
        mask_position?: MaskPosition;
    }, fileOptions?: FileMeta): Promise<AddStickerToSetResult>;
    setStickerPositionInSet(sticker: string, position: number, form?: {}): Promise<SetStickerPositionInSetResult>;
    deleteStickerFromSet(sticker: string, form?: {}): Promise<DeleteStickerFromSetResult>;
    replaceStickerInSet(userId: number, name: string, oldSticker: string, form: Omit<ReplaceStickerInSetParams, "user_id" | "name" | "old_sticker">): Promise<ReplaceStickerInSetResult>;
    setStickerEmojiList(sticker: string, emojiList: string[], form?: {}): Promise<SetStickerEmojiListResult>;
    setStickerKeywords(sticker: string, form?: Omit<SetStickerKeywordsParams, "sticker">): Promise<SetStickerKeywordsResult>;
    setStickerMaskPosition(sticker: string, form?: Omit<SetStickerMaskPositionParams, "sticker">): Promise<SetStickerMaskPositionResult>;
    setStickerSetTitle(name: string, title: string, form?: {}): Promise<SetStickerSetTitleResult>;
    setStickerSetThumbnail(userId: number, name: string, thumbnail: FileInput, options?: {
        format?: "static" | "animated" | "video";
    }, fileOptions?: FileMeta): Promise<SetStickerSetThumbnailResult>;
    setCustomEmojiStickerSetThumbnail(name: string, form?: Omit<SetCustomEmojiStickerSetThumbnailParams, "name">): Promise<SetCustomEmojiStickerSetThumbnailResult>;
    deleteStickerSet(name: string, form?: {}): Promise<DeleteStickerSetResult>;
    answerInlineQuery(inlineQueryId: string, results: InlineQueryResult[], form?: Omit<AnswerInlineQueryParams, "inline_query_id" | "results">): Promise<AnswerInlineQueryResult>;
    answerWebAppQuery(webAppQueryId: string, result: InlineQueryResult, form?: Omit<AnswerWebAppQueryParams, "web_app_query_id" | "result">): Promise<AnswerWebAppQueryResult>;
    sendInvoice(chatId: ChatId, title: string, description: string, payload: string, providerToken: string, currency: string, prices: Array<{
        label: string;
        amount: number;
    }>, form?: Omit<SendInvoiceParams, "chat_id" | "title" | "description" | "payload" | "provider_token" | "currency" | "prices">): Promise<SendInvoiceResult>;
    createInvoiceLink(title: string, description: string, payload: string, providerToken: string, currency: string, prices: Array<{
        label: string;
        amount: number;
    }>, form?: Omit<CreateInvoiceLinkParams, "title" | "description" | "payload" | "provider_token" | "currency" | "prices">): Promise<CreateInvoiceLinkResult>;
    answerShippingQuery(shippingQueryId: string, ok: boolean, form?: Omit<AnswerShippingQueryParams, "shipping_query_id" | "ok">): Promise<AnswerShippingQueryResult>;
    answerPreCheckoutQuery(preCheckoutQueryId: string, ok: boolean, form?: Omit<AnswerPreCheckoutQueryParams, "pre_checkout_query_id" | "ok">): Promise<AnswerPreCheckoutQueryResult>;
    setPassportDataErrors(userId: number, errors: PassportElementError[], form?: {}): Promise<SetPassportDataErrorsResult>;
    getMyStarBalance(form?: GetMyStarBalanceParams): Promise<GetMyStarBalanceResult>;
    getStarTransactions(form?: GetStarTransactionsParams): Promise<GetStarTransactionsResult>;
    refundStarPayment(userId: number, telegramPaymentChargeId: string, form?: {}): Promise<RefundStarPaymentResult>;
    editUserStarSubscription(userId: number, telegramPaymentChargeId: string, isCanceled: boolean, form?: {}): Promise<EditUserStarSubscriptionResult>;
    sendGame(chatId: ChatId, gameShortName: string, form?: Omit<SendGameParams, "chat_id" | "game_short_name">): Promise<SendGameResult>;
    setGameScore(userId: number, score: number, form?: Omit<SetGameScoreParams, "user_id" | "score">): Promise<SetGameScoreResult>;
    getGameHighScores(userId: number, form?: {
        chat_id?: number;
        message_id?: number;
        inline_message_id?: string;
    }): Promise<GetGameHighScoresResult>;
    deleteMessage(chatId: ChatId, messageId: number, form?: {}): Promise<DeleteMessageResult>;
    deleteMessages(chatId: ChatId, messageIds: number[], form?: {}): Promise<DeleteMessagesResult>;
    deleteMessageReaction(chatId: ChatId, messageId: number, form?: {
        user_id?: number;
        actor_chat_id?: number;
    }): Promise<DeleteMessageReactionResult>;
    deleteAllMessageReactions(chatId: ChatId, form?: {
        user_id?: number;
        actor_chat_id?: number;
    }): Promise<DeleteAllMessageReactionsResult>;
    getAvailableGifts(form?: GetAvailableGiftsParams): Promise<GetAvailableGiftsResult>;
    sendGift(giftId: string, form?: Omit<SendGiftParams, "gift_id">): Promise<SendGiftResult>;
    giftPremiumSubscription(userId: number, monthCount: number, starCount: number, form?: Omit<GiftPremiumSubscriptionParams, "user_id" | "month_count" | "star_count">): Promise<GiftPremiumSubscriptionResult>;
    verifyUser(userId: number, form?: Omit<VerifyUserParams, "user_id">): Promise<VerifyUserResult>;
    verifyChat(chatId: ChatId, form?: Omit<VerifyChatParams, "chat_id">): Promise<VerifyChatResult>;
    removeUserVerification(userId: number, form?: {}): Promise<RemoveUserVerificationResult>;
    removeChatVerification(chatId: ChatId, form?: {}): Promise<RemoveChatVerificationResult>;
    readBusinessMessage(businessConnectionId: string, chatId: number, messageId: number, form?: {}): Promise<ReadBusinessMessageResult>;
    deleteBusinessMessages(businessConnectionId: string, messageIds: number[], form?: {}): Promise<DeleteBusinessMessagesResult>;
    setBusinessAccountName(businessConnectionId: string, firstName: string, form?: Omit<SetBusinessAccountNameParams, "business_connection_id" | "first_name">): Promise<SetBusinessAccountNameResult>;
    setBusinessAccountUsername(businessConnectionId: string, form?: Omit<SetBusinessAccountUsernameParams, "business_connection_id">): Promise<SetBusinessAccountUsernameResult>;
    setBusinessAccountBio(businessConnectionId: string, form?: Omit<SetBusinessAccountBioParams, "business_connection_id">): Promise<SetBusinessAccountBioResult>;
    setBusinessAccountProfilePhoto(businessConnectionId: string, photo: InputProfilePhotoInput, form?: Omit<SetBusinessAccountProfilePhotoParams, "business_connection_id" | "photo">): Promise<SetBusinessAccountProfilePhotoResult>;
    removeBusinessAccountProfilePhoto(businessConnectionId: string, form?: Omit<RemoveBusinessAccountProfilePhotoParams, "business_connection_id">): Promise<RemoveBusinessAccountProfilePhotoResult>;
    setBusinessAccountGiftSettings(businessConnectionId: string, showGiftButton: boolean, acceptedGiftTypes: AcceptedGiftTypes, form?: Omit<SetBusinessAccountGiftSettingsParams, "business_connection_id" | "show_gift_button" | "accepted_gift_types">): Promise<SetBusinessAccountGiftSettingsResult>;
    getBusinessAccountStarBalance(businessConnectionId: string, form?: {}): Promise<GetBusinessAccountStarBalanceResult>;
    transferBusinessAccountStars(businessConnectionId: string, starCount: number, form?: {}): Promise<TransferBusinessAccountStarsResult>;
    getBusinessAccountGifts(businessConnectionId: string, form?: Omit<GetBusinessAccountGiftsParams, "business_connection_id">): Promise<GetBusinessAccountGiftsResult>;
    getUserGifts(userId: number, form?: Omit<GetUserGiftsParams, "user_id">): Promise<GetUserGiftsResult>;
    getChatGifts(chatId: ChatId, form?: Omit<GetChatGiftsParams, "chat_id">): Promise<GetChatGiftsResult>;
    convertGiftToStars(businessConnectionId: string, ownedGiftId: string, form?: {}): Promise<ConvertGiftToStarsResult>;
    upgradeGift(businessConnectionId: string, ownedGiftId: string, form?: Omit<UpgradeGiftParams, "business_connection_id" | "owned_gift_id">): Promise<UpgradeGiftResult>;
    transferGift(businessConnectionId: string, ownedGiftId: string, newOwnerChatId: number, form?: Omit<TransferGiftParams, "business_connection_id" | "owned_gift_id" | "new_owner_chat_id">): Promise<TransferGiftResult>;
    postStory(businessConnectionId: string, content: InputStoryContent, activePeriod: number, options?: Omit<PostStoryParams, "business_connection_id" | "content" | "active_period">): Promise<PostStoryResult>;
    repostStory(businessConnectionId: string, fromChatId: number, fromStoryId: number, activePeriod: number, form?: Omit<RepostStoryParams, "business_connection_id" | "from_chat_id" | "from_story_id" | "active_period">): Promise<RepostStoryResult>;
    editStory(businessConnectionId: string, storyId: number, content: InputStoryContent, options?: Omit<EditStoryParams, "business_connection_id" | "story_id" | "content">): Promise<EditStoryResult>;
    deleteStory(businessConnectionId: string, storyId: number, form?: {}): Promise<DeleteStoryResult>;
}
export default TelegramBot;
//# sourceMappingURL=telegram.d.ts.map