/**
 * GDPR Subject Access Export (Article 15).
 *
 * Gathers all data held on a specific contact across Neo4j stores:
 *   Person → AccessGrants (via relationship)
 *   Person → Conversations + Messages (via Person.sessionId → Conversation.sessionId)
 *   Person → email-source KnowledgeDocuments (via Person.email matching the KD's FROM/TO/CC edges)
 *
 * Returns a self-contained JSON document suitable for handing to the data subject.
 */
interface ContactExportParams {
    nodeId?: string;
    email?: string;
    telephone?: string;
    accountId: string;
}
interface ExportedPerson {
    nodeId: string;
    properties: Record<string, unknown>;
}
interface ExportedAccessGrant {
    nodeId: string;
    properties: Record<string, unknown>;
}
interface ExportedMessage {
    nodeId: string;
    properties: Record<string, unknown>;
}
interface ExportedConversation {
    nodeId: string;
    properties: Record<string, unknown>;
    messages: ExportedMessage[];
}
interface ExportedEmail {
    nodeId: string;
    properties: Record<string, unknown>;
}
export interface ContactExportResult {
    person: ExportedPerson;
    accessGrants: ExportedAccessGrant[];
    conversations: ExportedConversation[];
    emails: ExportedEmail[];
    summary: {
        accessGrantCount: number;
        conversationCount: number;
        messageCount: number;
        emailCount: number;
    };
}
export declare function contactExport(params: ContactExportParams): Promise<ContactExportResult>;
export {};
//# sourceMappingURL=contact-export.d.ts.map