import { Effect } from "effect"; export interface V2SessionPromptInput { readonly sessionID: string; readonly text: string; readonly delivery: "steer"; readonly metadata?: Readonly>; readonly resume?: boolean; } export interface V2SessionSyntheticInput { readonly sessionID: string; readonly text: string; readonly description?: string; readonly metadata?: Readonly>; readonly resume: false; } export interface V2SessionAdmission { prompt(input: V2SessionPromptInput): Effect.Effect; synthetic(input: V2SessionSyntheticInput): Effect.Effect; } export interface CompletionWake { readonly sessionID: string; readonly taskIDs: readonly string[]; readonly text: string; readonly metadata?: Readonly>; } export interface StatusOnlyUpdate { readonly sessionID: string; readonly text: string; readonly description?: string; readonly metadata?: Readonly>; } /** * Admit V2 session updates through the host's native inbox. Completion text is * model-directed, while status records are synthetic and never resume a turn. */ export declare class V2SessionDelivery { private readonly session; private readonly admittedCompletions; private disposed; constructor(session: V2SessionAdmission); completion(input: CompletionWake): Effect.Effect; status(input: StatusOnlyUpdate): Effect.Effect; dispose(): void; } //# sourceMappingURL=session-delivery.d.ts.map