import { ReactNode } from "react";
export interface FormInstance {
    validateFields(name?: string | string[]): Promise<void>;
    setFieldsValue(values: any): void;
    getFieldsValue<V>(): V;
    getErrors(name?: string | string[]): FormValidError[];
    setErrors(errors: FormValidError[]): void;
    getValues<V>(name?: string | string[]): V;
    setValues(values: any): void;
    validate<V>(name?: string | string[]): Promise<V>;
    reset(): void;
}
export declare type FormLabelAlign = "left" | "center" | "right";
export declare type FormControlAlign = "left" | "center" | "right";
export declare type FormFeedbackAlign = "left" | "center" | "right";
export declare type FormFeedbackStatus = "valid" | "warning" | "invalid";
export declare type FormValidateTrigger = "onBlur" | "onChange" | "onSubmit";
export declare type FormValidateStatus = FormFeedbackStatus;
export interface FormValidError {
    name?: string;
    errors: ReactNode[];
}
export declare type FormRuleMessage = string | ((value: any, rule: FormRule) => string);
export declare type FormRuleValidator = (value: any, rule: FormRule) => boolean | string | Error | Promise<boolean | string | Error>;
export declare type FiledRuleFormatter = (value: any, rule: FormRule) => string;
export interface FormRule {
    pattern?: RegExp;
    trigger?: FormValidateTrigger;
    message?: FormRuleMessage;
    required?: boolean;
    validator?: FormRuleValidator;
    formatter?: FiledRuleFormatter;
}
export interface FormController<V> {
    name?: string;
    value?: V;
    validateStatus?: FormValidateStatus;
    onChange?(value: V): void;
    onBlur?(value: V): void;
}
export interface FormItemInstance {
    readonly name?: string;
    getValue(): any;
    setValue(value: any): void;
    validate(rules?: FormRule[]): Promise<void>;
}
