import { type Context } from '../../api.js';
export interface DeletionInput {
    teamId: string;
    channelId: string;
    deletedTs: string;
    eventId: string;
}
export type DeletionStatus = 'archived' | 'not_found' | 'duplicate';
export interface DeletionResult {
    status: DeletionStatus;
    memoryId: string | null;
}
/**
 * Handle Slack `message_deleted`. v0.39 commit 3 closes the prior race where
 * the archive committed but `markEventSeen` ran on a second db handle — a
 * crash between them left the deletion event un-acked, and the next retry
 * hit a now-archived row and returned `not_found` instead of `duplicate`.
 *
 * Fix: pass `afterArchive` to `archiveRaw`, which runs inside the same
 * SAVEPOINT as the archive itself. The slack_event_log row commits with the
 * archive or not at all.
 */
export declare function handleMessageDeleted(ctx: Context, input: DeletionInput): DeletionResult;
//# sourceMappingURL=deletion.d.ts.map