export type VisitResult = { recurse?: boolean; newValue: T; }; export type Visitor = { enter?(object: T, key: string | undefined): VisitResult; leave?(object: T, key: string | undefined): T; }; export declare function visitObject(node: T, visitor: Visitor): T;