import { type ManyChoicesOptions } from '../choices/index.ts'; import type { ConstOrPromise } from '../generic-types.ts'; import type { CallbackButtonTemplate } from '../keyboard.ts'; export type IsSetFunction = (context: Context, key: string) => ConstOrPromise; export type SetFunction = (context: Context, key: string, newState: boolean) => ConstOrPromise; export 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(uniqueIdentifierPrefix: string, options: SelectOptions): (context: Context, path: string) => Promise;