import { Observable } from 'rxjs';
import { ValidationResult } from './ValidationResult';
export interface ValidationSchema {
    [property: string]: {
        [validator: string]: any;
    };
}
export declare class Validator {
    protected _schema: ValidationSchema;
    protected _compiledJoiSchema: any;
    protected _compiledCustomSchema: any;
    constructor(schema?: ValidationSchema);
    protected _compile(): void;
    protected _validateJoi(data: {
        [property: string]: any;
    }): Observable<ValidationResult>;
    protected _validateCustom(data: {
        [property: string]: any;
    }): Observable<ValidationResult>;
    validate(data: {
        [property: string]: any;
    }): Observable<ValidationResult>;
    static create(schema?: ValidationSchema): Validator;
}
