import { ConfigOptionType, ExtractValueType, OptionValueType } from '../../types';
declare const _default: <Option extends OptionValueType, Config extends ConfigOptionType<Option>, Model extends ExtractValueType<Option, Config>, Multiple extends boolean = false>(__VLS_props: {
    id?: string | undefined;
    name?: string | undefined;
    size?: "" | "small" | "default" | "large" | undefined;
    color?: "" | "primary" | "secondary" | "destructive" | "success" | "warning" | "active" | "primary-alternative" | undefined;
    readonly onFocus?: ((evt: Event) => any) | undefined;
    readonly onBlur?: ((evt: Event) => any) | undefined;
    readonly onChange?: ((option: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
    options?: Option[] | undefined;
    loading?: boolean | undefined;
    disabled?: boolean | undefined;
    teleported?: boolean | undefined;
    persistent?: boolean | undefined;
    modelValue?: (Multiple extends true ? Model[] : Model) | undefined;
    placeholder?: string | undefined;
    maxWidth?: string | number | undefined;
    isError?: boolean | undefined;
    valueKey?: string | undefined;
    clearable?: boolean | undefined;
    fitInputWidth?: boolean | undefined;
    dataTestName?: string | undefined;
    prefixIconColor?: string | undefined;
    prefixIcon?: string | undefined;
    prefixIconSize?: string | undefined;
    readonly "onUpdate:modelValue"?: ((value: (Multiple extends true ? Model[] : Model) | undefined) => any) | undefined;
    readonly onClear?: (() => any) | undefined;
    config?: Config | undefined;
    readonly "onUpdate:visible"?: ((status: boolean) => any) | undefined;
    emptyText?: string | undefined;
    readonly "onInitial-value"?: ((value?: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
    readonly "onRemove-tag"?: ((value: Model) => any) | undefined;
    readonly "onOption:click"?: ((option: Option) => any) | undefined;
    filterable?: boolean | undefined;
    onlySlotData?: boolean | undefined;
    filterMethod?: ((query: string) => void) | undefined;
    remoteMethod?: ((query: string) => void) | undefined;
    multiple?: Multiple | undefined;
    quickCheckAll?: boolean | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
    attrs: any;
    slots: Readonly<{
        'prefix-icon'(props: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): void;
        default(): void;
        header(): void;
        footer(): void;
        label(props: {
            label: string;
            value: Model;
        }): void;
        'load-more-option'(): void;
        option(props: {
            option: Option;
        }): void;
    }> & {
        'prefix-icon'(props: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): void;
        default(): void;
        header(): void;
        footer(): void;
        label(props: {
            label: string;
            value: Model;
        }): void;
        'load-more-option'(): void;
        option(props: {
            option: Option;
        }): void;
    };
    emit: {
        (e: 'update:modelValue', value: (Multiple extends true ? Model[] : Model) | undefined): void;
        (e: 'initial-value', value?: (Multiple extends true ? Option[] : Option) | undefined): void;
        (e: 'update:visible', status: boolean): void;
        (e: 'remove-tag', value: Model): void;
        (e: 'clear'): void;
        (e: 'blur', evt: Event): void;
        (e: 'focus', evt: Event): void;
        (e: 'option:click', option: Option): void;
        (e: 'change', option: (Multiple extends true ? Option[] : Option) | undefined): void;
    };
} | undefined, __VLS_expose?: ((exposed: import('vue').ShallowUnwrapRef<{}>) => void) | undefined, __VLS_setup?: Promise<{
    props: {
        id?: string | undefined;
        name?: string | undefined;
        size?: "" | "small" | "default" | "large" | undefined;
        color?: "" | "primary" | "secondary" | "destructive" | "success" | "warning" | "active" | "primary-alternative" | undefined;
        readonly onFocus?: ((evt: Event) => any) | undefined;
        readonly onBlur?: ((evt: Event) => any) | undefined;
        readonly onChange?: ((option: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
        options?: Option[] | undefined;
        loading?: boolean | undefined;
        disabled?: boolean | undefined;
        teleported?: boolean | undefined;
        persistent?: boolean | undefined;
        modelValue?: (Multiple extends true ? Model[] : Model) | undefined;
        placeholder?: string | undefined;
        maxWidth?: string | number | undefined;
        isError?: boolean | undefined;
        valueKey?: string | undefined;
        clearable?: boolean | undefined;
        fitInputWidth?: boolean | undefined;
        dataTestName?: string | undefined;
        prefixIconColor?: string | undefined;
        prefixIcon?: string | undefined;
        prefixIconSize?: string | undefined;
        readonly "onUpdate:modelValue"?: ((value: (Multiple extends true ? Model[] : Model) | undefined) => any) | undefined;
        readonly onClear?: (() => any) | undefined;
        config?: Config | undefined;
        readonly "onUpdate:visible"?: ((status: boolean) => any) | undefined;
        emptyText?: string | undefined;
        readonly "onInitial-value"?: ((value?: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
        readonly "onRemove-tag"?: ((value: Model) => any) | undefined;
        readonly "onOption:click"?: ((option: Option) => any) | undefined;
        filterable?: boolean | undefined;
        onlySlotData?: boolean | undefined;
        filterMethod?: ((query: string) => void) | undefined;
        remoteMethod?: ((query: string) => void) | undefined;
        multiple?: Multiple | undefined;
        quickCheckAll?: boolean | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: Readonly<{
        'prefix-icon'(props: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): void;
        default(): void;
        header(): void;
        footer(): void;
        label(props: {
            label: string;
            value: Model;
        }): void;
        'load-more-option'(): void;
        option(props: {
            option: Option;
        }): void;
    }> & {
        'prefix-icon'(props: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): void;
        default(): void;
        header(): void;
        footer(): void;
        label(props: {
            label: string;
            value: Model;
        }): void;
        'load-more-option'(): void;
        option(props: {
            option: Option;
        }): void;
    };
    emit: {
        (e: 'update:modelValue', value: (Multiple extends true ? Model[] : Model) | undefined): void;
        (e: 'initial-value', value?: (Multiple extends true ? Option[] : Option) | undefined): void;
        (e: 'update:visible', status: boolean): void;
        (e: 'remove-tag', value: Model): void;
        (e: 'clear'): void;
        (e: 'blur', evt: Event): void;
        (e: 'focus', evt: Event): void;
        (e: 'option:click', option: Option): void;
        (e: 'change', option: (Multiple extends true ? Option[] : Option) | undefined): void;
    };
}>) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: {
        props: {
            id?: string | undefined;
            name?: string | undefined;
            size?: "" | "small" | "default" | "large" | undefined;
            color?: "" | "primary" | "secondary" | "destructive" | "success" | "warning" | "active" | "primary-alternative" | undefined;
            readonly onFocus?: ((evt: Event) => any) | undefined;
            readonly onBlur?: ((evt: Event) => any) | undefined;
            readonly onChange?: ((option: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
            options?: Option[] | undefined;
            loading?: boolean | undefined;
            disabled?: boolean | undefined;
            teleported?: boolean | undefined;
            persistent?: boolean | undefined;
            modelValue?: (Multiple extends true ? Model[] : Model) | undefined;
            placeholder?: string | undefined;
            maxWidth?: string | number | undefined;
            isError?: boolean | undefined;
            valueKey?: string | undefined;
            clearable?: boolean | undefined;
            fitInputWidth?: boolean | undefined;
            dataTestName?: string | undefined;
            prefixIconColor?: string | undefined;
            prefixIcon?: string | undefined;
            prefixIconSize?: string | undefined;
            readonly "onUpdate:modelValue"?: ((value: (Multiple extends true ? Model[] : Model) | undefined) => any) | undefined;
            readonly onClear?: (() => any) | undefined;
            config?: Config | undefined;
            readonly "onUpdate:visible"?: ((status: boolean) => any) | undefined;
            emptyText?: string | undefined;
            readonly "onInitial-value"?: ((value?: (Multiple extends true ? Option[] : Option) | undefined) => any) | undefined;
            readonly "onRemove-tag"?: ((value: Model) => any) | undefined;
            readonly "onOption:click"?: ((option: Option) => any) | undefined;
            filterable?: boolean | undefined;
            onlySlotData?: boolean | undefined;
            filterMethod?: ((query: string) => void) | undefined;
            remoteMethod?: ((query: string) => void) | undefined;
            multiple?: Multiple | undefined;
            quickCheckAll?: boolean | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
        expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
        attrs: any;
        slots: Readonly<{
            'prefix-icon'(props: {
                selected: (Multiple extends true ? Option[] : Option) | undefined;
            }): void;
            default(): void;
            header(): void;
            footer(): void;
            label(props: {
                label: string;
                value: Model;
            }): void;
            'load-more-option'(): void;
            option(props: {
                option: Option;
            }): void;
        }> & {
            'prefix-icon'(props: {
                selected: (Multiple extends true ? Option[] : Option) | undefined;
            }): void;
            default(): void;
            header(): void;
            footer(): void;
            label(props: {
                label: string;
                value: Model;
            }): void;
            'load-more-option'(): void;
            option(props: {
                option: Option;
            }): void;
        };
        emit: {
            (e: 'update:modelValue', value: (Multiple extends true ? Model[] : Model) | undefined): void;
            (e: 'initial-value', value?: (Multiple extends true ? Option[] : Option) | undefined): void;
            (e: 'update:visible', status: boolean): void;
            (e: 'remove-tag', value: Model): void;
            (e: 'clear'): void;
            (e: 'blur', evt: Event): void;
            (e: 'focus', evt: Event): void;
            (e: 'option:click', option: Option): void;
            (e: 'change', option: (Multiple extends true ? Option[] : Option) | undefined): void;
        };
    } | undefined;
};
export default _default;
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
