import { IValidationError } from './IValidationError';
import { IClassRef } from '../../api/IClassRef';
import { IEntityRef } from '../../api/IEntityRef';
import { IValidatorEntry } from './IValidatorEntry';
export type validate_function = (instance: any, ref?: IClassRef | IEntityRef) => Promise<IValidationError[]>;
export type validate_info_function = (ref?: Function | IClassRef | IEntityRef) => Promise<IValidatorEntry[]>;
/**
 * Abstraction for defualt validator functions
 */
export declare class Validator {
    private static fn;
    private static info;
    static add(fn: validate_function, fnInfo: validate_info_function): void;
    static reset(): void;
    static getValidationEntries(fn: Function | IClassRef | IEntityRef): Promise<any[]>;
    static validate(instance: any, ref?: IClassRef | IEntityRef): Promise<IValidationError[]>;
}
