import type { TaskboardWorkflowId } from './ids.js'; export type WorkflowNodeExecution = 'executable' | 'design-only'; export interface WorkflowNode { readonly id: string; readonly kind: string; readonly execution: WorkflowNodeExecution; readonly config: Readonly>; readonly steps?: readonly WorkflowNode[]; readonly trueBranch?: readonly WorkflowNode[]; readonly falseBranch?: readonly WorkflowNode[]; } export interface WorkflowTab { readonly id: string; readonly name: string; readonly trigger: WorkflowNode; readonly steps: readonly WorkflowNode[]; } export interface WorkflowDocument { readonly tabs: readonly WorkflowTab[]; } export interface SavedWorkflow { readonly id: TaskboardWorkflowId; readonly projectId: import('./ids.js').TaskboardProjectId; readonly name: string; readonly document: WorkflowDocument; readonly version: number; readonly createdAt: number; readonly updatedAt: number; } export interface WorkflowNodeProvider { readonly kind: string; readonly category: string; readonly schema: Readonly>; validate(config: Readonly>): readonly string[]; execute?(config: Readonly>, input: unknown, signal: AbortSignal): Promise; } export interface WorkflowCatalogEntry { readonly kind: string; readonly category: string; readonly execution: WorkflowNodeExecution; } export interface WorkflowNodePosition { readonly id: string; readonly tabId: string; readonly x: number; readonly y: number; readonly branch: 'main' | 'true' | 'false'; } //# sourceMappingURL=workflow.d.ts.map