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) => SN | undefined; readonly getBack: (options?: GetNextOptions) => SN | 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: () => N | undefined; readonly childrenProp: keyof N; readonly parentProp: keyof N; readonly stop: ((node: N) => node is SN) | ((node: N) => boolean); } export declare function getTreeIterator(scope: TreeScope, onSwitch: (nextNode: SN) => unknown, options?: TreeIteratorOptions): TreeIterator; export {};