import type { CompactionSummary } from "./types.js";
import type { AttachmentsRecord as AttachmentsRecordV1 } from "../../attachments/store.js";
export interface TokenizedMessage {
    role: "system" | "user" | "assistant" | "tool";
    content: unknown;
    tokenCount?: number;
    timestamp?: number;
    hasBreakPoint?: boolean;
}
export type TokenizedResponseMessage = TokenizedMessage & {
    role: "assistant" | "tool";
};
export interface L3TurnRecord {
    user: TokenizedMessage;
    assistant?: TokenizedMessage;
}
export interface L2TurnRecord {
    user: TokenizedMessage;
    response: TokenizedResponseMessage[];
}
export interface L1TurnRecord {
    user: TokenizedMessage;
    steps: TokenizedResponseMessage[][];
}
/**
 * V1 context record format (no version field).
 */
export interface ContextRecordV1 {
    charsPerToken: number;
    l1Turns: L1TurnRecord[];
    l2Turns: L2TurnRecord[];
    l3Turns: L3TurnRecord[];
    toolSummariesById?: Record<string, CompactionSummary>;
    attachments?: AttachmentsRecordV1;
}
//# sourceMappingURL=types-v1.d.ts.map