import { Node, ToolType, ConnectionPoint } from '../workflow-designer.types';
import { WorkflowStage } from '../../../models/WorkflowStage';
import { WorkflowDesignerState } from '../workflow-designer.state';
import * as i0 from "@angular/core";
export declare class NodeManagementService {
    private state;
    constructor(state: WorkflowDesignerState);
    /**
     * Adds a new node to the specified swimlane
     */
    addNode(swimlaneIndex: number, type: ToolType, x: number, y: number, stageData?: Partial<WorkflowStage>, workflowData?: {
        id: string;
        name: string;
    }): Node | null;
    /**
     * Gets the total count of nodes across all swimlanes
     */
    getNodeCount(): number;
    /**
     * Find a node by ID
     */
    findNodeById(id: string): {
        node: Node;
        swimlaneIndex: number;
    } | null;
    /**
     * Generate connection points for a node
     */
    generateConnectionPoints(node: Node): ConnectionPoint[];
    /**
     * Update node properties
     */
    updateNodeProperties(nodeId: string, properties: Partial<Node>): boolean;
    /**
     * Update stage data for a node
     */
    updateStageData(nodeId: string, stageData: Partial<WorkflowStage>): boolean;
    /**
     * Set a node as a start node
     */
    setAsStartNode(nodeId: string): boolean;
    /**
     * Delete a node
     */
    deleteNode(nodeId: string): boolean;
    /**
     * Check if a node has outgoing connections
     */
    hasOutgoingConnections(nodeId: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeManagementService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodeManagementService>;
}
