import type { ArkmeRecordDeletionResult } from '../record-deletion-contract.js'; /** Confirmed owner versions only. A later restore/edit must be allowed through. */ export declare class ConfirmedMessageDeletions { private versions; accept(result: ArkmeRecordDeletionResult): void; keeps(item: { itemUid: string; recordVersion?: number; }): boolean; } export declare const MESSAGE_DELETION_DURATION = 420; export interface MessageDeletionMotion { afterRemoval(): void; cancel(): void; } /** Capture before React removes facts; animate the visual copies and surviving rows after commit. */ export declare function captureMessageDeletion(viewport: HTMLElement, shouldDelete: (item: { itemUid: string; recordVersion?: number; }) => boolean, style?: 'shatter' | 'lift'): MessageDeletionMotion; /** Emphasize membership in-place; the message still belongs in the aggregate. */ export declare function emphasizeMessageTopic(viewport: HTMLElement, ids: ReadonlySet): MessageDeletionMotion; //# sourceMappingURL=message-deletion-feedback.d.ts.map