import { MiddlewareFn } from "telegraf"; import { DefaultCtx, GenericConfig, GenericState, MenuContextUpdate, MenuFilters, MenuOption, MenuOptionShort } from "./interfaces"; import { KeyboardButton } from "./keyboard-button"; export declare abstract class GenericMenu { genericConfig: GenericConfig; private get debugMessage(); messageId: number; state: TState; replaced: boolean; protected activeButtons: TValue[]; protected evenRange: boolean; private deleted; static remapCompactToFull(options: MenuOptionShort): MenuOption; static remapFullToCompact(options: MenuOption): MenuOptionShort; static middleware(): MiddlewareFn; static onAction(menuGetter: (ctx: TCtx) => GenericMenu, initMenu: (ctx: TCtx) => any): (ctx: MenuContextUpdate) => void; constructor(genericConfig: GenericConfig); abstract onActiveButton(ctx: TCtx, activeButton: MenuOption): any; abstract formatButtonLabel(ctx: TCtx, button: KeyboardButton): any; abstract stateToMenu(state: TState): KeyboardButton[]; abstract menuToState(menu: TValue[]): any; get flatFilters(): MenuFilters; updateState(state: TState, ctx?: TCtx): void; sendMenu(ctx: TCtx): Promise; destroyMenu(ctx: TCtx): Promise; protected toggleActiveButton(ctx: TCtx, activeButtons: TValue[]): void; protected getButtonLabelInfo(ctx: TCtx, button: KeyboardButton): { label: string; isActiveButton: boolean; isDefaultActiveButton: boolean; }; private getMessage; private getSubmitMessage; private onAction; private redrawMenu; private getKeyboard; }