import { ComponentPayload } from '../classes/componentpayload'; import { Id } from '../classes/id'; import { ListOfIds } from '../classes/listofids'; import { ProjectFileService } from '../classes/projectfileservice'; import { ToolsCoreFacade } from '../facades/roomle-core-hsc-facade'; /** * Crawls through the dependencies of component payloads and collects all unique component and item IDs. * @param projectFileService source of the data to analyze * @param startingPayloadOrComponentId starting point for the analysis, use the main component of the project * @param toolsCoreFacade If provided, the component payloads will be analyzed with Roomle Core HSC. */ export declare function collectComponentDependencies(projectFileService: ProjectFileService, startingPayloadOrComponentId: ComponentPayload | Id, toolsCoreFacade?: ToolsCoreFacade | undefined): Promise; export declare function prettyPrintListOfIds(list: ListOfIds, projectFileService: ProjectFileService): string; export declare function prettyPrintSubComponentHierarchy(payload: ComponentPayload, projectFileService: ProjectFileService): string; /** * For every payload in the subComponent hierarchy, this function fills the `subComponentHierarchyPath` property, which means * the path of componentIds that lead to the current payload. * It also checks for cyclic dependencies and adds a problem to the payload if a cyclic dependency is detected. * @param payload ComponentPayload to analyze. This is the starting point for the analysis, which will go deeper into the subComponent hierarchy. * @param projectFileService ProjectFileService to access the component payloads. * @param path The path of the componentIds in the hierarchy. This is used to detect cyclic dependencies. */ export declare function fillDependencyParentPathsAndCheckCyclicDependencies(payload: ComponentPayload, projectFileService: ProjectFileService, path?: string[]): void;