import { NodeGroupTypeEnums } from '../../enums/unitySystemEnums';
export declare const makeTreeStructure: (treeData: any, key: any, parentKey: any, parentGroupKey?: string) => any;
export declare const makeTreeStaticGroupStructure: (treeData: any, key: any, parentKey: any, groupType: NodeGroupTypeEnums, hideEmptyGroups: any) => any;
export declare const makeDynamicGroupStructures: (treeStructure: any, results: any) => any[];
export declare const makeDynamicTreeStructure: (treeData: any, key: any, parentKey: any) => any;
export declare const getIconFromName: (name: any) => any;
export declare const findLastNode: (tree: any) => any;
export declare const searchTree: (tree: any, id: any) => any;
export declare const deleteNode: (treeData: any, nodeId: any) => any[];
export declare const deleteNodeAndChildren: (treeData: any, nodeId: any) => any[];
export declare const getAllChildrenNodesToDelete: (treeData: any, nodeId: any, nodeIdsToDelete: any) => void;
export declare const processCatalogObjectKeysInOrder: (tree: any, keys: any) => void;
export declare const processOrderedTreeData: (tree: any, treeData: any) => void;
// treeData is ordered by heirarchy
export declare const processObjectToTree: (result: any, treeData: any, objectReferenceKeys: any, treeList: any, catalogObjects: any, promotedEntities: any, wasLazyLoaded: any) => void;
/*
  example parameters:
    objectReferenceKeys : ["customers", "customerAccounts", "usagePoints"]
*/
export declare const processReferences: (reference: any, objectReferenceKeys: any, treeData: any, index: any, treeList: any, parentId: any, catalogObjects: any, promotedEntities: any, wasLazyLoaded: any) => void;
// Updates current node object properties with data it needs to be rendered
export declare const processObjIndex: (node: any, obj: any, index: any, parentId: any, catalogObjects: any, promotedEntities: any, wasLazyLoaded: any) => void;
export declare const getLazyLoadChildrenArr: (node: any, catalogObjects: any, promotedEntities: any) => any[];
// For a given searchMethod (one entry of a parent's lazyLoadChildrenArr),
// determine which PK column of the child entity *varies* across siblings
// under the same parent. Used to build IN / NOT IN filters that target only
// the varying component of a composite key (bridge entities) without
// cross-pollution from non-fixed PK columns.
export declare const getVaryingChildKey: (searchMethod: any, catalogObjects: any) => string;
// Walks a parent node's children and groups varying-PK values by entity type.
// Output shape: `{ [entityType]: string[] }`. Feeds into inclusionFilter /
// exclusionFilter array for fetchLazyChildren.
export declare const collectChildVaryingKeysByType: (parentNode: any, catalogObjects: any, childrenOverride?: any) => {};
// Convert keys-by-type map to inclusionFilter / exclusionFilter array shape
// consumed by fetchLazyChildren.
export declare const keysByTypeToFilterArray: (keysByType: any) => {
    entityType: string;
    keys: unknown;
}[];
// Fires a count-only fetch per searchMethod in the parent's lazyLoadChildrenArr
// using parent-context filters only (no IN/NOT IN). Used to detect new entries
// under parent scope after a refresh — drives `hasMoreChildren`.
export declare const fetchCountsByType: (parentNode: any, executeQueryAdHoc: any) => Promise<{}>;
// Build a filterElements array for a search method by adding the existing
// parent-context filters with optional inclusion (IN) and/or exclusion
// (NOT IN) clauses on the varying child key. Used by:
//   - refresh path: includeKeys = preTree children's varying-key values
//     → guarantees same set returns regardless of backend ordering
//   - Show More: excludeKeys = already-seen children's varying-key values
//     → fetches only entries the user hasn't seen yet
//
// If neither include nor exclude is provided, returns the base filters
// untouched. If the varying key cannot be derived, returns base filters
// (caller should fall back to default pagination behavior).
export declare const getFilters: (searchMethod: any, catalogObjects: any, { includeKeys, excludeKeys }?: {
    excludeKeys?: any;
    includeKeys?: any;
}) => any;
export declare const formatTreeMenuItem: (responseObject: any, treeStructure: any, catalogObjects: any, promotedEntities: any, associatedInquiryTree: any, wasLazyLoaded: any) => any;
// Handles lazy-loading for children that live behind a bridge/join table.
export declare const fetchManyToManyChildren: ({ searchMethod, treeStructure, pageNumber, wasLazyLoaded, executeQueryAdHoc, catalogObjects, promotedEntities }: {
    catalogObjects: any;
    executeQueryAdHoc: any;
    pageNumber: any;
    promotedEntities: any;
    searchMethod: any;
    treeStructure: any;
    wasLazyLoaded: any;
}) => Promise<{
    nodes: any;
    hasMore: boolean;
}>;
export declare const fetchLazyChildren: ({ node, treeStructureArr, executeQueryAdHoc, catalogObjects, promotedEntities, pageNumber, pageSizeOverride, filterByBusinessObjectKey, targetEntityType, inclusionFilter, exclusionFilter, }: {
    catalogObjects: any;
    exclusionFilter?: any;
    executeQueryAdHoc: any;
    filterByBusinessObjectKey?: any;
    inclusionFilter?: any;
    node: any;
    pageNumber?: number;
    pageSizeOverride?: any;
    promotedEntities: any;
    targetEntityType?: any;
    treeStructureArr: any;
}) => Promise<{
    children: any[];
    hasMoreChildren: boolean;
    errorRetrievingChildren: boolean;
    currentChildPage: number;
    updatedNodeObj: any;
}>;
// When cachedOnly is true, skips lazy-loaded nodes whose children haven't been fetched yet
export declare const expandAllNodes: (tree: any, cachedOnly?: boolean) => void;
export declare const collapseAllNodes: (tree: any) => void;
export declare const findAllParentIds: (menuItems: any, currentParentNode: any, allParentIds?: any[]) => any[];
export declare const formatTreeLabel: (label: any, obj: any) => any;
export declare const getDisplayName: (node: any, obj: any) => any;
export declare const getDisplayDetails: (node: any, obj: any) => any;
export declare const getHeaderTitle: (node: any, obj: any) => any;
export declare const getNodeIdForRightBorder: (expandedNodeIds: any, node: any, parentId: any) => any;
export declare const findNodeById: (tree: any, id: any) => any;
export declare const findNodeByBusinessObjectKey: (tree: any, businessObjectKey: any, parent?: any, childIndex?: number) => any;
export declare const findNodeByBusinessObjectKeyInMenuList: (menuList: any, businessObjectKey: any) => any;
export declare const findNodeByIdAndLabel: (tree: any, id: any, label: any) => any;
export declare const findNodesByIdAndLabel: (tree: any, id: any, label: any) => any[];
export declare const processItemForStaticNodeGroup: (nodeGroup: any, item: any, groupedItemIndexes: any, displayTree: any, index: any, scopedGroupItemIndexes: Set<unknown>, treeList: any, nodeChildren?: any[]) => {
    itemAdded: any;
    nodeChildren: any[];
};
export declare const constructStaticNodeGroups: (tree: any, shouldUseNewId?: boolean) => any[];
export declare const getOrderedDynamicGroups: (tree: any, shouldUseNewId?: boolean) => any[];
export declare const constructDynamicNodeGroups: (results: any, tree: any, shouldUseNewId?: boolean) => any[];
export declare const constructBusinessObjectArrFromTree: (node: any, businessObjects?: any[]) => any[];
export declare const processItemForDynamicNodeGroups: (displayTree: any, node: any, groupNodes: any, previousFilteredGroups?: any[], isSingleGroup?: boolean) => void;
export declare const updateTreeIds: (node: any, lastEntityNodeId: any, newId?: any, newParentId?: any, parentGroupName?: any) => void;
export declare const mapNodeGroupChildren: (nodeGroup: any, nodeGroupChildren?: any[]) => any;
export declare const checkNodeIsHidden: (node: any, item: any, wasLazyLoaded?: boolean) => boolean;
export declare const constructPreloadedTree: (treeStructure: any, pageList: any, catalogObjects: any) => any[];
export declare const constructDynamicNodeGroups2: (results: any, configNode: any, parentId?: any) => any[];
// End of Dynamic Group functions
// SF - 20230531
export declare const transformMenuPageTree: (node: any) => {
    id: any;
    parentId: any;
    isExpanded: boolean;
    properties: {
        defaultIcon: {
            type: string;
            name: any;
            color: string;
        };
        nodeLabel: any;
        nodeSubLabel: string;
        // carry through optional item count into node properties
        itemCount: any;
        page: {
            id: any;
            entity: {
                entityName: any;
            };
            pbiReportCode: any;
            udpTagId: any;
            queryId: any;
            inquiryTreeId: any;
            requiredFieldMapping: any;
        };
        aggregateThresholdId: any;
    };
    children: any[];
};
export declare const mapNodeObjValuesToSearchParameters: (nodeObj: any, aggregateThresholdParamMappings: any) => any;
export declare const getSearchValueString: (nodeObj: any, searchIdentifier: any) => string;
//# sourceMappingURL=TreeUtilities.d.ts.map