import type { GraphClientConfig } from "../lib/graph-client.js"; export interface IngestDecision { messageId: string; disposition: "ingest" | "discard"; } /** * Split decisions into ingest ids + a discard count. Refuses an empty array * (nothing to do) or a duplicate messageId (ambiguous disposition) so the * operator re-issues a clean set rather than a silent partial ingest. Unlike * email-ingest there is no staged batch or high-water mark to guard: the ids * are explicit and the per-message decision holds over exactly this call. */ export declare function validateDecisions(decisions: IngestDecision[]): { toIngest: string[]; discarded: number; }; /** * Write operator-reviewed messages into the business graph. For each `ingest` * decision the full body + envelope is fetched, threads are grouped by * conversationId, participants are resolved closed-set against Neo4j, and each * resolvable thread is dispatched through the shared conversation-archive * script. Unresolved-address threads are skipped and reported. */ export declare function runMailIngest(config: GraphClientConfig, params: { decisions: IngestDecision[]; }): Promise; //# sourceMappingURL=mail-ingest.d.ts.map