import { type AgentProviderFailure, type AgentProviderRecovery, WorkflowAgentExecutor } from "./agent-execution.js"; import { type PersistedRun, type RunStore, type WorktreeReference } from "./persistence.js"; import { type WorkflowRegistryApi } from "./registry.js"; import { type AgentRecord, type BudgetEvent, type JsonValue, type ModelSpec, type RunState, type WorkflowBridge, type WorkflowCheckpointState, type WorkflowExecution, type WorkflowMetadata, type WorkflowRunContext } from "./types.js"; type WorkflowEventSink = { emit: (name: string, payload: unknown) => unknown; }; export type WorkflowToolUpdate = { content: [{ type: "text"; text: string; }]; details: { runId: string; run: import("./persistence.js").PersistedRun; }; }; export type WorkflowRunRecord = { executor: WorkflowAgentExecutor; store: RunStore; metadata: WorkflowMetadata; model: ModelSpec; lifecycle: RunLifecycle; budget: import("./budget.js").WorkflowBudgetRuntime; abortController: AbortController; projectTrusted: () => boolean; providerErrorRecovery?: (failure: AgentProviderFailure) => Promise; execution?: WorkflowExecution; completion?: Promise; foreground?: boolean; checkpointResolvers: Map void>; update?: (result: WorkflowToolUpdate) => void; }; export declare class RunLifecycle { #private; private readonly changed?; constructor(state?: RunState, changed?: ((state: RunState, previousState: RunState, reason?: string) => void | Promise) | undefined); get state(): RunState; enter(): Promise; leave(): Promise; enterAwaitingInput(): Promise; resolveAwaitingInput(): Promise; pause(): Promise; resume(): Promise; providerPause(): Promise; terminal(state: "completed" | "failed" | "stopped" | "interrupted" | "budget_exhausted", reason?: string): Promise; } export declare class WorkflowEventPublisher { #private; private readonly sink; constructor(sink: WorkflowEventSink | undefined); removeRun(runId: string): void; seedBudget(runId: string, events: readonly BudgetEvent[] | undefined): void; runStarted(store: RunStore, metadata: WorkflowMetadata): Promise; runResumed(store: RunStore, metadata: WorkflowMetadata): Promise; runState(store: RunStore, metadata: WorkflowMetadata, previousState: RunState, state: RunState, reason?: string): Promise; runCompleted(store: RunStore, metadata: WorkflowMetadata, resultPath: string): Promise; runFailed(store: RunStore, metadata: WorkflowMetadata, error: unknown, state: "failed" | "stopped" | "interrupted" | "budget_exhausted"): Promise; agentState(store: RunStore, metadata: WorkflowMetadata, previous: AgentRecord | undefined, agent: AgentRecord): Promise; agentStates(store: RunStore, metadata: WorkflowMetadata, previous: readonly AgentRecord[], current: readonly AgentRecord[]): Promise; phase(store: RunStore, metadata: WorkflowMetadata, previousPhase: string | undefined, phase: string): Promise; checkpoint(store: RunStore, metadata: WorkflowMetadata, name: string, state: WorkflowCheckpointState): Promise; budget(store: RunStore, metadata: WorkflowMetadata, run: Pick): Promise; worktree(store: RunStore, metadata: WorkflowMetadata, worktree: WorktreeReference): Promise; private budgetKey; } export declare function workflowRunContext(cwd: string, sessionId: string, runId: string, workflow: WorkflowMetadata, args: JsonValue, signal: AbortSignal): Readonly; export declare function nextNamedOccurrence(counters: Map, label: string): string; export declare function withWorkflowFunctions(bridge: WorkflowBridge, store: RunStore, runContext: Readonly, registry: WorkflowRegistryApi): WorkflowBridge; export {};