import 'reflect-metadata';
import { AbstractValidator } from './abstract.validator';
/**
 * 参数校验器
 */
export declare class Validate {
    static validMetadataKeyMap: Map<any, [symbol, number, string | undefined][] | undefined>;
    static classMap: Map<string, any>;
    private static getTargetMetaDataMapKey;
    static putMetadataKey(target: any, metadataKey: symbol, type: number, field?: string): void;
    static getMetadataInfo(target: any): [symbol, number, string | undefined][] | undefined;
    static mergeMetadataField(target: any, keys: string[]): void;
    static validateDTO(target: any, data: any): void;
    static validateProperty(target: any, data: any, dataLength: number, propertyName: string, propertyKey: string, dataIsArray: boolean): void;
}
/** 参数或字段校验（注意：对象字段校验暂不支持继承） */
export declare function validate(target: any, propertyName?: string, descriptor?: TypedPropertyDescriptor<Function>): any;
export declare class MethodValidateDecorator {
    static getValidatorDecorator(metadataKey: symbol, abstractValidator: AbstractValidator): (target: any, propertyKey: string | symbol, parameterIndex?: number) => void;
}
/**
 * 参数校验条件 (是否需要校验其它参数)
 * @param callBack 检测回调函数，返回 true 时继续执行校验
 * @returns
 */
export declare function validateif(callBack?: (v: any) => boolean): (target: any) => void;
