import { ApFormItemSlots } from '../../interface';
import { ApFormItemSwitchProps } from '../interface';
import { ComponentInternalInstance, VNode, VNodeProps, AllowedComponentProps, ComponentCustomProps, Attrs, CreateComponentPublicInstanceWithMixins, ExtractPropTypes, PropType, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, Slot, ComponentPublicInstance, ComponentOptionsBase, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ComponentCustomProperties, DefineComponent } from 'vue';
import { FieldMode, ApFieldSwitchConfirmConfig, ApFieldSwitchProps } from '../../../ap-field';
import { FocusEventHandler } from '@aplus-frontend/antdv/es/_util/EventInterface';
import { VueTypeDef, VueTypeValidableDef } from '../../../../node_modules/vue-types';
import { VueNode, CustomSlotsType } from '@aplus-frontend/antdv/es/_util/type';
import { OnCleanup } from '@vue/reactivity';
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        checkedChildren: any;
        unCheckedChildren: any;
        default: any;
    } & Omit<ApFormItemSlots, "default">> & {
        checkedChildren: any;
        unCheckedChildren: any;
        default: any;
    } & Omit<ApFormItemSlots, "default">;
    refs: {
        switchRef: ({
            $: ComponentInternalInstance;
            $data: {};
            $props: {
                readonly mode?: FieldMode | undefined;
                readonly class?: unknown;
                readonly style?: unknown;
                readonly emptyText?: string | undefined;
                readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
                readonly size?: "small" | "default" | undefined;
                readonly onBlur?: FocusEventHandler | undefined;
                readonly onChange?: ((checked: string | number | boolean, e: Event) => void) | undefined;
                readonly onFocus?: FocusEventHandler | undefined;
                readonly onKeydown?: ((e: Event) => void) | undefined;
                readonly onMouseup?: ((e: Event) => void) | undefined;
                readonly disabled?: boolean | undefined;
                readonly id?: string | undefined;
                readonly prefixCls?: string | undefined;
                readonly autofocus?: boolean | undefined;
                readonly loading?: boolean | undefined;
                readonly tabindex?: string | number | undefined;
                readonly checkedChildren?: any;
                readonly unCheckedChildren?: any;
                readonly checked?: string | number | boolean | undefined;
                readonly checkedValue?: string | number | boolean | undefined;
                readonly unCheckedValue?: string | number | boolean | undefined;
                readonly 'onUpdate:checked'?: (((checked: string | number | boolean) => void) & ((...args: any[]) => any)) | undefined;
                readonly onAction?: ((checked: string | boolean | number, e?: Event) => boolean | Promise<boolean>) | undefined;
                readonly confirm?: ( ApFieldSwitchConfirmConfig | ((checked: string | number | boolean) => ApFieldSwitchConfirmConfig)) | undefined;
            } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
            $attrs: Attrs;
            $refs: {
                [x: string]: unknown;
            } & {
                switchRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
                    id: StringConstructor;
                    prefixCls: StringConstructor;
                    size: VueTypeDef<"default" | "small">;
                    disabled: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    checkedChildren: VueTypeValidableDef<any>;
                    unCheckedChildren: VueTypeValidableDef<any>;
                    tabindex: VueTypeDef<string | number>;
                    autofocus: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    loading: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    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: string | number | boolean, e: Event) => void>;
                    };
                    onClick: {
                        type: PropType<(checked: string | number | boolean, e: Event) => void>;
                    };
                    onKeydown: {
                        type: PropType<(e: Event) => void>;
                    };
                    onMouseup: {
                        type: PropType<(e: Event) => void>;
                    };
                    'onUpdate:checked': {
                        type: PropType<(checked: string | number | boolean) => 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<"default" | "small">;
                    disabled: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    checkedChildren: VueTypeValidableDef<any>;
                    unCheckedChildren: VueTypeValidableDef<any>;
                    tabindex: VueTypeDef<string | number>;
                    autofocus: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    loading: {
                        type: BooleanConstructor;
                        default: any;
                    };
                    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: string | number | boolean, e: Event) => void>;
                    };
                    onClick: {
                        type: PropType<(checked: string | number | boolean, e: Event) => void>;
                    };
                    onKeydown: {
                        type: PropType<(e: Event) => void>;
                    };
                    onMouseup: {
                        type: PropType<(e: Event) => void>;
                    };
                    'onUpdate:checked': {
                        type: PropType<(checked: string | number | boolean) => void>;
                    };
                    onBlur: PropType<FocusEventHandler>;
                    onFocus: PropType<FocusEventHandler>;
                }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
                    disabled: boolean;
                    autofocus: boolean;
                    loading: boolean;
                    checkedValue: string | number | boolean;
                    unCheckedValue: string | number | boolean;
                }> | null;
            };
            $slots: Readonly<{
                [name: string]: Slot<any> | undefined;
            }>;
            $root: ComponentPublicInstance | null;
            $parent: ComponentPublicInstance | null;
            $host: Element | null;
            $emit: (event: "update:checked", ...args: any[]) => void;
            $el: any;
            $options: ComponentOptionsBase<Readonly< ApFieldSwitchProps> & Readonly<{
                "onUpdate:checked"?: ((...args: any[]) => any) | undefined;
            }>, {
                blur: () => void;
                focus: () => void;
            }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
                "update:checked": (...args: any[]) => void;
            }, string, {
                size: "small" | "default";
                disabled: boolean;
                loading: boolean;
                emptyText: string;
                checkedValue: string | number | boolean;
                unCheckedValue: string | number | boolean;
            }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
                beforeCreate?: (() => void) | (() => void)[];
                created?: (() => void) | (() => void)[];
                beforeMount?: (() => void) | (() => void)[];
                mounted?: (() => void) | (() => void)[];
                beforeUpdate?: (() => void) | (() => void)[];
                updated?: (() => void) | (() => void)[];
                activated?: (() => void) | (() => void)[];
                deactivated?: (() => void) | (() => void)[];
                beforeDestroy?: (() => void) | (() => void)[];
                beforeUnmount?: (() => void) | (() => void)[];
                destroyed?: (() => void) | (() => void)[];
                unmounted?: (() => void) | (() => void)[];
                renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
                errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
            };
            $forceUpdate: () => void;
            $nextTick: nextTick;
            $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
        } & Readonly<{
            size: "small" | "default";
            disabled: boolean;
            loading: boolean;
            emptyText: string;
            checkedValue: string | number | boolean;
            unCheckedValue: string | number | boolean;
        }> & Omit<Readonly< ApFieldSwitchProps> & Readonly<{
            "onUpdate:checked"?: ((...args: any[]) => any) | undefined;
        }>, "blur" | "focus" | ("size" | "disabled" | "loading" | "emptyText" | "checkedValue" | "unCheckedValue")> & {
            blur: () => void;
            focus: () => void;
        } & {} & ComponentCustomProperties & {} & {
            $slots: Readonly<{
                checkedChildren: any;
                unCheckedChildren: any;
                default: any;
            }> & {
                checkedChildren: any;
                unCheckedChildren: any;
                default: any;
            };
        }) | null;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ApFormItemSwitchProps, {
    focus: () => void | undefined;
    blur: () => void | undefined;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ApFormItemSwitchProps> & Readonly<{}>, {
    disabled: boolean;
    required: boolean;
    colon: boolean;
    hasFeedback: boolean;
    autoLink: boolean;
    validateFirst: boolean;
    valuePropName: string;
    field: Omit< ApFieldSwitchProps, "checked" | "onUpdate:checked">;
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    switchRef: ({
        $: ComponentInternalInstance;
        $data: {};
        $props: {
            readonly mode?: FieldMode | undefined;
            readonly class?: unknown;
            readonly style?: unknown;
            readonly emptyText?: string | undefined;
            readonly customReadMode?: ((originalNode: any, val?: any) => VNode) | undefined;
            readonly size?: "small" | "default" | undefined;
            readonly onBlur?: FocusEventHandler | undefined;
            readonly onChange?: ((checked: string | number | boolean, e: Event) => void) | undefined;
            readonly onFocus?: FocusEventHandler | undefined;
            readonly onKeydown?: ((e: Event) => void) | undefined;
            readonly onMouseup?: ((e: Event) => void) | undefined;
            readonly disabled?: boolean | undefined;
            readonly id?: string | undefined;
            readonly prefixCls?: string | undefined;
            readonly autofocus?: boolean | undefined;
            readonly loading?: boolean | undefined;
            readonly tabindex?: string | number | undefined;
            readonly checkedChildren?: any;
            readonly unCheckedChildren?: any;
            readonly checked?: string | number | boolean | undefined;
            readonly checkedValue?: string | number | boolean | undefined;
            readonly unCheckedValue?: string | number | boolean | undefined;
            readonly 'onUpdate:checked'?: (((checked: string | number | boolean) => void) & ((...args: any[]) => any)) | undefined;
            readonly onAction?: ((checked: string | boolean | number, e?: Event) => boolean | Promise<boolean>) | undefined;
            readonly confirm?: ( ApFieldSwitchConfirmConfig | ((checked: string | number | boolean) => ApFieldSwitchConfirmConfig)) | undefined;
        } & VNodeProps & AllowedComponentProps & ComponentCustomProps;
        $attrs: Attrs;
        $refs: {
            [x: string]: unknown;
        } & {
            switchRef: CreateComponentPublicInstanceWithMixins<Readonly< ExtractPropTypes<{
                id: StringConstructor;
                prefixCls: StringConstructor;
                size: VueTypeDef<"default" | "small">;
                disabled: {
                    type: BooleanConstructor;
                    default: any;
                };
                checkedChildren: VueTypeValidableDef<any>;
                unCheckedChildren: VueTypeValidableDef<any>;
                tabindex: VueTypeDef<string | number>;
                autofocus: {
                    type: BooleanConstructor;
                    default: any;
                };
                loading: {
                    type: BooleanConstructor;
                    default: any;
                };
                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: string | number | boolean, e: Event) => void>;
                };
                onClick: {
                    type: PropType<(checked: string | number | boolean, e: Event) => void>;
                };
                onKeydown: {
                    type: PropType<(e: Event) => void>;
                };
                onMouseup: {
                    type: PropType<(e: Event) => void>;
                };
                'onUpdate:checked': {
                    type: PropType<(checked: string | number | boolean) => 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<"default" | "small">;
                disabled: {
                    type: BooleanConstructor;
                    default: any;
                };
                checkedChildren: VueTypeValidableDef<any>;
                unCheckedChildren: VueTypeValidableDef<any>;
                tabindex: VueTypeDef<string | number>;
                autofocus: {
                    type: BooleanConstructor;
                    default: any;
                };
                loading: {
                    type: BooleanConstructor;
                    default: any;
                };
                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: string | number | boolean, e: Event) => void>;
                };
                onClick: {
                    type: PropType<(checked: string | number | boolean, e: Event) => void>;
                };
                onKeydown: {
                    type: PropType<(e: Event) => void>;
                };
                onMouseup: {
                    type: PropType<(e: Event) => void>;
                };
                'onUpdate:checked': {
                    type: PropType<(checked: string | number | boolean) => void>;
                };
                onBlur: PropType<FocusEventHandler>;
                onFocus: PropType<FocusEventHandler>;
            }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
                disabled: boolean;
                autofocus: boolean;
                loading: boolean;
                checkedValue: string | number | boolean;
                unCheckedValue: string | number | boolean;
            }> | null;
        };
        $slots: Readonly<{
            [name: string]: Slot<any> | undefined;
        }>;
        $root: ComponentPublicInstance | null;
        $parent: ComponentPublicInstance | null;
        $host: Element | null;
        $emit: (event: "update:checked", ...args: any[]) => void;
        $el: any;
        $options: ComponentOptionsBase<Readonly< ApFieldSwitchProps> & Readonly<{
            "onUpdate:checked"?: ((...args: any[]) => any) | undefined;
        }>, {
            blur: () => void;
            focus: () => void;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
            "update:checked": (...args: any[]) => void;
        }, string, {
            size: "small" | "default";
            disabled: boolean;
            loading: boolean;
            emptyText: string;
            checkedValue: string | number | boolean;
            unCheckedValue: string | number | boolean;
        }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & {
            beforeCreate?: (() => void) | (() => void)[];
            created?: (() => void) | (() => void)[];
            beforeMount?: (() => void) | (() => void)[];
            mounted?: (() => void) | (() => void)[];
            beforeUpdate?: (() => void) | (() => void)[];
            updated?: (() => void) | (() => void)[];
            activated?: (() => void) | (() => void)[];
            deactivated?: (() => void) | (() => void)[];
            beforeDestroy?: (() => void) | (() => void)[];
            beforeUnmount?: (() => void) | (() => void)[];
            destroyed?: (() => void) | (() => void)[];
            unmounted?: (() => void) | (() => void)[];
            renderTracked?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            renderTriggered?: ((e: DebuggerEvent) => void) | ((e: DebuggerEvent) => void)[];
            errorCaptured?: ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: ComponentPublicInstance | null, info: string) => boolean | void)[];
        };
        $forceUpdate: () => void;
        $nextTick: nextTick;
        $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, OnCleanup]) => any : (...args: [any, any, OnCleanup]) => any, options?: WatchOptions): WatchStopHandle;
    } & Readonly<{
        size: "small" | "default";
        disabled: boolean;
        loading: boolean;
        emptyText: string;
        checkedValue: string | number | boolean;
        unCheckedValue: string | number | boolean;
    }> & Omit<Readonly< ApFieldSwitchProps> & Readonly<{
        "onUpdate:checked"?: ((...args: any[]) => any) | undefined;
    }>, "blur" | "focus" | ("size" | "disabled" | "loading" | "emptyText" | "checkedValue" | "unCheckedValue")> & {
        blur: () => void;
        focus: () => void;
    } & {} & ComponentCustomProperties & {} & {
        $slots: Readonly<{
            checkedChildren: any;
            unCheckedChildren: any;
            default: any;
        }> & {
            checkedChildren: any;
            unCheckedChildren: any;
            default: any;
        };
    }) | null;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
