import { type EmailData } from "./graph.js";
export interface DispatchResult {
    threadsDispatched: number;
    threadsSkipped: number;
    unresolvedAddresses: string[];
    attachmentsAttached: number;
    attachmentsFailed: number;
}
/**
 * Per-message attachment record produced by email-ingest after it fetched
 * bytes from IMAP and archived them to disk. The dispatcher uses these to
 * MERGE :DigitalDocument nodes and tag them with the thread's pending
 * conversation identity so memory-ingest can wire :HAS_ENCLOSURE edges
 * when it later writes the parent :ConversationArchive.
 */
export interface AttachmentArchiveRecord {
    uid: number;
    partKey: string;
    filename: string;
    mimeType: string;
    sizeBytes: number;
    /** sha256(bytes) when bytes were fetched; synthetic id when not. */
    attachmentId: string;
    /** Absolute on-disk path of archived bytes, or null when not archived. */
    archivePath: string | null;
    /** True iff bytes were fetched and written to disk. */
    archived: boolean;
}
export declare function dispatchEmailMessagesToConversationArchive(messages: EmailData[], attachmentRecords?: AttachmentArchiveRecord[]): Promise<DispatchResult>;
//# sourceMappingURL=conversation-archive-dispatch.d.ts.map