/** * TG-05/TG-06 Projection V1: fully deterministic, bounded rendering of * delivered-pending owner reports for the model prompt * (docs/development/telegram-outbound-context-inbox-design.md, Decision 5). * * Every limit counts Unicode code points with no Unicode or newline * normalization. Hashes are lowercase hexadecimal SHA-256 over exact UTF-8 * bytes. Selection uses monotonic seq, never timestamps. Any change to the * rendered bytes (including wrapUntrustedContent's) requires a new projection * version. */ export interface ProjectionSourceEvent { seq: number; deliveryId: string; mode: 'digest' | 'full'; deliveredAtIso: string; text: string; } export interface ProjectionV1Result { version: 'v1'; /** The exact complete combined block; empty string for an empty selection. */ text: string; /** Lowercase hex SHA-256 over the exact UTF-8 bytes of `text`. */ projectionHash: string; /** Ordered delivery IDs actually rendered - the only IDs that may be consumed. */ selectedDeliveryIds: string[]; /** Pending events left unselected by the turn budget. */ omittedCount: number; } /** Render one event within the 8,000-code-point event cap. */ export declare function renderOwnerReportEventV1(source: ProjectionSourceEvent): string; /** * Deterministic selection (design Decision 5): when the whole backlog fits, * render everything oldest to newest. Otherwise reserve the oldest pending * complete rendered event as the anchor, fill the remaining budget with the * newest complete suffix that fits, and mark the chronological gap. The * 24,000-code-point cap includes outer tags, separators, and the gap marker; * the 32-event cap includes the anchor but not the gap marker. */ export declare function buildOwnerReportProjectionV1(events: ProjectionSourceEvent[]): ProjectionV1Result; //# sourceMappingURL=report-projection-v1.d.ts.map