import { ConnectionPoint, ToolType } from './workflow-designer.types';
import { WorkflowDesignerState } from './workflow-designer.state';
import { Tag } from '../../models/Tag';
import { WorkflowStage } from '../../models/WorkflowStage';
import { DesignerCanvasComponent } from './designer-canvas/designer-canvas.component';
import { WorkflowDataService } from './workflow-data.service';
import { Workflow } from '../../models/Workflow';
import * as i0 from "@angular/core";
export declare class WorkflowDesignerComponent {
    state: WorkflowDesignerState;
    private dataService;
    canvasRef: DesignerCanvasComponent;
    workflowCode: string | null;
    selectedTool: ToolType;
    showSwimlaneDialog: boolean;
    showStageDialog: boolean;
    pendingStagePosition: {
        swimlaneIndex: number;
        x: number;
        y: number;
    } | null;
    pendingStageData: Partial<WorkflowStage>;
    editingSwimlaneIndex: number | null;
    isCreatingStageFromConnection: boolean;
    pendingConnectionSourcePoint: ConnectionPoint | null;
    pendingConnectionSourceSwimlaneIndex: number | null;
    isLoading: boolean;
    isSaving: boolean;
    constructor(state: WorkflowDesignerState, dataService: WorkflowDataService);
    ngOnInit(): void;
    saveWorkflow(): void;
    loadWorkflow(code: string): void;
    parseWorkflowData(workflow: Workflow): void;
    findSwimlaneIndexByLaneId(laneId: string): number;
    onToolSelected(tool: ToolType): void;
    openSwimlaneDialog(): void;
    onShowStageDialog(event: {
        position: any;
        isFromConnection: boolean;
    }): void;
    handleCanvasPositionClick(event: {
        x: number;
        y: number;
    }): void;
    onSwimlaneDialogFilled(event: {
        tags: Tag[];
        name: string;
    }): void;
    onStageDialogSaved(stageData: Partial<WorkflowStage>): void;
    onSubflowSelected(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowDesignerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<WorkflowDesignerComponent, "lib-workflow-designer", never, { "workflowCode": { "alias": "workflowCode"; "required": false; }; }, {}, never, never, false, never>;
}
