import { CallbackButtonTemplate } from '../keyboard'; import { ConstOrPromise, ConstOrContextFunc } from '../generic-types'; import { ManyChoicesOptions, Choices } from '../choices'; export declare type IsSetFunction = (context: Context, key: string) => ConstOrPromise; export declare type SetFunction = (context: Context, key: string, newState: boolean) => ConstOrPromise; export declare type FormatStateFunction = (context: Context, textResult: string, state: boolean, key: string) => ConstOrPromise; export interface SelectOptions extends ManyChoicesOptions { /** * Show an emoji for the choices currently false. * This is helpful to show the user there can be selected multiple choices at the same time. */ readonly showFalseEmoji?: boolean; /** * Function returning the current state of a given choice. */ readonly isSet: IsSetFunction; /** * Function which is called when a user selects a choice. * Arguments include the choice (`key`) and the new `state` which is helpful for multiple toggles. */ readonly set: SetFunction; /** * Format the button text which is visible to the user. */ readonly formatState?: FormatStateFunction; } export declare function generateSelectButtons(actionPrefix: string, choices: ConstOrContextFunc, options: SelectOptions): (context: Context, path: string) => Promise;