import { GenericComplexEntity, GenericEntity } from './Entities'; export declare const enum TraverseOrder { PREORDER = 1, POSTORDER = -1 } export type TraverseOptions = { readonly order: TraverseOrder; readonly recurse: (node: GenericComplexEntity) => boolean; }; export type TraverseState = TraverseOptions & { path: { node: GenericComplexEntity; next: number; }[]; current?: GenericEntity; }; export declare function traverseInit(entity: GenericComplexEntity, options: TraverseOptions): TraverseState; export declare function traverseStep(state: TraverseState): void; export declare function traverseUntil(traverse: TraverseState, predicate: (entity: GenericEntity) => boolean): void;