import { MaybeReadonly } from '../../types';
import { SelectModelValue, SelectOptionGroup, SelectOption } from '../../types/selectOption';
type __VLS_Props = {
    modelValue: string | number | boolean | null | SelectModelValue[] | undefined;
    disabled?: boolean;
    options: MaybeReadonly<(SelectOption | SelectOptionGroup)[]>;
    emptyMessage?: string;
    multiple?: boolean;
    small?: boolean;
    optionsClass?: string;
};
declare var __VLS_22: {}, __VLS_29: {
    label: string;
    value: unknown;
    dismiss: () => void;
}, __VLS_38: {
    label: string;
    value: unknown;
    option: {
        label: string;
        value: SelectModelValue;
        disabled?: boolean;
    } | undefined;
}, __VLS_41: {
    label: string;
    value: string | number | boolean | null;
    option: {
        label: string;
        value: SelectModelValue;
        disabled?: boolean;
    } | undefined;
}, __VLS_61: string | number, __VLS_62: any;
type __VLS_Slots = {} & {
    [K in NonNullable<typeof __VLS_61>]?: (props: typeof __VLS_62) => any;
} & {
    'empty-message'?: (props: typeof __VLS_22) => any;
} & {
    tag?: (props: typeof __VLS_29) => any;
} & {
    default?: (props: typeof __VLS_38) => any;
} & {
    default?: (props: typeof __VLS_41) => any;
};
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    "update:modelValue": (value: SelectModelValue | SelectModelValue[]) => void;
    bottom: () => void;
    close: () => void;
    open: () => void;
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
    onBottom?: (() => any) | undefined;
    onClose?: (() => any) | undefined;
    onOpen?: (() => any) | undefined;
    "onUpdate:modelValue"?: ((value: SelectModelValue | SelectModelValue[]) => any) | undefined;
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
