import AbstractValidator from "./AbstractValidator";
import { ValidatorResult } from "./ValidatorResult";
import { Schema } from "ajv";
/**
 * Validate data by a JSON schema
 *
 * @example
 * ```
 * const validator = new JsonSchemaValidator({
 *   type: "object",
 *   properties: {
 *     foo: {type: "integer"},
 *     bar: {type: "string"}
 *   },
 *   required: ["foo"],
 *   additionalProperties: false
 * });
 *
 * const validatorResult = validator.validate({foo: "3"}, bar: "bar"}); // error
 * ```
 *
 */
declare class JsonSchemaValidator extends AbstractValidator {
    private readonly schema;
    /**
     * Create a JsonSchemaValidator
     *
     * @param schema
     */
    constructor(schema: Schema);
    /**
     * Validate data
     *
     * @param data - the data to validate
     */
    validate(data: unknown): ValidatorResult;
}
export default JsonSchemaValidator;
