import { type ConversationVisibilityActivityEvidence } from './conversation-directory-visibility-overlay.js'; export declare const CONVERSATION_REMOVAL_HOLD_MS = 700; export declare const CONVERSATION_REMOVAL_COLLAPSE_MS = 220; export type ConversationRemovalPhase = 'pending' | 'accepted' | 'collapsing'; interface Removal { key: string; row: Row; index: number; activity: ConversationVisibilityActivityEvidence; phase: ConversationRemovalPhase; timer?: ReturnType; } /** Presentation only: owner visibility is committed immediately, never by an animation timer. */ export declare function useConversationRemovalFeedback({ rows, rowKey, activity, scope, enabled }: { rows: readonly Row[]; rowKey: (row: Row) => string; activity: ReadonlyMap; scope: string | undefined; enabled: boolean; }): { rows: Row[]; phases: Map; begin(row: Row, submittedActivity: ConversationVisibilityActivityEvidence): Removal | undefined; accept(entry: Removal | undefined): void; finishPending(entry: Removal | undefined): void; }; export {}; //# sourceMappingURL=use-conversation-removal-feedback.d.ts.map