import type { AgentMessage } from "@caupulican/pi-agent-core"; import type { Message } from "@caupulican/pi-ai"; export type ModelRouterBufferedSessionMessage = { kind: "message"; message: Message; } | { kind: "custom"; message: Extract; }; export type ModelRouterSessionBuffer = { messages: ModelRouterBufferedSessionMessage[]; /** True after the complete routed turn has been durably committed. */ committed: boolean; /** True after the prompt prefix was durably committed before provider transport. */ prefixCommitted: boolean; /** Number of AgentMessages (including custom messages) in the committed prefix, retained for live-suffix repair. */ prefixMessageCount: number; }; export declare function createModelRouterSessionBuffer(): ModelRouterSessionBuffer; export declare function bufferModelRouterSessionMessage(buffer: ModelRouterSessionBuffer, message: Message): void; export declare function bufferModelRouterSessionCustomMessage(buffer: ModelRouterSessionBuffer, message: Extract): void; export declare function flushModelRouterSessionBuffer(buffer: ModelRouterSessionBuffer, appendBatch: (entries: readonly ModelRouterBufferedSessionMessage[]) => readonly string[]): Map; /** Commit only the prompt prefix before provider transport; later assistant/tool messages remain buffered. */ export declare function flushModelRouterSessionBufferPrefix(buffer: ModelRouterSessionBuffer, appendBatch: (entries: readonly ModelRouterBufferedSessionMessage[]) => readonly string[]): Map; //# sourceMappingURL=session-buffer.d.ts.map