import type { ImageContent, Message, TextContent } from "@earendil-works/pi-ai/compat";
import type { BashExecutionMessage, CustomMessage } from "./messages.ts";
import { type BranchSummaryEntry, type ContextCompactionEntry, type ContextCompactionStats, type ContextDeletionTarget, type ContextWindowChangeEntry, type CustomEntry, type CustomMessageEntry, type FileEntry, type LabelEntry, type ModelChangeEntry, type SessionEntry, type SessionHeader, type SessionInfoEntry, type SessionMessageEntry, type SessionWorkflowMetadata, type ThinkingLevelChangeEntry } from "./session-manager-types.ts";
export declare function createSessionHeader(id: string, cwd: string, timestamp?: string, parentSession?: string, internal?: boolean, workflow?: SessionWorkflowMetadata): SessionHeader;
export declare function createSessionFilePath(sessionDir: string, timestamp: string, sessionId: string): string;
export declare function createMessageEntry(message: Message | CustomMessage | BashExecutionMessage, byId: {
    has(id: string): boolean;
}, parentId: string | null): SessionMessageEntry;
export declare function createThinkingLevelChangeEntry(thinkingLevel: string, byId: {
    has(id: string): boolean;
}, parentId: string | null): ThinkingLevelChangeEntry;
export declare function createContextWindowChangeEntry(contextWindow: number, byId: {
    has(id: string): boolean;
}, parentId: string | null): ContextWindowChangeEntry;
export declare function createModelChangeEntry(provider: string, modelId: string, byId: {
    has(id: string): boolean;
}, parentId: string | null): ModelChangeEntry;
export declare function createContextCompactionEntry(deletedTargets: ContextDeletionTarget[], protectedEntryIds: string[], stats: ContextCompactionStats, backupPath: string | undefined, byId: {
    has(id: string): boolean;
}, parentId: string | null): ContextCompactionEntry;
export declare function createCustomEntry(customType: string, data: unknown, byId: {
    has(id: string): boolean;
}, parentId: string | null): CustomEntry;
export declare function createSessionInfoEntry(name: string, byId: {
    has(id: string): boolean;
}, parentId: string | null): SessionInfoEntry;
export declare function getLatestSessionName(entries: SessionEntry[]): string | undefined;
export declare function createCustomMessageEntry<T = unknown>(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: T | undefined, excludeFromContext: boolean | undefined, byId: {
    has(id: string): boolean;
}, parentId: string | null): CustomMessageEntry<T>;
export declare function createLabelEntry(targetId: string, label: string | undefined, byId: {
    has(id: string): boolean;
}, parentId: string | null, timestamp?: string): LabelEntry;
export declare function createBranchSummaryEntry(branchFromId: string | null, summary: string, details: unknown, fromHook: boolean | undefined, byId: {
    has(id: string): boolean;
}): BranchSummaryEntry;
export declare function getEntriesWithoutHeader(fileEntries: FileEntry[]): SessionEntry[];
//# sourceMappingURL=session-manager-entries.d.ts.map