import type { WorkflowDefinition, WorkflowDefinitionManifest, WorkflowGraph } from '../../workflows/domain/definition.js'; export type WorkflowSource = 'user' | 'builtin'; export interface CatalogEntry { name: string; source: WorkflowSource; path: string | null; description: string; title: string; version: string; revision: number; whenToUse?: string; tags?: string[]; estimatedAgents?: { min: number; max: number; }; } export interface SaveWorkflowInput { name: string; graph: WorkflowGraph; manifest?: WorkflowDefinitionManifest; expectedRevision?: number; intent?: 'create' | 'update'; } export interface WorkflowRevisionSummary { revision: number; title: string; contentHash?: string; createdAtMs: number; } export interface WorkflowCatalog { list(): CatalogEntry[]; load(name: string): WorkflowDefinition; save(input: SaveWorkflowInput): { path: string; definition: WorkflowDefinition; }; listRevisions(name: string): WorkflowRevisionSummary[]; loadRevision(name: string, revision: number): WorkflowDefinition; restore(name: string, revision: number, expectedRevision: number): { path: string; definition: WorkflowDefinition; }; remove(name: string): boolean; userDir: string; } export declare function createWorkflowCatalog(opts?: { userDir?: string; }): WorkflowCatalog; export declare class WorkflowRevisionConflictError extends Error { readonly currentRevision: number; constructor(currentRevision: number); } export declare class WorkflowNameConflictError extends Error { readonly workflowName: string; readonly currentRevision: number; constructor(workflowName: string, currentRevision: number); } export declare function defaultUserDir(): string;