import type { ReactNode } from 'react'; export interface DeleteSourceModalProps { /** Whether the confirmation modal is open. */ open: boolean; /** Display name of the source awaiting deletion (empty for an unnamed source). */ sourceName: string; /** * Overrides the body copy. Deleting a source means different things per flow — * a wizard source has never run, a deployed one is actively replicating — so * the caller states the consequence. Defaults to the wizard wording. */ description?: ReactNode; /** Keeps the confirm button disabled while the deletion is in flight. */ isDeleting?: boolean; onConfirm: () => void; onCancel: () => void; }