export interface HistoricalAttachment { readonly displayName: string; readonly fileRef: string; } interface ContentLike { readonly type: string; readonly text?: string; readonly [key: string]: unknown; } export interface AttachmentLinkProjection { readonly content: readonly ContentLike[]; readonly attachments: readonly HistoricalAttachment[]; } interface StoredHistoryEntry { readonly component: unknown; readonly options: { readonly key?: string; readonly priority?: number; readonly locale?: string; }; readonly registrant?: string; } export interface HistorySlotRegistry { entries(name: string): readonly StoredHistoryEntry[]; inject(name: "conversation.chat.node", callback: () => () => void): () => void; register(options: Record, component: unknown): () => void; } export interface HistoricalAttachmentMetadata { readonly displayName: string; readonly detectedType: string; readonly size: number; } export type HistoricalAttachmentResolver = (sessionId: string, fileRef: string) => Promise; export declare function projectAttachmentLinks(content: readonly ContentLike[]): AttachmentLinkProjection; export declare function installAttachmentHistoryProjection(slots: HistorySlotRegistry, resolve?: HistoricalAttachmentResolver): () => void; export {};