import { Position } from '@vue-flow/core'; export interface AwaitConfig { type: 'time' | 'event' | 'webhook'; delay?: number; event?: string; method?: string; timeout?: number; timeoutAction?: 'fail' | 'continue'; } export interface FlowEntry { step: string; queue: string; engineRetryMax?: number; workerId: string; runtime?: 'nodejs' | 'python'; runtype?: 'inprocess' | 'task'; emits?: string[]; awaitBefore?: AwaitConfig; awaitAfter?: AwaitConfig; [key: string]: any; } export interface FlowStep { queue: string; engineRetryMax?: number; workerId: string; subscribes?: string[]; runtime?: 'nodejs' | 'python'; runtype?: 'inprocess' | 'task'; emits?: string[]; awaitBefore?: AwaitConfig; awaitAfter?: AwaitConfig; [key: string]: any; } export type StepNodeStatus = 'idle' | 'running' | 'error' | 'done' | 'canceled'; export interface StepNodeData { label: string; queue?: string; engineRetryMax?: number; workerId?: string; status?: StepNodeStatus; attempt?: number; retries?: number; error?: string; runtime?: 'nodejs' | 'python'; runtype?: 'inprocess' | 'task'; subscribes?: string[]; emits?: string[]; stepTimeout?: number; worker_name?: string; pending_at?: number; completed_at?: number; [key: string]: any; } export interface AwaitNodeData { label: string; awaitType?: 'time' | 'event' | 'webhook'; awaitConfig?: AwaitConfig; status?: 'idle' | 'waiting' | 'resolved' | 'timeout'; scheduledTriggerAt?: string; awaitData?: any; [key: string]: any; } export interface FlowNode { id: string; position: { x: number; y: number; }; data: StepNodeData | AwaitNodeData; type?: string; style?: Record; sourcePosition?: Position; targetPosition?: Position; } export interface FlowEdge { id: string; source: string; target: string; label?: string; animated?: boolean; } export declare function useFlowLayout(props: { flow: any; stepStates: Record; flowStatus?: string; }): { nodes: import("vue").ComputedRef; edges: import("vue").ComputedRef; mapStatusToNodeStatus: (status?: string) => StepNodeStatus; };