import { type DestroyRef, type EnvironmentInjector } from '@angular/core'; import { type DfDragDropDistance } from '../../directives'; import { type DfDataNode, type DfPoint } from '../../ng-draw-flow.interfaces'; import { type CoordinatesService } from '../../services/coordinates.service'; import { type DfNodeContentRenderer } from './node-content.renderer'; export interface DfNodeConnectorsControllerOptions { readonly coordinatesService: CoordinatesService; readonly destroyRef: DestroyRef; readonly environmentInjector: EnvironmentInjector; readonly getCenteredPosition: (node: DfDataNode) => DfPoint; readonly getNode: () => DfDataNode; readonly getNodeContentRenderer: () => DfNodeContentRenderer; readonly getZoom: () => number; readonly onConnectorDeleted: (connectorId: string) => void; } export declare class NodeConnectorsController { private readonly options; private readonly coordinateKeys; private previousInputs; private previousOutputs; private connectorUpdatesSubscription; constructor(options: DfNodeConnectorsControllerOptions); updateCoordinates(): void; updateCoordinatesAt(centeredCoordinates: DfPoint, nodeId: string): void; recalculatePositions(distance: DfDragDropDistance, zoom: number): void; translateCoordinates(distance: DfDragDropDistance): void; watch(): void; disconnect(): void; applyOutputsConnectionLabel(): void; private recalculateConnectorPositionFromLast; private updateConnectorCoordinates; private calculateConnectorPosition; private collectConnectorUpdateSources; private addContentRendererUpdates; private addInputsUpdates; private addOutputsUpdates; private observeConnectors; private handleRemovedInputs; private handleRemovedOutputs; private removeCoordinates; }