import { Position, PositionProp } from './position.enum';
import { StyleSwitchItem } from '../../types';
import { PropType, Ref, SlotsType, DefineComponent, ExtractPropTypes, VNode, RendererNode, RendererElement, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
interface SlotProps {
    isOpen: Ref<boolean>;
    toggleOpen: (forceIsOpen?: boolean | Event, e?: Event) => void;
    setStyle: (s: StyleSwitchItem) => void;
    mapStyles: StyleSwitchItem[];
    currentStyle: Ref<StyleSwitchItem | null>;
}
declare const _default: DefineComponent<ExtractPropTypes<{
    position: {
        type: PropType<PositionProp>;
        validator: (v: Position) => boolean;
    };
    mapStyles: {
        type: PropType<StyleSwitchItem[]>;
        required: true;
        default: never[];
    };
    modelValue: {
        type: PropType<StyleSwitchItem>;
    };
    isOpen: {
        type: PropType<boolean>;
        default: undefined;
    };
}>, () => VNode<RendererNode, RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("update:modelValue" | "update:isOpen")[], "update:modelValue" | "update:isOpen", PublicProps, Readonly< ExtractPropTypes<{
    position: {
        type: PropType<PositionProp>;
        validator: (v: Position) => boolean;
    };
    mapStyles: {
        type: PropType<StyleSwitchItem[]>;
        required: true;
        default: never[];
    };
    modelValue: {
        type: PropType<StyleSwitchItem>;
    };
    isOpen: {
        type: PropType<boolean>;
        default: undefined;
    };
}>> & Readonly<{
    "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
    "onUpdate:isOpen"?: ((...args: any[]) => any) | undefined;
}>, {
    mapStyles: StyleSwitchItem[];
    isOpen: boolean;
}, SlotsType<{
    default: SlotProps;
    button: SlotProps;
    styleList: SlotProps;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
