import type { Visitor } from "../lib/traverser.js"; import type { SchemaValue } from "./schema.js"; import type { Path } from "./path.js"; export type SchemaValueTraverserContextType = "root" | "array" | "record"; export interface AbstractSchemaValueTraverserContext { type: T; path: Path; } export interface RootSchemaValueTraverserContext extends AbstractSchemaValueTraverserContext<"root"> { } export interface ArraySchemaValueTraverserContext extends AbstractSchemaValueTraverserContext<"array"> { index: number; } export interface RecordSchemaValueTraverserContext extends AbstractSchemaValueTraverserContext<"record"> { key: string; } export type SchemaValueTraverserContext = RootSchemaValueTraverserContext | ArraySchemaValueTraverserContext | RecordSchemaValueTraverserContext; export type SchemaValueVisitor = Visitor; export declare function traverseSchemaValue(value: SchemaValue, visitor: SchemaValueVisitor, ctx?: SchemaValueTraverserContext): Generator;