import type { EveAgentStoreCallbacks, EveAgentStoreInit, EveAgentStoreSnapshot } from "#client/eve-agent-store-state.js"; import type { CancelSessionResult, ClearResult, CompactResult, ResetResult, SendTurnPayload } from "#client/types.js"; export type { EveAgentStoreCallbacks, EveAgentStoreInit, EveAgentStoreSnapshot, EveAgentStoreStatus, PrepareSend, } from "#client/eve-agent-store-state.js"; declare const detachStore: unique symbol; declare const attachStore: unique symbol; /** * Owns frontend session creation, continuous streaming, turn submission, and UI projection. * Framework bindings subscribe to snapshots and attach or detach transport with their lifecycle. * Reset clears local state; cancellation remains an explicit durable operation. */ export declare class EveAgentStore { #private; constructor(init: EveAgentStoreInit); get snapshot(): EveAgentStoreSnapshot; setCallbacks(callbacks: EveAgentStoreCallbacks): void; subscribe(callback: () => void): () => void; /** Creates this store's owned session without starting a turn. */ prewarm(): Promise; send(input: SendTurnPayload): Promise; /** Replays this store's attached durable session and follows an in-flight turn. */ resume(): Promise; /** * Requests cooperative cancellation of the active durable turn. * * If the stream has not identified the turn yet, the request waits for its * turn ID. The event stream stays attached until the turn settles. */ cancel(): Promise; /** Queues server-side compaction of the current session's context. */ compact(): Promise; /** Clears the current session's model-message history on the server. */ clear(): Promise; /** * Terminally retires the store-owned server session, then resets local state so the next * send starts a fresh session. A failed request leaves both intact. */ retire(): Promise; [attachStore](): void; [detachStore](): void; reset(): void; } /** @internal Detaches local transport without cancelling durable server work. */ export declare function detachEveAgentStore(store: EveAgentStore): void; /** @internal Starts mount-scoped session work after the framework commits. */ export declare function attachEveAgentStore(store: EveAgentStore): void;