interface ErrorMap {
    name: string;
    errors: Array<string>;
}
interface ValidateConfig {
    name: string;
    validate: 'required' | 'email' | 'phone' | 'date' | string | Function | Array<Function>;
    error: Array<string>;
    result?: boolean;
    firstErrorIndex?: null | number;
}
export interface ValidateMapping {
    [key: string]: ValidateConfig;
}
interface ValidateFnMapping {
    [key: string]: ReturnType<typeof createCallValidateQueueFn>;
}
export interface Result {
    pass: boolean;
    msg: Array<ErrorMap>;
}
interface Data {
    [key: string]: any;
}
declare function register(ruleName: any, fn: any): void;
declare function createCallValidateQueueFn(validateQueue: Array<Function>): (val: any) => {
    pass: boolean;
    noPassRuleIndexs: number[];
};
declare function singleValidate(value: any, ruleKey: string): boolean;
export declare class Validator {
    validateMapping: null | ValidateMapping;
    validateFnMapping: null | ValidateFnMapping;
    data: null | Data;
    static register: typeof register;
    static singleValidate: typeof singleValidate;
    constructor(validateMapping: any, data: any);
    init(validateMapping: ValidateMapping): void;
    validate(): Result;
}
export {};
