type StrToEl = (template: string) => HTMLElement;
type EscapeForTemplate = (allowHTML: boolean, value: unknown) => string;
type GetClassNames = (className: string | string[]) => string[];
/**
* Choices.js v11 template callback.
*
* Why this file exists:
* - We need to keep Choices expected DOM/data attributes (`data-choice`, `data-id`,
* `data-value`, `data-choice-selectable`, etc.) so keyboard/mouse interactions keep working.
* - We optionally support a React custom option renderer via `customProperties.template`.
*
* Notes:
* - The callback signature changed in Choices v11 and now receives:
* `strToEl`, `escapeForTemplate`, `getClassNames`.
* - `this` is the current Choices instance, so we can read `this.config`.
*/
export declare function callbackOnCreateTemplates(this: {
config: {
itemSelectText: string;
allowHTML: boolean;
};
}, strToEl: StrToEl, escapeForTemplate: EscapeForTemplate, getClassNames: GetClassNames): {
/**
* Custom renderer for each dropdown option ("choice" in Choices terminology).
* Keep all required attributes when editing this template, otherwise
* selection/highlight/accessibility behavior can break.
*/
choice: ({ classNames }: {
classNames: Record;
}, data: any) => HTMLElement;
};
export {};