interface TreeHelperConfig {
    id: string;
    children: string;
    pid: string;
}
declare interface Fn<T = any, R = T> {
    (...arg: T[]): R;
}
export declare function listToTree<T = any>(list: any[], config?: Partial<TreeHelperConfig>): T[];
export declare function treeToList<T = any>(tree: any, config?: Partial<TreeHelperConfig>, clearParentChildren?: boolean): T;
export declare function findNode<T = any>(tree: any, func: Fn, config?: Partial<TreeHelperConfig>): T | null;
export declare function findNodeAll<T = any>(tree: any, func: Fn, config?: Partial<TreeHelperConfig>): T[];
export declare function findPath<T = any>(tree: any, func: Fn, config?: Partial<TreeHelperConfig>): T | T[] | null;
export declare function findPathAll(tree: any, func: Fn, config?: Partial<TreeHelperConfig>): any[];
export declare function filter<T = any>(tree: T[], func: (n: T) => boolean | string, config?: Partial<TreeHelperConfig>): T[];
export declare function forEach<T = any>(tree: T[], func: (n: T) => any, config?: Partial<TreeHelperConfig>): void;
/**
 * @description: Extract tree specified structure
 */
export declare function treeMap<T = any>(treeData: T[], opt: {
    children?: string;
    conversion: Fn;
}): T[];
/**
 * @description: Extract tree specified structure
 */
export declare function treeMapEach(data: any, { children, conversion }: {
    children?: string;
    conversion: Fn;
}): any;
export declare function findChildrens<T = any>(tree: T[], childrenId: string | number, func: (n: T) => boolean | string, config?: Partial<TreeHelperConfig>): T[];
export declare function findParents<T = any>(tree: T[], parentId: string | number, func: (n: T) => boolean | string, config?: Partial<TreeHelperConfig>): T[];
export {};
