import { Type } from "typebox"; import type { JevAdvice, JevAdviceResult, JevHostEvent, JevObserve, JevObservationStats } from "./types.js"; export declare const JEV_HOST_EVENTS: readonly ["input", "turn_end", "tool_error", "agent_end", "agent_settled"]; export declare const jevObserveSchema: Type.TObject<{ events: Type.TArray[]>>; include: Type.TOptional, Type.TLiteral<"assistantText">, Type.TLiteral<"toolResults">]>>>; maxChars: Type.TOptional; queueSize: Type.TOptional; maxEventAgeMs: Type.TOptional; delivery: Type.TOptional, Type.TLiteral<"followUp">]>>; triggerTurn: Type.TOptional; maxAdvice: Type.TOptional; }>; export declare function checkObserve(value: unknown): asserts value is JevObserve; /** Session-local event source; no polling, transcript reads, or background model calls. */ export declare class JevObservationHost { #private; readonly sessionId: string; readonly deliver: (advice: JevAdvice) => void; readonly now: () => number; constructor(sessionId: string, deliver: (advice: JevAdvice) => void, now?: () => number); get halted(): boolean; get size(): number; get revision(): number; subscribe(options: JevObserve, run: { id: string; name: string; }, controller: AbortController): JevSubscription; observe(event: string, payload: unknown, context: { sessionId: string; signal?: AbortSignal | undefined; }): number; send(advice: JevAdvice): JevAdviceResult; halt(): number; close(): void; } export declare class JevSubscription { #private; readonly host: JevObservationHost; readonly options: JevObserve; readonly run: { id: string; name: string; }; readonly controller: AbortController; readonly dispose: () => void; readonly stats: JevObservationStats; constructor(host: JevObservationHost, options: JevObserve, run: { id: string; name: string; }, controller: AbortController, dispose: () => void); push(event: JevHostEvent): void; next(): Promise; advise(eventId: string, message: string): JevAdviceResult; discard(): void; cancel(): void; close(): void; } //# sourceMappingURL=observation.d.ts.map