/** Browser-safe `SessionEntry` construction with conversational `parentId` chaining. */
import type { ImageContent, TextContent } from '../ai/types.js';
import type { AgentMessage } from '../core/index.js';
import type { CompactionEntry, CustomMessageEntry, LlmCallEntry, ModelChangeEntry, SessionEntry, SessionMessageEntry, SystemPromptEntry, ThinkingLevelChangeEntry, ToolDefinitionsEntry, TurnEndEntry, TurnStartEntry } from '../core/session-schema.js';
export interface AgentToolDefinitionSnapshot {
    name: string;
    description: string;
    parameters: unknown;
}
/** Append-only `SessionEntry` builder. Maintains the conversational leaf id. */
export declare class EmbeddedSessionEntryBuilder {
    private leafId;
    private readonly reservedIds;
    private readonly usedIds;
    seedFromEntries(entries: readonly SessionEntry[]): void;
    getLeafId(): string | null;
    reserveAssistantMessageEntryId(): string;
    private nextBase;
    private nextTraceBase;
    buildMessage(message: AgentMessage, durationMs?: number, idOverride?: string): SessionMessageEntry;
    buildCustomMessage<T = unknown>(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details?: T, timestamp?: string, idOverride?: string): CustomMessageEntry<T>;
    buildModelChange(provider: string, modelId: string): ModelChangeEntry;
    buildThinkingLevelChange(thinkingLevel: string): ThinkingLevelChangeEntry;
    buildTurnStart(turnIndex: number): TurnStartEntry;
    buildTurnEnd(turnIndex: number, durationMs: number): TurnEndEntry;
    buildSystemPrompt(content: string): SystemPromptEntry;
    buildToolDefinitions(tools: readonly AgentToolDefinitionSnapshot[]): ToolDefinitionsEntry;
    buildLlmCall(input: Pick<LlmCallEntry, 'requestId' | 'body'>): LlmCallEntry;
    buildCompaction<T = unknown>(summary: string, firstKeptEntryId: string, tokensBefore: number, details: T | undefined, fromHook: boolean): CompactionEntry<T>;
}
//# sourceMappingURL=session-entry-builder.d.ts.map