import type { Snippet } from 'svelte';
export type ListboxOption = {
    label: string;
    content?: string;
    value?: string | number;
    disabled?: boolean;
    type?: 'option' | 'section';
};
interface Props {
    [key: string]: any;
    /**
     * The current selected value(s) of the listbox.
     */
    value: string | number | null | (string | number)[];
    /**
     * Unique identifier for the listbox.
     */
    id: string;
    /**
     * Whether the listbox is open.
     */
    open?: boolean;
    /**
     * Enable multiple value.
     */
    multiple?: boolean;
    /**
     * Make the listbox read-only.
     */
    readonly?: boolean;
    /**
     * Show a search input above the options.
     */
    search?: boolean;
    /**
     * Show select all / clear buttons when multiple.
     */
    actions?: boolean;
    /**
     * Enable checkable section headers.
     */
    checkablesections?: boolean;
    /**
     * Placeholder text for the search input.
     */
    searchplaceholder?: string;
    /**
     * Label for the "Select all" button.
     */
    selectlabel?: string;
    /**
     * Label for the "Clear value" button.
     */
    clearlabel?: string;
    /**
     * Array of options and sections to display in the listbox.
     */
    options: Array<ListboxOption>;
    /**
     * Callback to trigge when the listbox should open.
     */
    onopen?: () => void;
    /**
     * Callback to trigge when the listbox should close.
     */
    onclose?: () => void;
    activeindex: number;
    element?: HTMLElement | null;
    item?: Snippet<[{
        option: ListboxOption;
    }]>;
}
declare const OptionListbox: import("svelte").Component<Props, {
    toggleValue: (item?: ListboxOption) => void;
    clearSelection: () => void;
    handleKeydown: (event: KeyboardEvent) => void;
}, "value" | "open" | "element" | "activeindex">;
type OptionListbox = ReturnType<typeof OptionListbox>;
export default OptionListbox;
//# sourceMappingURL=OptionListbox.svelte.d.ts.map