import { RunResumeSessionManager } from "../runtime/resume-session.js"; /** Result returned from detached run drain. */ export interface DetachedRunDrainResult { drained: boolean; pendingRunIds: string[]; } /** Options accepted by detached run tracker. */ export interface DetachedRunTrackerOptions { sessionManager?: RunResumeSessionManager; pollIntervalMs?: number; } /** Public API contract for detached run tracker. */ export interface DetachedRunTracker { readonly sessionManager: RunResumeSessionManager; trackRun(runId: string): void; untrackRun(runId: string): void; cancelRun(runId: string): boolean; registerExecution(runId: string, execution: Promise): void; cancelAllRuns(): string[]; waitForDrain(input: { timeoutMs: number; pollIntervalMs?: number; }): Promise; reset(): void; } /** Public API contract for detached run shutdown logger. */ export interface DetachedRunShutdownLogger { info(message: string, metadata?: Record): void; error(message: string, metadata?: Record): void; } /** Public API contract for detached run shutdown lifecycle. */ export interface DetachedRunShutdownLifecycle { setShuttingDown(): void; stop(): Promise; } /** Options accepted by detached run shutdown lifecycle. */ export interface DetachedRunShutdownLifecycleOptions { tracker: DetachedRunTracker; logger: DetachedRunShutdownLogger; drainTimeoutMs?: number; pollIntervalMs?: number; } /** Create detached run tracker. */ export declare function createDetachedRunTracker(options?: DetachedRunTrackerOptions): DetachedRunTracker; /** Create detached run shutdown lifecycle. */ export declare function createDetachedRunShutdownLifecycle(options: DetachedRunShutdownLifecycleOptions): DetachedRunShutdownLifecycle; //# sourceMappingURL=detached-run-tracker.d.ts.map