import type { JobManagerChange, JobsPort } from "../ports/jobs-port.js"; import type { PersistencePort } from "../ports/persistence-port.js"; interface ResponderTurnResult { readonly status: "completed" | "aborted" | "error"; } export type ResponderListeningMode = "off" | "idle" | "listening"; export interface ResponderRuntimeState { readonly mode: ResponderListeningMode; readonly running: number; readonly ready: number; readonly delivered: number; readonly archived: number; readonly failed: number; } export declare const IDLE_RESPONDER_STATE: ResponderRuntimeState; interface SessionResponderDeps { readonly jobs: JobsPort; readonly persistence: PersistencePort; readonly sessionId: () => string; readonly isBusy: () => boolean; readonly hasQueuedWork: () => boolean; readonly continueQueue: () => Promise; readonly runTurn: (prompt: string, onStarted: () => void) => Promise; readonly notifyState: () => void; readonly notifyDelivery?: ((summary: string) => void) | undefined; } export declare class SessionResponder { private readonly deps; private leaseId; private generation; private wakeRequested; private wakeDrain; constructor(deps: SessionResponderDeps); activate(): void; deactivate(): void; invalidateWake(): void; rebind(): void; handleChange(change: JobManagerChange): void; getState(): ResponderRuntimeState; scheduleWake(): void; private drainOne; private hasDeliverable; private preview; private foregroundTask; } export {};