import * as Ajv from "ajv"; import { ValidateFunction } from "ajv"; import { IField } from "../interfaces"; import { JsonSchemaReader } from "./JsonSchemaReader"; export declare class JsonValidator { ajv: Ajv.Ajv; protected cache: Array<[Function, ValidateFunction]>; protected readonly schemaReader: JsonSchemaReader; /** * Valid object based on definition. * * @param definition Class definition * @param source Json object data */ validateClass(definition: Function, source: T): T; /** * Validate a field. * * @param field Field * @param source Value */ validateField(field: IField, source: T): T; /** * Find/Create validate function based on class definition. * * @param definition Class definition * @return Validate function */ getValidationFunction(definition: Function): ValidateFunction; }