/** * JSON serialization helpers for IEmailMetadata. * * Maps in IEmailMetadata (customHeaders, deliveryReceipts, readReceipts, * encryptedKeys) do not survive JSON.stringify/parse. These helpers convert * Map fields to/from plain objects so the data round-trips through REST APIs. * * Server-side: call serializeEmailMetadataForJson before sending responses. * Client-side: call deserializeEmailMetadataFromJson after receiving responses. */ import type { IDeliveryReceipt } from '../../interfaces/messaging/emailDelivery'; import type { IEmailMetadata } from '../../interfaces/messaging/emailMetadata'; /** * JSON-safe representation of IEmailMetadata where Map fields are plain objects. * TID defaults to string for frontend DTO usage. */ export type IEmailMetadataJson = Omit, 'customHeaders' | 'deliveryReceipts' | 'readReceipts' | 'encryptedKeys' | 'date'> & { customHeaders: Record; deliveryReceipts: Record>; readReceipts: Record; encryptedKeys?: Record; date: string; }; /** * Converts an IEmailMetadata into a JSON-safe plain object. * Call this server-side before sending API responses. */ export declare function serializeEmailMetadataForJson(email: IEmailMetadata): IEmailMetadataJson; /** * Converts a batch of IEmailMetadata objects for JSON serialization. */ export declare function serializeEmailMetadataArrayForJson(emails: IEmailMetadata[]): IEmailMetadataJson[]; /** * Reconstructs an IEmailMetadata from a JSON-parsed plain object. * Call this client-side after receiving API responses. */ export declare function deserializeEmailMetadataFromJson(json: IEmailMetadataJson): IEmailMetadata; /** * Reconstructs a batch of IEmailMetadata objects from JSON. */ export declare function deserializeEmailMetadataArrayFromJson(jsons: IEmailMetadataJson[]): IEmailMetadata[]; //# sourceMappingURL=emailMetadataJsonSerializer.d.ts.map