import type { JSONPointer } from '@criteria/json-pointer'; import { SchemaIndex } from '@criteria/json-schema'; import { BoundValidator, BoundValidatorWithAnnotationResults } from './BoundValidator'; import { OutputFormat } from './Output'; import { JSONSchemaKeyword, JSONSchemaKeywordValidator, ValidatorContext } from './keywordValidators'; export type BoundValidatorForSchema = (schema: object | boolean, schemaPath: JSONPointer[]) => BoundValidator; export type BoundValidatorForSchemaKeyword = (schema: object | boolean, schemaPath: JSONPointer[], schemaKeyword: JSONSchemaKeyword, vocabularyValidator: JSONSchemaKeywordValidator) => BoundValidatorWithAnnotationResults | null; export declare function validatorBinder(index: SchemaIndex, { outputFormat, failFast, validatorsForMetaSchemaID }: { outputFormat: OutputFormat; failFast: boolean; validatorsForMetaSchemaID: (uri: string) => { [Keyword in JSONSchemaKeyword]: JSONSchemaKeywordValidator; }; }): BoundValidatorForSchema; export declare function boundValidatorForSchemaKeyword(schema: object, schemaPath: JSONPointer[], schemaKeyword: JSONSchemaKeyword, vocabularyValidator: JSONSchemaKeywordValidator, context: ValidatorContext): BoundValidatorWithAnnotationResults;