/**
 * memory-report-write — durable, keyword-routed report persistence (Task 332).
 *
 * Idempotent on (accountId, title, occurredAt-within-same-minute) to absorb
 * accidental double-fires from a workflow dispatcher. Two distinct calls in
 * the same minute with the same title return the existing :Report nodeId
 * instead of creating a second row.
 *
 * Hierarchy: every :Report is parented to either the active
 * :AdminConversation (when SESSION_NODE_ID is set — the typical case
 * for operator-initiated writes from chat) or to the account's :AdminUser
 * as a fallback so the report still satisfies the graph-hierarchy doctrine
 * when written from a non-conversation context (scheduled workflows etc.).
 */
export interface ReportWriteParams {
    accountId: string;
    title: string;
    body: string;
    keywords: string[];
    sourceWorkflow?: string;
    /** ISO timestamp. Defaults to now(). */
    occurredAt?: string;
    /** elementId of the active :AdminConversation when invoked in chat. */
    conversationNodeId?: string;
}
export interface ReportWriteResult {
    nodeId: string;
    reportId: string;
    created: boolean;
    /** Reason the existing report was returned, when created=false. */
    idempotencyReason?: "same-title-within-minute";
}
export declare function memoryReportWrite(params: ReportWriteParams): Promise<ReportWriteResult>;
//# sourceMappingURL=memory-report-write.d.ts.map