import { types as t } from "@marko/compiler"; export declare const skip: unique symbol; type VisitValue = null | void | t.Node | t.Node[]; type VisitKeys = (string | number) & (T extends T ? { [K in keyof T]: T[K] extends VisitValue ? K : never; }[keyof T] : never); export declare function traverseReplace, S>(container: T, key: K, enter: (node: t.Node, state?: S) => t.Node | void, state?: S): void; export declare function traverseContains(node: undefined | null | t.Node | t.Node[], check: (node: t.Node) => void | boolean | typeof skip): boolean; export declare function traverse(visit: (node: t.Node, parent?: t.Node, grandParent?: t.Node) => void | typeof skip, node: undefined | t.Node | t.Node[], parent?: t.Node, grandParent?: t.Node): void; export {};