import type { ScheduleIntegrationRequirementConfig } from "../schedule/types.js"; import { ScopedRegistryFacade } from "../registry/scoped-registry-facade.js"; import type { Workflow, WorkflowDefinition } from "./types.js"; /** Metadata for one node in a registered workflow graph. */ export interface NodeInfo { id: string; type: string; /** Agent ID if this is a step using an agent */ agent?: string; /** Tool ID if this is a step using a tool */ tool?: string; /** Node IDs this node depends on */ dependsOn?: readonly string[]; /** Child node IDs for composite nodes such as parallel, branch, and static loop nodes. */ children?: readonly string[]; /** Description from wait/approval nodes */ message?: string; /** Human-readable purpose declared on the node config. */ description?: string; } /** Public metadata captured for a registered workflow. */ export interface WorkflowMetadata { id: string; description?: string; version?: string; timeout?: string | number; /** Explicit integration scopes and resources required by scheduled runs. */ integrationRequirements?: readonly ScheduleIntegrationRequirementConfig[]; /** True when steps are defined dynamically via a function */ dynamicSteps?: boolean; /** True when dynamic step introspection is disabled */ introspectionSkipped?: boolean; /** Error message if introspection failed */ introspectionError?: string; nodeCount: number; nodeTypes: readonly string[]; /** Detailed node information */ nodes: readonly NodeInfo[]; /** Agent IDs referenced by this workflow */ agentRefs: readonly string[]; /** Tool IDs referenced by this workflow */ toolRefs: readonly string[]; hasInputSchema: boolean; hasOutputSchema: boolean; /** JSON Schema representation of input schema (if available) */ inputSchemaJson?: Record; /** Conversion failure when an input schema cannot be represented as JSON Schema. */ inputSchemaError?: string; registeredAt: string; } declare const workflowMetadataRegistry: ScopedRegistryFacade; declare class WorkflowRegistryInternal { private storeWorkflow; register(workflow: Workflow | WorkflowDefinition): void; registerShared(workflow: Workflow | WorkflowDefinition): void; get(id: string): WorkflowMetadata | undefined; getDefinition(id: string): WorkflowDefinition | undefined; has(id: string): boolean; getAllIds(): string[]; getAll(): Map; getAllAsArray(): WorkflowMetadata[]; getStats(): { total: number; byNodeType: Record; withInputSchema: number; withOutputSchema: number; }; unregister(id: string): boolean; clear(): void; clearAll(): void; getRegistryStats(): ReturnType; } /** Framework-only workflow registry with process-wide maintenance capabilities. */ export declare const workflowRegistryInternal: WorkflowRegistryInternal; /** Project-scoped workflow registry API safe for application code. */ export declare class WorkflowRegistryClass { #private; constructor(registry?: WorkflowRegistryInternal); register(workflow: Workflow | WorkflowDefinition): void; get(id: string): WorkflowMetadata | undefined; getDefinition(id: string): WorkflowDefinition | undefined; has(id: string): boolean; getAllIds(): string[]; getAll(): Map; getAllAsArray(): WorkflowMetadata[]; getStats(): ReturnType; unregister(id: string): boolean; clear(): void; } /** Project-scoped registry for workflow metadata and definitions. */ export declare const workflowRegistry: WorkflowRegistryClass; /** Register a workflow definition in the current project scope. */ export declare function registerWorkflow(workflow: Workflow | WorkflowDefinition): void; /** Get metadata for a registered workflow by ID. */ export declare function getWorkflow(id: string): WorkflowMetadata | undefined; /** List registered workflow IDs for the current project scope. */ export declare function getAllWorkflowIds(): string[]; export {}; //# sourceMappingURL=registry.d.ts.map