import type { JSONPointer } from '@criteria/json-pointer'; import { JSONSchemaDraft04, JSONSchemaDraft06, JSONSchemaDraft2020_12, SchemaIndex } from '@criteria/json-schema'; import { BoundValidatorWithAnnotationResults } from './BoundValidator'; import { OutputFormat } from './Output'; import { BoundValidatorForSchema } from './validatorBinder'; export type JSONSchemaKeyword = keyof JSONSchemaDraft04 | keyof JSONSchemaDraft06 | keyof JSONSchemaDraft2020_12; export type ValidatorContext = { outputFormat: OutputFormat; failFast: boolean; validatorForSchema: BoundValidatorForSchema; index: SchemaIndex; }; export type JSONSchemaKeywordValidator = (schema: object | boolean, schemaPath: JSONPointer[], context: ValidatorContext) => BoundValidatorWithAnnotationResults; export type JSONSchemaKeywordValidators = { [Keyword in JSONSchemaKeyword]: JSONSchemaKeywordValidator; }; export type KeywordValidatorsForMetaSchemaID = (metaSchemaID: string) => JSONSchemaKeywordValidators; export declare function keywordValidatorsForMetaSchemaIDFactory({ assertFormat, retrieve }: { assertFormat: boolean; retrieve: (uri: string) => { $vocabulary?: { [uri: string]: boolean; }; }; }): KeywordValidatorsForMetaSchemaID;