import { ComponentLinks } from "../component-links"; import { Link } from "./link"; import { ComponentIcon } from "./icon"; import { RootComponent } from "./root-component"; import { StackExportsContainer } from "../aws/stack-exports-container"; export type ComponentId = string; export declare enum ComponentTags { isCdkStack = "isCdkStack", isCdkStage = "isCdkStage", collapssingOverride = "collapssingOverride" } export declare abstract class Component { protected constructor(id: ComponentId); private _id; stackExportsContainer: StackExportsContainer; idPathParts: () => Array; get id(): ComponentId; private setId; label: string[]; icon: ComponentIcon | null; tags: Map; private _subComponents; subComponents(): Component[]; protected abstract parent(): Component; protected abstract destroyLinks(): void; abstract depth(): number; abstract toSimpleObject(): Record; abstract assureIdDoesNotExistInConnectedComponents(id: ComponentId): void; abstract treeRoot(): RootComponent; removeSubComponent(component: Component): void; addSubComponent(component: Component): void; removeAndDestroyAllSubComponents(): void; replaceSubComponent(component: Component, newComponent: Component): void; private removeAndDestroyAllSubComponentsRec; destroyAndDetach(): void; collapseToParent(): void; subTreeComponentIds(): Set; componentIsInSubTree(search: Component): boolean; subTreeApplyAllComponents(lambda: (Component: any) => void): void; private applyAllComponentsRec; subTreeFindComponentById(id: string): Component | null; subTreeFindComponent(predicate: (Component: any) => boolean): Component | null; private subTreeFindComponentRec; private subTreeComponents; private _links; get links(): ComponentLinks; subTreeReverseLinks(withSelf?: boolean): Array; private subTreeReverseLinksRec; subTreeLinks(): Array; private subTreeLinksRec; treeAncestorWithTag(tagKey: ComponentTags, tagVal: string): Component | undefined; isAncestor(possibleAncestor: Component): boolean; }