import type { RendererNode, RendererElement, ComputedOptions, MethodOptions, PropType,  ExtractPropTypes,  VNode,  Component } from 'vue';
import type { SwapType, SwapOnChangeInterface } from './interface';
export declare const Props: {
    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;
    };
};
export declare const Emits: {
    readonly 'update:modelValue': (target: boolean) => boolean;
};
export declare type SwapPropsType = ExtractPropTypes<typeof Props>;
