import type { JSONSchema } from "@apidevtools/json-schema-ref-parser/dist/lib/types"; import type { ParserOptions } from "@apidevtools/json-schema-ref-parser/dist/lib/options"; export type InputSchema = JSONSchema; export type ProcessorFunction = (schema: T) => void; export type ProcessorFunctionInternal = (schema: ISubSchema, keyword: string | number) => void; export type IVocabulary = Record; export type ISubSchema = Record; export interface Options { cloneSchema?: boolean; dereference?: boolean; dereferenceOptions?: ParserOptions | undefined; } export interface OptionsSync { cloneSchema?: boolean; } export declare class Walker { rootSchema: T; vocabulary: IVocabulary; vocabularies: Record; walker: ProcessorFunction; constructor(); loadSchema: (schema: T, options?: Options) => Promise; loadSchemaSync: (schema: T, options?: OptionsSync) => void; walk: (processor: ProcessorFunction, vocabulary: IVocabulary) => Promise; walkSync: (processor: ProcessorFunction, vocabulary: IVocabulary) => void; private cleanupVisited; private isValidSubSchema; private applyUserProcessor; private subschemaWalk; private processSchemaKey; private processObjectOfSchemas; private processArrayOfSchemas; private processSingleOrArrayOfSchemas; private processSingleSchema; /** * Loop over the links and apply the callbacks, while * handling LDO keyword deletions by catching NEXT_LDO_KEYWORD. */ private getProcessLinks; private initVocabulary; }