import type { FormField } from '../../composables/form';
import type { Size } from '../../composables/size';
import type { DefineComponent, Ref, ComputedRef, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
export declare type FormItemProps = {
    [key: string]: any;
    $type?: 'input' | 'textarea' | 'select' | 'switch' | 'date-picker' | 'checkbox' | 'radio';
};
export declare type InternalFormItemProps = {
    type?: FormItemProps['$type'];
    props?: Record<string, any>;
};
export declare const Form: DefineComponent<{
    color: StringConstructor;
    textColor: StringConstructor;
    variant: {
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean; /**
         * @zh 隐藏详情
         */
    };
    disabled: BooleanConstructor;
    fastFail: BooleanConstructor;
    lazyValidation: BooleanConstructor;
    readonly: BooleanConstructor;
    valid: {
        type: PropType<boolean | null>;
        default: null;
    };
    modelValue: PropType<Record<string, any>>;
    defaultValue: PropType<Record<string, any>>;
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    /**
     * @zh 布局方向
     */
    direction: {
        type: PropType<"vertical" | "horizontal">;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @zh 隐藏详情
     */
    hideDetails: PropType<boolean | "auto">;
    /**
     * @zh 内联
     */
    inline: BooleanConstructor;
    /**
     * @zh 数据驱动的表单列表项
     */
    items: PropType<FormItemProps[]>;
    /**
     * @zh 标签宽度
     */
    labelWidth: (StringConstructor | NumberConstructor)[];
}, {
    errorMessages: Ref<{
        id: string | number;
        errorMessages: string[];
    }[]>;
    isDisabled: ComputedRef<boolean>;
    isReadonly: ComputedRef<boolean>;
    isValidating: Ref<boolean>;
    items: Map<string | number, FormField>;
    submit: (e: Event) => Promise<void>;
    reset: (e: Event) => Promise<void>;
    resetValidation: () => Promise<void>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    'update:valid': (_valid: boolean | null) => true;
    'update:modelValue': (_modelValue: Record<string, any>) => true;
    resetValidation: () => true;
    reset: (_event: Event) => true;
    submit: (_value: Record<string, any>, _event: Event) => true;
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    color: StringConstructor;
    textColor: StringConstructor;
    variant: {
        type: PropType<"text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined">;
        default: string;
        validator: (v: any) => boolean; /**
         * @zh 隐藏详情
         */
    };
    disabled: BooleanConstructor;
    fastFail: BooleanConstructor;
    lazyValidation: BooleanConstructor;
    readonly: BooleanConstructor;
    valid: {
        type: PropType<boolean | null>;
        default: null;
    };
    modelValue: PropType<Record<string, any>>;
    defaultValue: PropType<Record<string, any>>;
    density: {
        type: PropType<"medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined>;
        default: string;
        validator: (v: any) => boolean;
    };
    size: {
        type: PropType<Size | undefined>;
        default: string;
    };
    /**
     * @zh 布局方向
     */
    direction: {
        type: PropType<"vertical" | "horizontal">;
        default: string;
        validator: (v: any) => boolean;
    };
    /**
     * @zh 隐藏详情
     */
    hideDetails: PropType<boolean | "auto">;
    /**
     * @zh 内联
     */
    inline: BooleanConstructor;
    /**
     * @zh 数据驱动的表单列表项
     */
    items: PropType<FormItemProps[]>;
    /**
     * @zh 标签宽度
     */
    labelWidth: (StringConstructor | NumberConstructor)[];
}>> & {
    "onUpdate:modelValue"?: ((_modelValue: Record<string, any>) => any) | undefined;
    onReset?: ((_event: Event) => any) | undefined;
    "onUpdate:valid"?: ((_valid: boolean | null) => any) | undefined;
    onResetValidation?: (() => any) | undefined;
    onSubmit?: ((_value: Record<string, any>, _event: Event) => any) | undefined;
}, {
    disabled: boolean;
    variant: "text" | "contained" | "outlined" | "plain" | "contained-text" | "contained-outlined";
    size: Size | undefined;
    density: "medium" | "ultra-low" | "low" | "high" | "ultra-high" | undefined;
    inline: boolean;
    readonly: boolean;
    fastFail: boolean;
    lazyValidation: boolean;
    valid: boolean | null;
    direction: "vertical" | "horizontal";
}>;
export declare type Form = InstanceType<typeof Form>;
//# sourceMappingURL=form.d.ts.map