import { ExtractPropTypes, PropType } from 'vue';
export type ValidatorResultTypeT = 'danger' | 'warning' | 'success';
export type TriggerT = 'change' | 'input' | 'blur' | 'focus' | `e-${string}`;
export type ValidatorResultT = {
    type: ValidatorResultTypeT;
    message?: string;
};
export type ValidatorT = (value: any) => ValidatorResultT | void;
export type ValidatorRuleT = {
    triggers?: TriggerT | TriggerT[];
    validator?: ValidatorT;
};
export type RequiredRuleT = {
    required: boolean;
    message?: string;
    triggers?: TriggerT | TriggerT[];
};
export type TypeRuleT = {
    type: 'string' | 'number' | 'boolean' | 'array' | 'object';
    message?: string;
    triggers?: TriggerT | TriggerT[];
};
export type RulesT = ValidatorRuleT | RequiredRuleT | TypeRuleT;
export type TriggerRulesT = {
    [x in TriggerT]?: ValidatorT[];
};
export type FieldResultT = {
    type: 'warning' | 'danger' | '';
    message: string[];
} | null;
export interface FiledInfoT {
    filed?: string;
    validate?: (trigger?: TriggerT) => Promise<FieldResultT>;
    clearValidate: () => void;
    resetFiled: () => void;
}
export declare const formProps: {
    /**
     * @zh-CN 表单数据对象
     * @en-US Form data object
     */
    model: {
        type: ObjectConstructor;
    };
    /**
     * @zh-CN 是否有必填项，用于控制文本左对齐样式
     * @en-US Whether there is a required item, used to control the text alignment style
     * @default false
     */
    hasRequired: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @zh-CN 表单布局方式
     * @en-US Form layout
     * @default 'h'
     */
    layout: {
        type: PropType<"h" | "v" | "inline">;
        default: string;
    };
    /**
     * @zh-CN 表单项的标签与控件的对其方式（全局）
     * @en-US The alignment of form item labels and controls (global)
     */
    labelAlign: {
        type: PropType<"top" | "center" | "bottom">;
    };
    /**
     * @zh-CN 表单项标签水平对齐方式（全局）
     * @en-US The horizontal alignment of form item labels (global)
     */
    labelJustify: {
        type: PropType<"left" | "center" | "right">;
    };
    /**
     * @zh-CN 表单项文本宽度（全局）
     * @en-US The width of form item labels (global)
     */
    labelWidth: {
        type: StringConstructor;
    };
};
export type FormPropsT = ExtractPropTypes<typeof formProps>;
export declare const formItemProps: {
    /**
     * @zh-CN model键名，在使用了 rules 属性时，此属性为必填项
     * @en-US model key name, when using the rules property, this property is required
     */
    field: {
        type: StringConstructor;
    };
    /**
     * @zh-CN 是否必选
     * @en-US Whether it is required
     * @default false
     */
    required: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * @zh-CN 表单项标签
     * @en-US Form item label
     */
    label: {
        type: StringConstructor;
        default: undefined;
    };
    /**
     * @zh-CN 表单项的标签与控件的对其方式
     * @en-US The alignment of form item labels and controls
     */
    labelAlign: {
        type: PropType<"top" | "center" | "bottom">;
    };
    /**
     * @zh-CN 表单项标签水平对齐方式
     * @en-US The horizontal alignment of form item labels
     */
    labelJustify: {
        type: PropType<"left" | "center" | "right">;
    };
    /**
     * @zh-CN 表单项文本宽度
     * @en-US The width of form item labels
     */
    labelWidth: {
        type: StringConstructor;
    };
    /**
     * @zh-CN 表单验证规则
     * @en-US Form validation rules
     */
    rules: {
        type: PropType<Array<RulesT>>;
    };
    /**
     * @zh-CN 表单验证的默认触发事件，手动校验未传参或提交前自动校验时的默认触发事件
     * @en-US The default trigger event for form validation, and the default trigger event when manual validation is performed without passing parameters or during automatic validation before submission.
     */
    defaultTrigger: {
        type: PropType<TriggerT>;
    };
};
export type FormItemPropsT = ExtractPropTypes<typeof formItemProps>;
