import { Raw } from '../../platform.node.js';
import type { Snake } from '../../Client/index.js';
export type TypeReplyMarkup = inlineKeyboard | replyKeyboard | removeKeyboard | forceReplyMarkup;
export interface forceReplyMarkup {
    forceReply: boolean;
    inputFieldPlaceholder?: string;
    selective?: boolean;
    singleUse?: boolean;
}
export interface removeKeyboard {
    removeKeyboard: boolean;
    selective?: boolean;
}
export interface replyKeyboard {
    keyboard: replyKeyboardButton[][] | string[][];
    resizeKeyboard?: boolean;
    oneTimeKeyboard?: boolean;
    inputFieldPlaceholder?: string;
    selective?: boolean;
}
export interface replyKeyboardButton {
    text: string;
    requestContact?: boolean;
    requestLocation?: boolean;
    requestPoll?: 'regular' | 'quiz';
}
export interface inlineKeyboard {
    inlineKeyboard: inlineKeyboardButton[][];
}
export interface inlineKeyboardButton {
    text: string;
    url?: string;
    loginUrl?: loginUrl;
    callbackData?: string;
    switchInlineQuery?: string;
    switchInlineQueryCurrentChat?: string;
    callbackGame?: string;
    buy?: string;
    webApp?: string;
}
export interface loginUrl {
    requestWriteAccess?: boolean;
    forwardText?: string;
    url: string;
    bot: BotLoginUrl;
}
export interface BotLoginUrl {
    id: bigint;
    accessHash: bigint;
}
export declare function buildReplyMarkup(replyMarkup: TypeReplyMarkup, snakeClient: Snake): Promise<Raw.ReplyInlineMarkup | Raw.ReplyKeyboardMarkup | Raw.ReplyKeyboardHide | Raw.ReplyKeyboardForceReply | undefined>;
export declare function convertReplyMarkup(replyMarkup: Raw.TypeReplyMarkup, SnakeClient: Snake): Promise<TypeReplyMarkup | undefined>;
