/**
 * Copyright (c) OpenLens Maintainers. All rights reserved.
 * Licensed under MIT License. See LICENSE in root directory for more information.
 */
export interface Composite<T> {
    id: string;
    parentId: string | undefined;
    value: T;
    children: Composite<T>[];
}
interface Configuration<T> {
    rootId?: string;
    getId: (thing: T) => string;
    getParentId: (thing: T) => string | undefined;
    transformChildren?: (things: T[]) => T[];
    handleMissingParentIds?: (parentIdsForHandling: ParentIdsForHandling) => void;
}
export declare const getCompositeFor: <T>({ rootId, getId, getParentId, transformChildren, handleMissingParentIds, }: Configuration<T>) => (source: T[]) => Composite<T>;
interface ParentIdsForHandling {
    missingParentIds: string[];
    availableParentIds: string[];
}
export {};
