import { ExtractPropTypes, PropType, CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps, Plugin } from 'vue';
import { FocusEventHandler } from '../_util/EventInterface';
import { CustomSlotsType, VueNode } from '../_util/type';
import { VueTypeDef, VueTypeValidableDef } from 'vue-types';
export declare const SwitchSizes: ["small", "default"];
type CheckedType = boolean | string | number;
export declare const switchProps: () => {
    id: StringConstructor;
    prefixCls: StringConstructor;
    size: VueTypeDef<"small" | "default">;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    checkedChildren: VueTypeValidableDef<any>;
    unCheckedChildren: VueTypeValidableDef<any>;
    tabindex: VueTypeDef<string | number>;
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    checked: VueTypeDef<string | number | boolean>;
    checkedValue: VueTypeDef<string | number | boolean> & {
        default: string | number | boolean;
    };
    unCheckedValue: VueTypeDef<string | number | boolean> & {
        default: string | number | boolean;
    };
    onChange: {
        type: PropType<(checked: CheckedType, e: Event) => void>;
    };
    onClick: {
        type: PropType<(checked: CheckedType, e: Event) => void>;
    };
    onKeydown: {
        type: PropType<(e: Event) => void>;
    };
    onMouseup: {
        type: PropType<(e: Event) => void>;
    };
    'onUpdate:checked': {
        type: PropType<(checked: CheckedType) => void>;
    };
    onBlur: PropType<FocusEventHandler>;
    onFocus: PropType<FocusEventHandler>;
};
export type SwitchProps = Partial<ExtractPropTypes<ReturnType<typeof switchProps>>>;
declare const _default: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<ExtractPropTypes<{
        id: StringConstructor;
        prefixCls: StringConstructor;
        size: VueTypeDef<"small" | "default">;
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        checkedChildren: VueTypeValidableDef<any>;
        unCheckedChildren: VueTypeValidableDef<any>;
        tabindex: VueTypeDef<string | number>;
        autofocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        loading: {
            type: BooleanConstructor;
            default: undefined;
        };
        checked: VueTypeDef<string | number | boolean>;
        checkedValue: VueTypeDef<string | number | boolean> & {
            default: string | number | boolean;
        };
        unCheckedValue: VueTypeDef<string | number | boolean> & {
            default: string | number | boolean;
        };
        onChange: {
            type: PropType<(checked: CheckedType, e: Event) => void>;
        };
        onClick: {
            type: PropType<(checked: CheckedType, e: Event) => void>;
        };
        onKeydown: {
            type: PropType<(e: Event) => void>;
        };
        onMouseup: {
            type: PropType<(e: Event) => void>;
        };
        'onUpdate:checked': {
            type: PropType<(checked: CheckedType) => void>;
        };
        onBlur: PropType<FocusEventHandler>;
        onFocus: PropType<FocusEventHandler>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        disabled: boolean;
        autofocus: boolean;
        loading: boolean;
        checkedValue: string | number | boolean;
        unCheckedValue: string | number | boolean;
    }, true, {}, CustomSlotsType<{
        checkedChildren: any;
        unCheckedChildren: any;
        default: any;
    }>, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<ExtractPropTypes<{
        id: StringConstructor;
        prefixCls: StringConstructor;
        size: VueTypeDef<"small" | "default">;
        disabled: {
            type: BooleanConstructor;
            default: undefined;
        };
        checkedChildren: VueTypeValidableDef<any>;
        unCheckedChildren: VueTypeValidableDef<any>;
        tabindex: VueTypeDef<string | number>;
        autofocus: {
            type: BooleanConstructor;
            default: undefined;
        };
        loading: {
            type: BooleanConstructor;
            default: undefined;
        };
        checked: VueTypeDef<string | number | boolean>;
        checkedValue: VueTypeDef<string | number | boolean> & {
            default: string | number | boolean;
        };
        unCheckedValue: VueTypeDef<string | number | boolean> & {
            default: string | number | boolean;
        };
        onChange: {
            type: PropType<(checked: CheckedType, e: Event) => void>;
        };
        onClick: {
            type: PropType<(checked: CheckedType, e: Event) => void>;
        };
        onKeydown: {
            type: PropType<(e: Event) => void>;
        };
        onMouseup: {
            type: PropType<(e: Event) => void>;
        };
        'onUpdate:checked': {
            type: PropType<(checked: CheckedType) => void>;
        };
        onBlur: PropType<FocusEventHandler>;
        onFocus: PropType<FocusEventHandler>;
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        disabled: boolean;
        autofocus: boolean;
        loading: boolean;
        checkedValue: string | number | boolean;
        unCheckedValue: string | number | boolean;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly<ExtractPropTypes<{
    id: StringConstructor;
    prefixCls: StringConstructor;
    size: VueTypeDef<"small" | "default">;
    disabled: {
        type: BooleanConstructor;
        default: undefined;
    };
    checkedChildren: VueTypeValidableDef<any>;
    unCheckedChildren: VueTypeValidableDef<any>;
    tabindex: VueTypeDef<string | number>;
    autofocus: {
        type: BooleanConstructor;
        default: undefined;
    };
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    checked: VueTypeDef<string | number | boolean>;
    checkedValue: VueTypeDef<string | number | boolean> & {
        default: string | number | boolean;
    };
    unCheckedValue: VueTypeDef<string | number | boolean> & {
        default: string | number | boolean;
    };
    onChange: {
        type: PropType<(checked: CheckedType, e: Event) => void>;
    };
    onClick: {
        type: PropType<(checked: CheckedType, e: Event) => void>;
    };
    onKeydown: {
        type: PropType<(e: Event) => void>;
    };
    onMouseup: {
        type: PropType<(e: Event) => void>;
    };
    'onUpdate:checked': {
        type: PropType<(checked: CheckedType) => void>;
    };
    onBlur: PropType<FocusEventHandler>;
    onFocus: PropType<FocusEventHandler>;
}>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
    disabled: boolean;
    autofocus: boolean;
    loading: boolean;
    checkedValue: string | number | boolean;
    unCheckedValue: string | number | boolean;
}, {}, string, CustomSlotsType<{
    checkedChildren: any;
    unCheckedChildren: any;
    default: any;
}>, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & Plugin;
export default _default;
