import { Selectable, SelectableData } from '@/models';
import { LIcon } from 'itlab-icons';
interface Props {
    modelValue?: SelectableData | SelectableData[];
    placeholder?: SelectableData | SelectableData[];
    selectable: Selectable[];
    preventUndefined?: boolean;
    multiple?: boolean;
    search?: boolean | string;
    keepOpen?: boolean;
    reset?: boolean;
    icon?: LIcon;
}
interface Emit {
    (e: 'update:modelValue', data?: SelectableData | SelectableData[]): void;
}
type Item = Selectable & {
    active: boolean;
};
export declare function useInputSelect(props: Props, emit: Emit): {
    _props: {
        modelValue?: SelectableData | SelectableData[];
        placeholder?: SelectableData | SelectableData[];
        selectable: {
            data: SelectableData;
            label: any;
            icon?: LIcon | undefined;
        }[];
        preventUndefined?: boolean | undefined;
        multiple?: boolean | undefined;
        search?: boolean | string | undefined;
        keepOpen?: boolean | undefined;
        reset?: boolean | undefined;
        icon?: LIcon | undefined;
    };
    items: Item[];
    toggle: ({ data, active }: Item) => void;
    reset: () => never[];
    hasSelection: boolean;
    selectionCount: number;
    query: string;
    value: any;
    placeholder: any;
    icon: any;
};
export {};
