export interface TreeIteratorOptions { readonly delay?: number | undefined; readonly loop?: boolean | undefined; } export type NextOptions = Pick; type GetNextOptions = Pick; export interface TreeIterator { readonly next: (options?: NextOptions) => void; readonly back: (options?: NextOptions) => void; readonly getNext: (options?: GetNextOptions) => StopNode | undefined; readonly getBack: (options?: GetNextOptions) => StopNode | undefined; readonly isCanNext: (options?: GetNextOptions) => boolean; readonly isCanBack: (options?: GetNextOptions) => boolean; readonly isPending: boolean; /** Cancel the delayed switch. */ readonly cancel: VoidFunction; } export interface TreeScope { readonly getCurrentNode: () => Node | undefined; readonly childrenProp: keyof Node; readonly parentProp: keyof Node; readonly stop: ((node: Node) => node is StopNode) | ((node: Node) => boolean); } export declare function getTreeIterator(scope: TreeScope, onSwitch: (nextNode: StopNode) => unknown, options?: TreeIteratorOptions): TreeIterator; export {};