import type { SwapType, SwapOnChangeInterface } from './src/interface.d';
import type { DefineComponent, PropType, VNode, RendererNode, RendererElement, Component, ComputedOptions, MethodOptions, ComputedRef, CSSProperties, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps } from 'vue';
import type { InstallType, OrdinaryFunctionInterface, ClassListInterface, HandleEventInterface } from '../_interface';
import Swap from "./src/swap";
export declare const FSwap: InstallType<DefineComponent<{
    readonly modelValue: {
        readonly type: BooleanConstructor;
        readonly default: () => boolean;
        readonly require: true;
    };
    readonly size: {
        readonly type: PropType<string | number>;
        readonly default: () => number;
    };
    readonly type: {
        readonly type: PropType<SwapType>;
        readonly default: () => SwapType;
        readonly validator: (val: SwapType) => boolean;
    };
    readonly iconOn: {
        readonly type: PropType<VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>>;
        readonly default: () => null;
    };
    readonly iconOff: {
        readonly type: PropType<VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>>;
        readonly default: () => null;
    };
    readonly onChange: {
        readonly type: PropType<SwapOnChangeInterface>;
        readonly default: () => null;
    };
}, {
    prop: {
        readonly modelValue?: unknown;
        readonly size?: unknown;
        readonly type?: unknown;
        readonly iconOn?: unknown;
        readonly iconOff?: unknown;
        readonly onChange?: unknown;
    } & {
        type: SwapType;
        size: string | number;
        onChange: SwapOnChangeInterface;
        modelValue: boolean;
        iconOn: VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>;
        iconOff: VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>;
    } & {};
    emit: (event: "update:modelValue", target: boolean) => void;
    changeSwap: OrdinaryFunctionInterface;
    classList: ComputedRef<ClassListInterface>;
    FSvgIcon: InstallType<DefineComponent<{
        readonly icon: {
            readonly type: PropType<VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | Component<any, any, any, ComputedOptions, MethodOptions>>;
            readonly default: () => null;
        };
        readonly color: {
            readonly type: StringConstructor;
            readonly default: () => string;
        };
        readonly size: {
            readonly type: PropType<string | number>;
            readonly default: () => string;
        };
        readonly click: {
            readonly type: PropType<HandleEventInterface>;
            readonly default: () => null;
        };
    }, {
        prop: {
            readonly icon?: unknown;
            readonly color?: unknown;
            readonly size?: unknown;
            readonly click?: unknown;
        } & {
            color: string;
            size: string | number;
            icon: VNode<RendererNode, RendererElement, {
                [key: string]: any;
            }> | Component<any, any, any, ComputedOptions, MethodOptions>;
            click: HandleEventInterface;
        } & {};
        handleClick: HandleEventInterface;
        styleList: ComputedRef<CSSProperties>;
    }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, Record<string, any>, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
        readonly icon?: unknown;
        readonly color?: unknown;
        readonly size?: unknown;
        readonly click?: unknown;
    } & {
        color: string;
        size: string | number;
        icon: VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>;
        click: HandleEventInterface;
    } & {}>, {
        color: string;
        size: string | number;
        icon: VNode<RendererNode, RendererElement, {
            [key: string]: any;
        }> | Component<any, any, any, ComputedOptions, MethodOptions>;
        click: HandleEventInterface;
    }>>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    readonly 'update:modelValue': (target: boolean) => boolean;
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
    readonly modelValue?: unknown;
    readonly size?: unknown;
    readonly type?: unknown;
    readonly iconOn?: unknown;
    readonly iconOff?: unknown;
    readonly onChange?: unknown;
} & {
    type: SwapType;
    size: string | number;
    onChange: SwapOnChangeInterface;
    modelValue: boolean;
    iconOn: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }> | Component<any, any, any, ComputedOptions, MethodOptions>;
    iconOff: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }> | Component<any, any, any, ComputedOptions, MethodOptions>;
} & {}> & {
    "onUpdate:modelValue"?: ((target: boolean) => any) | undefined;
}, {
    type: SwapType;
    size: string | number;
    onChange: SwapOnChangeInterface;
    modelValue: boolean;
    iconOn: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }> | Component<any, any, any, ComputedOptions, MethodOptions>;
    iconOff: VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }> | Component<any, any, any, ComputedOptions, MethodOptions>;
}>>;
export declare type SwapInstance = InstanceType<typeof Swap>;
export * from './src/interface.d';
export default Swap;
