import { Tag } from '../../models/Tag';
import { WorkflowStage } from '../../models/WorkflowStage';
export type ToolType = 'swimlane' | 'stage' | 'action' | 'form' | 'decision' | 'subflow' | null;
export interface SwimlaneItem {
    order: number;
    label: string;
    tags: Tag[];
    nodes?: Node[];
    id?: string;
}
export interface Node {
    id: string;
    type: 'stage' | 'decision' | 'form' | 'subflow';
    x: number;
    y: number;
    width: number;
    height: number;
    isStartNode: boolean;
    connectionPoints?: ConnectionPoint[];
    stageData?: Partial<WorkflowStage & {
        formId?: string;
        formName?: string;
    }>;
    workflowData?: {
        id: string;
        name: string;
    } | null;
    hasMultipleConnectedStages?: boolean;
    hasParallelStages?: boolean;
}
export interface ConnectionPoint {
    id: string;
    nodeId: string;
    x: number;
    y: number;
    type: 'top' | 'right' | 'bottom' | 'left';
}
export interface Connection {
    id: string;
    sourceNodeId: string;
    targetNodeId: string;
    sourcePointId: string;
    targetPointId: string;
    sourceSwimlaneIndex: number;
    targetSwimlaneIndex: number;
    condition?: string;
    label: string;
}
