import type { TranscriptSourceEntry } from '../storage/sqlite/index.js'; export interface SessionShareMessage { id: string; role: 'user' | 'assistant'; markdown: string; createdAt: string; attachmentIds: string[]; } export interface SessionShareToolActivity { id: string; messageId?: string; toolName: string; status: 'completed' | 'failed'; createdAt: string; } export interface SessionShareAttachmentCandidate { id: string; messageId: string; fileName: string; mimeType: string; size: number; } export interface SessionShareProjection { messages: SessionShareMessage[]; toolActivities: SessionShareToolActivity[]; attachmentCandidates: SessionShareAttachmentCandidate[]; /** Internal lookup used only while copying explicitly selected media. */ attachmentUris: Map; } /** Closed public projection. Tool arguments/results and raw media references never leave this boundary. */ export declare function projectSessionShare(entries: TranscriptSourceEntry[]): SessionShareProjection;