import { IATreeItem } from '../AComponents/ATree/ATree';
import { TIdx } from '../AComponents/ATypes/ATypes';
declare function find<T extends IATreeItem<T>>(items: T[] | T, predicate: (item: T, idx?: TIdx) => any): T | undefined;
declare function forEach<T extends IATreeItem<T>>(items: T[] | T, callback: (item: T, idx?: TIdx) => void): void;
declare function map<T extends IATreeItem<T>, R>(items: T[] | T, callback: (item: T, idx?: TIdx) => R): R[];
declare function every<T extends IATreeItem<T>>(items: T[] | T, predicate: (item: T, idx?: TIdx) => boolean): boolean;
declare function filter<T extends IATreeItem<T>>(items: T[] | T, predicate: (item: T, idx?: TIdx) => boolean): T[];
declare function length<T extends IATreeItem<T>>(items: T[] | T): number;
declare function replace<T extends IATreeItem<T>>(items: T[] | T, srcItem: T, dstItem: T, isEqual: (a: T, b: T) => boolean): T[] | null;
/**
 * descendants
 *
 * Description : returns all descendants of srcItems (including srcItems)
 */
declare function descendants<T extends IATreeItem<T>>(_entireItems: T[] | T, srcItems: T[], isEqual: (a: T, b: T) => boolean): T[];
/**
 * ancestors
 *
 * Description : returns all ancestors of srcItems (including srcItems)
 */
declare function ancestors<T extends IATreeItem<T>>(entireItems: T[] | T, srcItems: T[], isEqual: (a: T, b: T) => boolean): T[];
/**
 * treeF : tree functions
 */
export declare const treeF: {
    find: typeof find;
    forEach: typeof forEach;
    map: typeof map;
    every: typeof every;
    filter: typeof filter;
    length: typeof length;
    replace: typeof replace;
    descendants: typeof descendants;
    ancestors: typeof ancestors;
};
export {};
