import { Positions } from '@/models/enums';
import { TProps } from '@/types/global';
import { EDirections } from '@/models/enums';
import { ITSelectOptions } from '@/types/components/components';
declare const _sfc_main: import("vue").DefineComponent<{
    placement: {
        type: StringConstructor;
        default: Positions;
        validator: (value: Positions) => boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    divided: {
        type: BooleanConstructor;
        default: boolean;
    };
    trackBy: {
        type: StringConstructor;
        default: string;
    };
    tagVariant: {
        type: StringConstructor;
        default: string;
    };
    message: StringConstructor;
    labelTop: {
        type: StringConstructor;
        default: null;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    options: {
        type: ArrayConstructor;
        default: () => never[];
    };
    multiselect: BooleanConstructor;
    modelValue: {
        type: (ObjectConstructor | StringConstructor | NumberConstructor)[];
        default: null;
    };
    classes?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    base?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    variants?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    variant?: {
        type: import("vue").PropType<string | string[] | undefined>;
        default?: string | undefined;
    } | undefined;
}, {
    labelTopSlotExist: boolean;
    CLASS_SELECTED_OPTION: string;
    wrappedValue: import("vue").ComputedRef<import("./types").TOption | import("./types").TOption[]>;
    getOptionName: (option: import("./types").TOption) => string | number;
    getOptionValue: (option: import("./types").TOption) => string | number;
    setOptionRef: (el: HTMLElement, i: number) => void;
    indexFocusedOption: import("vue").Ref<number>;
    optionsRefs: import("vue").Ref<HTMLElement[]>;
    show: import("vue").Ref<boolean>;
    handleEnterKey: () => void;
    setOpen: (state: boolean) => void;
    setSelectListRef: (dropdown: HTMLElement) => void;
    toggleDropdown: () => void;
    selectOption: (optionIndex: number) => void;
    handleKey: (type: EDirections) => void;
    props: TProps;
    EDirections: typeof EDirections;
    outsideHandler: (e: Event) => void;
    dropdown: import("vue").Ref<HTMLElement | undefined>;
    variant: import("vue").ComputedRef<{
        transitions?: Record<string, Record<string, string>> | undefined;
    } & import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
    remove: () => void;
    trigger: import("vue").Ref<HTMLElement | undefined>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    placement: {
        type: StringConstructor;
        default: Positions;
        validator: (value: Positions) => boolean;
    };
    disabled: {
        type: BooleanConstructor;
        default: boolean;
    };
    divided: {
        type: BooleanConstructor;
        default: boolean;
    };
    trackBy: {
        type: StringConstructor;
        default: string;
    };
    tagVariant: {
        type: StringConstructor;
        default: string;
    };
    message: StringConstructor;
    labelTop: {
        type: StringConstructor;
        default: null;
    };
    placeholder: {
        type: StringConstructor;
        default: string;
    };
    options: {
        type: ArrayConstructor;
        default: () => never[];
    };
    multiselect: BooleanConstructor;
    modelValue: {
        type: (ObjectConstructor | StringConstructor | NumberConstructor)[];
        default: null;
    };
    classes?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    base?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    variants?: {
        type: import("vue").PropType<import("../../types/variant").CSSRawClassesList<ITSelectOptions>>;
        default: undefined;
    } | undefined;
    variant?: {
        type: import("vue").PropType<string | string[] | undefined>;
        default?: string | undefined;
    } | undefined;
}>> & {
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
}, {
    placeholder: string;
    disabled: boolean;
    modelValue: string | number | Record<string, any>;
    placement: string;
    labelTop: string;
    divided: boolean;
    trackBy: string;
    tagVariant: string;
    options: unknown[];
    multiselect: boolean;
}>;
export default _sfc_main;
