import { type PropType } from 'vue';
import type { Primitive } from '../../core';
import { type ComboboxData, type ComboboxItem, type OptionsFilter } from '../Combobox';
export interface SelectProps<Value extends Primitive = string> {
    modelValue?: Value | null;
    value?: Value | null;
    defaultValue?: Value | null;
    onChange?: (value: Value | null, option: ComboboxItem<Value> | null) => void;
    data?: ComboboxData<Value>;
    searchable?: boolean;
    searchValue?: string;
    defaultSearchValue?: string;
    onSearchChange?: (value: string) => void;
    allowDeselect?: boolean;
    clearable?: boolean;
    onClear?: () => void;
    withCheckIcon?: boolean;
    withAlignedLabels?: boolean;
    checkIconPosition?: 'left' | 'right';
    nothingFoundMessage?: any;
    filter?: OptionsFilter<Value>;
    limit?: number;
    dropdownOpened?: boolean;
    defaultDropdownOpened?: boolean;
    onDropdownOpen?: () => void;
    onDropdownClose?: () => void;
    selectFirstOptionOnChange?: boolean;
    selectFirstOptionOnDropdownOpen?: boolean;
    onOptionSubmit?: (value: Value) => void;
    withScrollArea?: boolean;
    maxDropdownHeight?: number | string;
    comboboxProps?: Record<string, any>;
    hiddenInputProps?: Record<string, any>;
    renderOption?: (input: any) => any;
    scrollAreaProps?: Record<string, any>;
    autoSelectOnBlur?: boolean;
    openOnFocus?: boolean;
    clearSectionMode?: 'both' | 'rightSection' | 'clear';
    chevronColor?: string;
    [key: string]: any;
}
export type SelectStylesNames = string;
export declare const Select: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    modelValue: {
        type: any;
        default: undefined;
    };
    value: {
        type: any;
        default: undefined;
    };
    defaultValue: {
        type: any;
        default: null;
    };
    onChange: PropType<(value: any, option: any) => void>;
    data: {
        type: PropType<ComboboxData<any>>;
        default: () => never[];
    };
    searchable: BooleanConstructor;
    searchValue: {
        type: StringConstructor;
        default: undefined;
    };
    defaultSearchValue: StringConstructor;
    onSearchChange: PropType<(value: string) => void>;
    allowDeselect: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearable: BooleanConstructor;
    onClear: PropType<() => void>;
    withCheckIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    withAlignedLabels: BooleanConstructor;
    checkIconPosition: {
        type: PropType<"left" | "right">;
        default: string;
    };
    nothingFoundMessage: {
        type: PropType<any>;
        default: undefined;
    };
    filter: PropType<any>;
    limit: NumberConstructor;
    dropdownOpened: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultDropdownOpened: BooleanConstructor;
    onDropdownOpen: PropType<() => void>;
    onDropdownClose: PropType<() => void>;
    selectFirstOptionOnChange: BooleanConstructor;
    selectFirstOptionOnDropdownOpen: BooleanConstructor;
    onOptionSubmit: PropType<(value: any) => void>;
    withScrollArea: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxDropdownHeight: (NumberConstructor | StringConstructor)[];
    comboboxProps: ObjectConstructor;
    hiddenInputProps: ObjectConstructor;
    renderOption: PropType<any>;
    scrollAreaProps: ObjectConstructor;
    autoSelectOnBlur: BooleanConstructor;
    openOnFocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearSectionMode: {
        type: PropType<"both" | "rightSection" | "clear">;
        default: undefined;
    };
    chevronColor: {
        type: StringConstructor;
        default: undefined;
    };
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "update:searchValue")[], "update:modelValue" | "update:searchValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    modelValue: {
        type: any;
        default: undefined;
    };
    value: {
        type: any;
        default: undefined;
    };
    defaultValue: {
        type: any;
        default: null;
    };
    onChange: PropType<(value: any, option: any) => void>;
    data: {
        type: PropType<ComboboxData<any>>;
        default: () => never[];
    };
    searchable: BooleanConstructor;
    searchValue: {
        type: StringConstructor;
        default: undefined;
    };
    defaultSearchValue: StringConstructor;
    onSearchChange: PropType<(value: string) => void>;
    allowDeselect: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearable: BooleanConstructor;
    onClear: PropType<() => void>;
    withCheckIcon: {
        type: BooleanConstructor;
        default: boolean;
    };
    withAlignedLabels: BooleanConstructor;
    checkIconPosition: {
        type: PropType<"left" | "right">;
        default: string;
    };
    nothingFoundMessage: {
        type: PropType<any>;
        default: undefined;
    };
    filter: PropType<any>;
    limit: NumberConstructor;
    dropdownOpened: {
        type: BooleanConstructor;
        default: undefined;
    };
    defaultDropdownOpened: BooleanConstructor;
    onDropdownOpen: PropType<() => void>;
    onDropdownClose: PropType<() => void>;
    selectFirstOptionOnChange: BooleanConstructor;
    selectFirstOptionOnDropdownOpen: BooleanConstructor;
    onOptionSubmit: PropType<(value: any) => void>;
    withScrollArea: {
        type: BooleanConstructor;
        default: boolean;
    };
    maxDropdownHeight: (NumberConstructor | StringConstructor)[];
    comboboxProps: ObjectConstructor;
    hiddenInputProps: ObjectConstructor;
    renderOption: PropType<any>;
    scrollAreaProps: ObjectConstructor;
    autoSelectOnBlur: BooleanConstructor;
    openOnFocus: {
        type: BooleanConstructor;
        default: boolean;
    };
    clearSectionMode: {
        type: PropType<"both" | "rightSection" | "clear">;
        default: undefined;
    };
    chevronColor: {
        type: StringConstructor;
        default: undefined;
    };
}>> & Readonly<{
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    "onUpdate:searchValue"?: ((...args: any[]) => any) | undefined;
}>, {
    data: ComboboxData<any>;
    value: any;
    defaultValue: any;
    clearable: boolean;
    clearSectionMode: "clear" | "both" | "rightSection";
    modelValue: any;
    withCheckIcon: boolean;
    withAlignedLabels: boolean;
    withScrollArea: boolean;
    checkIconPosition: "left" | "right";
    nothingFoundMessage: any;
    searchable: boolean;
    searchValue: string;
    allowDeselect: boolean;
    dropdownOpened: boolean;
    defaultDropdownOpened: boolean;
    selectFirstOptionOnChange: boolean;
    selectFirstOptionOnDropdownOpen: boolean;
    autoSelectOnBlur: boolean;
    openOnFocus: boolean;
    chevronColor: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
