import type { TelegramBotInfo, SendPaidMediaRequest } from '../../types/telegram.js';
export interface SendMessageOptions {
    parse_mode?: 'HTML' | 'Markdown' | 'MarkdownV2';
    reply_to_message_id?: number;
    disable_notification?: boolean;
}
export interface CreateChatInviteLinkOptions {
    name?: string;
    expire_date?: number;
    member_limit?: number;
}
export interface SetWebhookOptions {
    certificate?: string;
    max_connections?: number;
    allowed_updates?: string[];
    secret_token?: string;
}
export interface TelegramBotClientOptions {
    initialBackoffMs?: number;
}
export interface TelegramApiResponse<T = unknown> {
    ok: boolean;
    result?: T;
    description?: string;
    error_code?: number;
}
export declare class TelegramBotClient {
    private readonly token;
    private readonly baseUrl;
    private readonly initialBackoffMs;
    constructor(token: string, options?: TelegramBotClientOptions);
    getMe(): Promise<TelegramBotInfo>;
    sendMessage(chatId: number | string, text: string, options?: SendMessageOptions): Promise<unknown>;
    sendChatAction(chatId: number | string, action: string): Promise<boolean>;
    sendPaidMedia(request: SendPaidMediaRequest): Promise<unknown>;
    sendInvoice(params: {
        chat_id: number;
        title: string;
        description: string;
        payload: string;
        currency: string;
        prices: Array<{
            label: string;
            amount: number;
        }>;
    }): Promise<unknown>;
    sendPhoto(chatId: number | string, photo: string, caption?: string): Promise<unknown>;
    createChatInviteLink(chatId: number | string, options?: CreateChatInviteLinkOptions): Promise<unknown>;
    setWebhook(url: string, options?: SetWebhookOptions): Promise<boolean>;
    deleteWebhook(): Promise<boolean>;
    answerPreCheckoutQuery(preCheckoutQueryId: string, ok: boolean, errorMessage?: string): Promise<boolean>;
    private callApi;
}
//# sourceMappingURL=bot-client.d.ts.map