import { DefineComponent, ExtractPropTypes, ComputedRef, Ref, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
interface SelectOption {
    label: string;
    value: string | number;
    disabled?: boolean;
}
declare const _default: DefineComponent<ExtractPropTypes<{
    modelValue: {
        type: (StringConstructor | NumberConstructor | ArrayConstructor)[];
        default: string;
    };
    options: {
        type: () => SelectOption[];
        default: () => never[];
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: StringConstructor;
        default: string;
        validator: (value: string) => boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    filterable: {
        type: BooleanConstructor;
        default: boolean;
    };
    searchPlaceholder: {
        type: StringConstructor;
        default: string;
    };
    emptyText: {
        type: StringConstructor;
        default: string;
    };
    label: {
        type: StringConstructor;
        default: string;
    };
    required: {
        type: BooleanConstructor;
        default: boolean;
    };
    error: {
        type: BooleanConstructor;
        default: boolean;
    };
    errorMessage: {
        type: StringConstructor;
        default: string;
    };
    helpText: {
        type: StringConstructor;
        default: string;
    };
    dropdownWidth: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    maxHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
}>, {
    selectId: ComputedRef<string | undefined>;
    selectContainerRef: Ref<HTMLElement | null, HTMLElement | null>;
    dropdownRef: Ref<HTMLElement | null, HTMLElement | null>;
    optionsListRef: Ref<HTMLElement | null, HTMLElement | null>;
    searchInputRef: Ref<HTMLInputElement | null, HTMLInputElement | null>;
    isOpen: Ref<boolean, boolean>;
    searchQuery: Ref<string, string>;
    dropdownStyle: ComputedRef<Record<string, string>>;
    filteredOptions: ComputedRef<SelectOption[]>;
    hasSelected: ComputedRef<boolean>;
    selectedOptions: ComputedRef<SelectOption[]>;
    selectedLabel: ComputedRef<string>;
    isOptionSelected: (option: SelectOption) => boolean;
    selectOption: (option: SelectOption) => void;
    removeOption: (option: SelectOption) => void;
    handleClear: () => void;
    handleSearch: () => void;
    toggleDropdown: () => void;
    closeDropdown: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:modelValue" | "change" | "focus" | "blur" | "clear" | "visible-change")[], "update:modelValue" | "change" | "focus" | "blur" | "clear" | "visible-change", PublicProps, Readonly< ExtractPropTypes<{
    modelValue: {
        type: (StringConstructor | NumberConstructor | ArrayConstructor)[];
        default: string;
    };
    options: {
        type: () => SelectOption[];
        default: () => never[];
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    size: {
        type: StringConstructor;
        default: string;
        validator: (value: string) => boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    readonly: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearable: {
        type: BooleanConstructor;
        default: boolean;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    filterable: {
        type: BooleanConstructor;
        default: boolean;
    };
    searchPlaceholder: {
        type: StringConstructor;
        default: string;
    };
    emptyText: {
        type: StringConstructor;
        default: string;
    };
    label: {
        type: StringConstructor;
        default: string;
    };
    required: {
        type: BooleanConstructor;
        default: boolean;
    };
    error: {
        type: BooleanConstructor;
        default: boolean;
    };
    errorMessage: {
        type: StringConstructor;
        default: string;
    };
    helpText: {
        type: StringConstructor;
        default: string;
    };
    dropdownWidth: {
        type: (StringConstructor | NumberConstructor)[];
        default: string;
    };
    maxHeight: {
        type: (StringConstructor | NumberConstructor)[];
        default: number;
    };
}>> & Readonly<{
    onFocus?: ((...args: any[]) => any) | undefined;
    onBlur?: ((...args: any[]) => any) | undefined;
    onChange?: ((...args: any[]) => any) | undefined;
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    onClear?: ((...args: any[]) => any) | undefined;
    "onVisible-change"?: ((...args: any[]) => any) | undefined;
}>, {
    size: string;
    disabled: boolean;
    label: string;
    required: boolean;
    modelValue: string | number | unknown[];
    placeholder: string;
    readonly: boolean;
    clearable: boolean;
    error: boolean;
    errorMessage: string;
    helpText: string;
    options: SelectOption[];
    multiple: boolean;
    filterable: boolean;
    searchPlaceholder: string;
    emptyText: string;
    dropdownWidth: string | number;
    maxHeight: string | number;
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
