import type { deepEqual } from '@veno-ui/utils';
import type { Size } from '../../composables/size';
import type { DefineComponent, PropType, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes } from 'vue';
export declare type Switch = InstanceType<typeof Switch>;
export declare const Switch: DefineComponent<{
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    theme: StringConstructor;
    color: {
        type: PropType<string>;
        default: string;
    };
    disabled: BooleanConstructor;
    error: BooleanConstructor;
    id: StringConstructor;
    inline: BooleanConstructor;
    label: StringConstructor;
    falseIcon: StringConstructor;
    trueIcon: StringConstructor;
    multiple: {
        type: PropType<boolean | null>;
        default: null;
    };
    name: StringConstructor;
    readonly: BooleanConstructor;
    trueValue: null;
    falseValue: null;
    modelValue: null;
    type: {
        type: PropType<string>;
        default: string;
    };
    value: null;
    valueComparator: {
        type: PropType<typeof deepEqual>;
        default: typeof deepEqual;
    };
}, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    'update:modelValue': (_modelValue: any) => true;
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    theme: StringConstructor;
    color: {
        type: PropType<string>;
        default: string;
    };
    disabled: BooleanConstructor;
    error: BooleanConstructor;
    id: StringConstructor;
    inline: BooleanConstructor;
    label: StringConstructor;
    falseIcon: StringConstructor;
    trueIcon: StringConstructor;
    multiple: {
        type: PropType<boolean | null>;
        default: null;
    };
    name: StringConstructor;
    readonly: BooleanConstructor;
    trueValue: null;
    falseValue: null;
    modelValue: null;
    type: {
        type: PropType<string>;
        default: string;
    };
    value: null;
    valueComparator: {
        type: PropType<typeof deepEqual>;
        default: typeof deepEqual;
    };
}>> & {
    "onUpdate:modelValue"?: ((_modelValue: any) => any) | undefined;
}, {
    type: string;
    error: boolean;
    disabled: boolean;
    color: string;
    size: Size | undefined;
    density: "medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined;
    inline: boolean;
    multiple: boolean | null;
    readonly: boolean;
    valueComparator: typeof deepEqual;
}>;
//# sourceMappingURL=switch.d.ts.map