import type { WorkflowAttemptCommand, WorkflowAttemptCompletion, WorkflowAttemptCompletionListener, WorkflowSessionExecutor as WorkflowSessionExecutorContract, Session } from "../shared/types.js"; import type { SessionManager } from "../sessions/manager.js"; export type WorkflowSessionReceiptReader = (sessionId: string) => { session: Session; finalText?: string; } | null; /** The sole adapter between the Workflow runtime and conversational execution. */ export declare class WorkflowSessionExecutor implements WorkflowSessionExecutorContract { private readonly sessions; private readonly readReceipt; constructor(sessions: SessionManager, readReceipt?: WorkflowSessionReceiptReader); startAttempt(command: WorkflowAttemptCommand): Promise<{ sessionId: string; }>; stopAttempt(input: { sessionId: string; reason: string; }): Promise; remind(input: { sessionId: string; text: string; }): Promise; attemptState(sessionId: string): { idle: boolean; runningChildren: number; } | null; /** The engine thread a completed attempt session still holds and a new attempt * could pick up, or null when there is nothing usable to continue from. */ resumableEngineSession(sessionId: string, engine: string): string | null; subscribe(listener: WorkflowAttemptCompletionListener): () => void; readTerminalCompletion(sessionId: string): WorkflowAttemptCompletion | null; } //# sourceMappingURL=session-executor.d.ts.map