import type { CommsMessage } from "./comms-types.js"; export declare const COMMS_THREAD_SCHEMA = "humanish.comms-thread.v1"; export interface CommsThreadEntry { id: string; channel: CommsMessage["channel"]; /** sha256-16 of the raw sender address. */ fromDigest: string; /** sha256-16 of each recipient inbox address. */ toDigests: string[]; /** sha256-16 of the subject (non-reversible for a PII subject; correlates identical subjects). */ subjectDigest?: string; /** sha256-16 of each actionable link (high-entropy → non-reversible). */ linkDigests: string[]; /** COUNT ONLY — a short OTP's digest is reversible, so the code itself never lands here. */ codeCount: number; sentAt: number; deliveredAt: number; } export interface CommsThreadArtifact { schema: typeof COMMS_THREAD_SCHEMA; channel: CommsMessage["channel"]; count: number; thread: CommsThreadEntry[]; } /** Project polled inbox messages into the digest-only thread artifact. Pure; the caller writes it into * the run dir and registers it as an adapter-artifact. */ export declare function buildCommsThreadArtifact(messages: CommsMessage[]): CommsThreadArtifact;