import 'reflect-metadata';
import { JsonSchemaDefinition } from '../utils/index';
import { ValidationDefinition } from './ValidationDefinition';
import { ValidatorBase } from './ValidatorBase';
export declare class Validation {
    private static definitions;
    private static validators;
    static registerValidator(validator: ValidatorBase): Validation;
    static registerValidator(name: string, validator: ValidatorBase): Validation;
    static registerDefinition(name: string, definition: ValidationDefinition): Validation;
    private static jsonDefine;
    static define(name?: string, json?: JsonSchemaDefinition): ValidationDefinition;
    private static nestedValidatorDefine;
    static validate(target: any): Promise<boolean>;
    static validate(target: any, ...validators: ValidatorBase[]): Promise<boolean>;
    static validate(target: any, definitionName: string): Promise<boolean>;
    static validate(target: any, definition: ValidationDefinition): Promise<boolean>;
}
