import { ElementRef } from '@angular/core'; import type { ExportFormat } from '../shared/chart-export-menu.component'; import * as i0 from "@angular/core"; export interface TopologyNode { id: string; label: string; status: 'idle' | 'thinking' | 'success' | 'error'; type?: string; prompt?: string; response?: string; x?: number; y?: number; } export interface TopologyLink { source: string; target: string; active?: boolean; label?: string; } interface ProcessedNode extends TopologyNode { x: number; y: number; depth: number; } export declare class AgenticCognitiveTopologyComponent { private readonly exportSvc; nodes: import("@angular/core").InputSignal; links: import("@angular/core").InputSignal; width: import("@angular/core").InputSignal; height: import("@angular/core").InputSignal; colors: import("@angular/core").InputSignal; showExport: import("@angular/core").InputSignal; editable: import("@angular/core").InputSignal; gridSize: import("@angular/core").InputSignal; nodeActionClick: import("@angular/core").OutputEmitterRef<{ nodeId: string; action: string; }>; nodePositionChange: import("@angular/core").OutputEmitterRef<{ nodeId: string; x: number; y: number; }>; nodesChange: import("@angular/core").OutputEmitterRef; linksChange: import("@angular/core").OutputEmitterRef; validationError: import("@angular/core").OutputEmitterRef; exportMenuOpen: import("@angular/core").WritableSignal; tooltipData: import("@angular/core").WritableSignal<{ node: TopologyNode; screenX: number; screenY: number; } | null>; hoveredNodeId: import("@angular/core").WritableSignal; nodePositionOverrides: import("@angular/core").WritableSignal>; draggingNodeId: import("@angular/core").WritableSignal; private dragOffsetX; private dragOffsetY; scale: import("@angular/core").WritableSignal; translateX: import("@angular/core").WritableSignal; translateY: import("@angular/core").WritableSignal; isPanning: import("@angular/core").WritableSignal; zoomPercent: import("@angular/core").Signal; transformString: import("@angular/core").Signal; private startX; private startY; svgEl: import("@angular/core").Signal | undefined>; nodeWidth: number; nodeHeight: number; activeEditingNode: import("@angular/core").WritableSignal; activePortDrag: import("@angular/core").WritableSignal<{ nodeId: string; portX: number; portY: number; dir: [number, number]; } | null>; portDragCurrentMouse: import("@angular/core").WritableSignal<{ x: number; y: number; } | null>; snapToGridActive: import("@angular/core").WritableSignal; undoStack: import("@angular/core").WritableSignal<{ addedNodes: TopologyNode[]; deletedNodeIds: Set; editedNodesMap: Map; addedLinks: TopologyLink[]; deletedLinks: Set; nodePositionOverrides: Map; }[]>; redoStack: import("@angular/core").WritableSignal<{ addedNodes: TopologyNode[]; deletedNodeIds: Set; editedNodesMap: Map; addedLinks: TopologyLink[]; deletedLinks: Set; nodePositionOverrides: Map; }[]>; addedNodes: import("@angular/core").WritableSignal; deletedNodeIds: import("@angular/core").WritableSignal>; editedNodesMap: import("@angular/core").WritableSignal>; addedLinks: import("@angular/core").WritableSignal; deletedLinks: import("@angular/core").WritableSignal>; effectiveNodes: import("@angular/core").Signal; effectiveLinks: import("@angular/core").Signal; /** Color map: maps lowercase node type string to a color from the colors input */ private typeColorMap; /** Status-based override colors (take priority over type colors) */ private statusColorMap; viewBoxString: import("@angular/core").Signal; constructor(); activeAgentsCount: import("@angular/core").Signal; computedNodes: import("@angular/core").Signal; computedLinks: import("@angular/core").Signal<{ source: string; target: string; path: string; active: boolean; label: string | undefined; srcX: number; srcY: number; destX: number; destY: number; cp1X: number; cp1Y: number; cp2X: number; cp2Y: number; }[]>; temporaryDragLinkPath: import("@angular/core").Signal; validationReport: import("@angular/core").Signal<{ orphans: string[]; hasCycles: boolean; isValid: boolean; }>; onNodeClick(node: TopologyNode, event: MouseEvent): void; onCanvasClick(): void; closeTooltip(): void; triggerAction(action: string, nodeId: string): void; onExport(type: ExportFormat): void; exportToJson(): void; exportToCsv(): void; exportToSvg(): void; exportToPdf(): void; /** Returns the border color for a node, based on status (priority) or type (from colors input) */ getNodeBorderColor(node: ProcessedNode): string; getMidpointX(link: { srcX: number; destX: number; cp1X: number; cp2X: number; }): number; getMidpointY(link: { srcY: number; destY: number; cp1Y: number; cp2Y: number; }): number; saveHistory(): void; applySnapshot(snap: any): void; undo(): void; redo(): void; handleKeyDown(event: KeyboardEvent): void; autoLayout(): void; addNode(): void; deleteNode(nodeId: string, event: MouseEvent): void; deleteLink(source: string, target: string, event: MouseEvent): void; onNodeDblClick(node: TopologyNode, event: MouseEvent): void; saveNodeEdit(): void; onPortMouseDown(node: ProcessedNode, dir: [number, number], event: MouseEvent): void; onNodeMouseDown(node: ProcessedNode, event: MouseEvent): void; onMouseDown(event: MouseEvent): void; onMouseMove(event: MouseEvent): void; onMouseUp(): void; onMouseLeave(): void; onWheel(event: WheelEvent): void; zoomIn(): void; zoomOut(): void; resetZoom(): void; checkCycle(start: string, target: string): boolean; detectCyclesGlobal(): boolean; exportWorkflowSchema(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};