import { Clock, Effect } from "effect"; import { Prompt } from "effect/unstable/ai"; import type { ModelCallPurpose } from "./model-telemetry.js"; /** @experimental The last-send gap above which the conversation boundary escalates to the one-hour cache. */ export declare const conversationEscalationMillis: number; /** @experimental Mutable last-send clock driving conversation cache escalation. */ export interface SendClock { readonly idleSince: (now: number) => number | undefined; } /** @experimental One run's last-send tracker; gaps above the escalation threshold move the conversation boundary to one hour. */ export declare const makeSendClock: () => SendClock; /** @experimental Mark one wire send with provider cache breakpoints derived from the run's send clock. */ export declare const withWireCache: { (prompt: Prompt.Prompt, purpose: ModelCallPurpose, sendClock: SendClock): Effect.Effect; (purpose: ModelCallPurpose, sendClock: SendClock): (prompt: Prompt.Prompt) => Effect.Effect; }; interface WithCacheBreakpoints { (prompt: Prompt.Prompt, purpose: ModelCallPurpose, idleMillis: number | undefined): Prompt.Prompt; (purpose: ModelCallPurpose, idleMillis: number | undefined): (prompt: Prompt.Prompt) => Prompt.Prompt; } /** @experimental Provider cache breakpoints derived for one send; markers are never persisted. */ export declare const withCacheBreakpoints: WithCacheBreakpoints; export {};