import type { RendererNode, RendererElement, PropType,  ExtractPropTypes,  VNode } from 'vue';
import type { SwitchSizeType, SwitchChangeInterface } from './interface';
export declare const Props: {
    readonly modelValue: {
        readonly type: BooleanConstructor;
        readonly default: () => boolean;
        readonly required: true;
    };
    readonly size: {
        readonly type: PropType<SwitchSizeType>;
        readonly default: () => SwitchSizeType;
        readonly validator: (val: SwitchSizeType) => boolean;
    };
    readonly disabled: {
        readonly type: BooleanConstructor;
        readonly default: () => boolean;
    };
    readonly icon: {
        readonly type: PropType<VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }>>;
        readonly default: () => null;
    };
    readonly closeColor: {
        readonly type: StringConstructor;
        readonly default: () => string;
    };
    readonly openColor: {
        readonly type: StringConstructor;
        readonly default: () => string;
    };
    readonly openText: {
        readonly type: StringConstructor;
        readonly default: () => string;
    };
    readonly closeText: {
        readonly type: StringConstructor;
        readonly default: () => string;
    };
    readonly square: {
        readonly type: BooleanConstructor;
        readonly default: () => boolean;
    };
    readonly change: {
        readonly type: PropType<SwitchChangeInterface>;
        readonly default: () => null;
    };
};
export declare const Emits: {
    readonly 'update:modelValue': (target: boolean) => string;
};
export declare type SwitchPropsType = ExtractPropTypes<typeof Props>;
