import type { ReactNode } from "indusagi/react-host";
interface SelectableDialogProps<T> {
    title: string;
    subtitle?: string;
    items: T[];
    isActive?: boolean;
    searchEnabled?: boolean;
    emptyText: string;
    noSearchResultsText?: string;
    onClose: () => void;
    onSelect: (item: T) => void | Promise<void>;
    /**
     * Fired whenever the highlighted item changes (including on first mount), so a
     * caller can live-preview the currently-focused choice before it is committed
     * with Enter. Distinct from {@link onSelect}, which fires only on Enter.
     */
    onHighlight?: (item: T, index: number) => void;
    getSearchText?: (item: T) => string;
    renderItem: (item: T, selected: boolean, index: number) => ReactNode;
}
export declare function SelectableDialog<T>({ title, subtitle, items, isActive, searchEnabled, emptyText, noSearchResultsText, onClose, onSelect, onHighlight, getSearchText, renderItem, }: SelectableDialogProps<T>): JSX.Element;
export {};
