import type { DatabaseSyncLike } from '../../db.js';
/**
 * Thrown by ingest's afterWrite hook when a concurrent worker has already
 * inserted github_event_log for the same idempotency_key. Roll back the
 * SAVEPOINT so exactly one memory row exists per key.
 */
export declare class DuplicateIdempotencyError extends Error {
    readonly idempotencyKey: string;
    constructor(idempotencyKey: string);
}
export declare function hasSeenKey(db: DatabaseSyncLike, idempotencyKey: string): boolean;
export declare function markKeySeen(db: DatabaseSyncLike, args: {
    idempotencyKey: string;
    deliveryId: string;
    eventName: string;
    memoryId: string | null;
}): void;
export declare function lookupMemoryByKey(db: DatabaseSyncLike, idempotencyKey: string): string | null;
//# sourceMappingURL=idempotency.d.ts.map