/**
 * conversation-archive-enrich-rejection MCP tool.
 *
 * Durable rejection memory for conversation-archive-enrich. Writes to a
 * sidecar JSONL file alongside the account's state directory; the read side
 * (filter step) lives in `conversation-archive-derive-insights.ts` so the
 * path constant has a single source of truth.
 *
 * Modes:
 *   record — append a rejection line. O_APPEND is POSIX-atomic for writes
 *            ≤ PIPE_BUF; one JSONL line is well under that, so concurrent
 *            appends never corrupt the file.
 *   undo   — read all lines, drop matches by (chunkElementId, kind,
 *            contentHash), then atomic-rename the rewritten file. A `wire`
 *            of the same key triggers undo so the operator's change of mind
 *            doesn't leave stale rejections behind.
 *
 * Residual race: a `record` append landing between the `undo`'s read and
 * rename is overwritten. The per-row operator gate is single-threaded
 * (one chat-turn at a time), so this window is not exploitable in normal
 * operation. A `flock`-based fix is deferred until rejection volume warrants.
 */
export type RejectionMode = "record" | "undo";
export interface RecordRejectionParams {
    accountId: string;
    archiveElementId: string;
    chunkElementId: string;
    kind: string;
    contentHash: string;
    mode: RejectionMode;
    sessionId?: string;
}
export interface RecordRejectionResult {
    ok: true;
    mode: RejectionMode;
    beforeCount: number;
    afterCount: number;
    path: string;
}
export declare function conversationArchiveEnrichRejection(params: RecordRejectionParams): Promise<RecordRejectionResult>;
//# sourceMappingURL=conversation-archive-enrich-rejection.d.ts.map