interface INode> { children?: T[]; [key: string]: any; } export declare function findNode>(tree: T[], func: (node: T) => boolean): T | undefined; export declare function findDeepNode>(tree: T[] | undefined, func: (node: T) => boolean): T | undefined; export declare function filterNode>(tree: T[] | undefined, func: (node: T) => boolean, childrenFieldName?: string): T[] | undefined; export declare function forEachNode>(tree: T[] | undefined, func: (node: T) => void): void; export declare function findPath>(tree: T[], func: (node: T) => boolean, childrenFieldName?: string): T[] | undefined; export declare function findAssignChildrenPath>(tree: T[], childrenName: string[], func: (node: T) => any): T[] | undefined; export declare function forEachAssignChildren>(tree: T[], childrenName: string[], func: (node: T) => any): void; export declare function filterAssignChildren>(tree: T[], childrenName: string[], func: (node: T) => any): any[]; export declare function deepTraversal>({ tree, callback, level, childrenFieldName, parent, }: { tree: T[]; callback: (node: T, level: number, parent?: T) => void; childrenFieldName: string; level?: number; parent?: T; }): void; export {};