import { JSONSchemaObject, JSONSchema } from './types';
export interface JSONSchemaVisitorContext {
    visitedSubschemaResultMap: WeakMap<JSONSchemaObject, any>;
    path: string;
}
export declare type JSONSchemaVisitor = (subSchema: any, context: JSONSchemaVisitorContext) => Promise<any> | any;
export declare function visitJSONSchema(schema: JSONSchema, { enter, leave, }: {
    enter?: JSONSchemaVisitor;
    leave?: JSONSchemaVisitor;
}, { visitedSubschemaResultMap, path }?: JSONSchemaVisitorContext): Promise<any>;
