import { InputOption } from '../../models';
import { FieldComponentProps } from '../../plugins/field/field-component.model';
export interface SelectProps extends FieldComponentProps {
    multiple?: boolean;
    autocomplete?: boolean;
    options?: string[] | InputOption[];
    placeholder?: string;
    open?: boolean;
    canAddNewOption?: boolean;
    selectAll?: boolean;
    selectAllLabel?: string;
    request?: (abortController: AbortController, inputValue?: string) => Promise<{
        data: InputOption[];
    }>;
}
export declare const SELECT_ALL_VALUE = "__bms_select_all__";
declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
    modelValue?: any | any[] | null;
    searching?: string | undefined;
} & SelectProps, {
    setFocus: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    select: (option: InputOption) => any;
    "update:modelValue": (value: any) => any;
    addNewOption: (newOption: any) => any;
    "update:searching": (value: string) => any;
}, string, import('vue').PublicProps, Readonly<{
    modelValue?: any | any[] | null;
    searching?: string | undefined;
} & SelectProps> & Readonly<{
    onSelect?: ((option: InputOption) => any) | undefined;
    "onUpdate:modelValue"?: ((value: any) => any) | undefined;
    onAddNewOption?: ((newOption: any) => any) | undefined;
    "onUpdate:searching"?: ((value: string) => any) | undefined;
}>, {
    autocomplete: boolean;
    small: boolean;
    placeholder: string;
    disabled: boolean;
    options: string[] | InputOption[];
    canAddNewOption: boolean;
    open: boolean;
    multiple: boolean;
    selectAll: boolean;
    selectAllLabel: string;
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    selectElement: HTMLDivElement;
    inputElement: HTMLInputElement;
}, HTMLDivElement>, {
    'selected-items'?(_: {
        selectedItems: InputOption[];
        dismiss: (value: string) => void;
    }): any;
    'selected-item'?(_: {
        selectedItem: InputOption;
    }): any;
    'input-element'?(_: {
        searching: string;
        onOpenDatalist: () => void;
    }): any;
    'icon-start'?(_: {}): any;
    'icon-end'?(_: {}): any;
    option?(_: {
        option: InputOption;
        isSelected: boolean;
    }): any;
    'search-hint'?(_: {}): any;
    'new-option'?(_: {
        newOption: string;
    }): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
