import { ConfigOptionType, ExtractValueType, OptionMappedType, OptionObjectValueType } from '../../types';
export type OptionObjectGroupedValueType<Option extends OptionObjectValueType> = {
    label: string;
    options: Array<Option>;
};
declare const _default: <Option extends import('../../types').ObjectAnyType, 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?: OptionObjectGroupedValueType<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;
    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;
    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;
    filterMethod?: ((query: string) => Option[]) | undefined;
    remoteMethod?: ((query: string) => Option[]) | undefined;
    multiple?: Multiple | undefined;
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, __VLS_ctx?: {
    attrs: any;
    slots: {
        "prefix-icon"?(_: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): any;
        default?(_: {}): any;
        option?(_: {
            option: OptionMappedType<Option, Config>;
        }): any;
    };
    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?: OptionObjectGroupedValueType<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;
        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;
        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;
        filterMethod?: ((query: string) => Option[]) | undefined;
        remoteMethod?: ((query: string) => Option[]) | undefined;
        multiple?: Multiple | undefined;
    } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        "prefix-icon"?(_: {
            selected: (Multiple extends true ? Option[] : Option) | undefined;
        }): any;
        default?(_: {}): any;
        option?(_: {
            option: OptionMappedType<Option, Config>;
        }): any;
    };
    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?: OptionObjectGroupedValueType<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;
            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;
            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;
            filterMethod?: ((query: string) => Option[]) | undefined;
            remoteMethod?: ((query: string) => Option[]) | undefined;
            multiple?: Multiple | undefined;
        } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
        expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
        attrs: any;
        slots: {
            "prefix-icon"?(_: {
                selected: (Multiple extends true ? Option[] : Option) | undefined;
            }): any;
            default?(_: {}): any;
            option?(_: {
                option: OptionMappedType<Option, Config>;
            }): any;
        };
        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];
} & {};
