import { PredicateCallback } from "./types"; export declare type TreeNode = { children?: TreeNode[]; }; /** find node that meet the condition specified in a callback function in tree */ export declare function findTreeNode(tree: T[], predicate: PredicateCallback): T | undefined; /** find node in tree by given key and value */ export declare function findTreeNode(tree: T[], key: keyof T, value: T[keyof T]): T | undefined; /** find node that meet the condition specified in a callback function in tree node */ export declare function findNode(node: T, predicate: PredicateCallback): T | undefined; /** find node in tree node by given key and value */ export declare function findNode(node: T, key: keyof T, value: T[keyof T]): T | undefined; /** remove fisrt node that meet the condition specified in a callback function in tree */ export declare function removeTreeNode(tree: T[], predicate: PredicateCallback): T | undefined; /** remove first node in tree by given key and value */ export declare function removeTreeNode(tree: T[], key: keyof T, value: T[keyof T]): T | undefined; export declare function useTreeNode(node: T, effect: (node: T) => void): void;