/** * TG-05/TG-06: owner-report inbox - the read surface a verified owner turn * uses to consume delivered-pending reports as bounded model context * (docs/development/telegram-outbound-context-inbox-design.md, Decision 5-6). * * Lookup must happen only after the Telegram owner-console trust check; the * caller (MessageRouter) gates on the resolved role, and the store scopes * every read to one exact target. */ import type { ReportContextTarget, TelegramReportContextStore } from './telegram-report-context-store.js'; import type { ConversationTurn } from './types.js'; export interface OwnerReportSnapshot { version: 'v1'; /** The exact complete Projection V1 block. */ text: string; /** Lowercase hex SHA-256 over the exact UTF-8 bytes of `text`. */ projectionHash: string; /** Ordered delivery IDs rendered in the block - the only consumable set. */ deliveryIds: string[]; } export interface OwnerReportInboxPort { snapshot(target: ReportContextTarget): OwnerReportSnapshot | null; /** Committed-projection history for an actual new backend conversation. */ historyBlock(target: ReportContextTarget, turns: ConversationTurn[], nowIso?: string): string; } export declare class OwnerReportInbox implements OwnerReportInboxPort { private readonly store; constructor(store: TelegramReportContextStore); snapshot(target: ReportContextTarget): OwnerReportSnapshot | null; /** * Startup restoration for an actual new backend conversation (design * Decision 7): emit the already-committed Projection V1 text of the * restored final turns' receipts, grouped in messenger-turn order. Bounded * by 48,000 code points, 64 events, and five normal receipts; the newest * complete receipt suffix that fits is taken and a receipt projection is * never sliced. Returns '' when nothing restores. */ historyBlock(target: ReportContextTarget, turns: ConversationTurn[], nowIso?: string): string; } //# sourceMappingURL=owner-report-inbox.d.ts.map