import { ReactNode } from '../../../../node_modules/react'; export interface FlowUnsavedChangesDialogProps { open: boolean; /** @default false — disables all three actions and relabels Save while true (CJO's exact behaviour). */ isSaving?: boolean; /** @default 'Unsaved changes' */ title?: string; /** @default 'Do you want to save or discard changes?' */ description?: ReactNode; /** @default 'Discard' */ discardLabel?: string; /** @default 'Save Changes' / 'Saving…' while `isSaving` (CJO's exact copy, `UnsavedChangesDialog.tsx:72`). */ saveLabel?: string; /** Header × button and any other "stay, keep editing" affordance. */ onClose: () => void; /** Leave without saving. */ onDiscard: () => void; /** * Save, then leave. Naming matches the plan's own vocabulary ("a save-and-leave path") rather * than CJO's `onSaveChanges` — the actual leave-navigation after a successful save is the * caller's responsibility; this component only fires the callback and shows the saving state. */ onSaveAndLeave: () => void; testId?: string; } /** * Shown when a user attempts to leave a page with unsaved work. Ported from CJO's * `UnsavedChangesDialog` (`src/features/journeys/builder/UnsavedChangesDialog.tsx`). Three * independent exits (close/discard/save-and-leave) — not a two-action confirm. Distinct from * `FlowConfigDrawer.onRequestClose`'s guard, which is a narrower, drawer-local dirty-close * concern with no save-and-leave affordance at all — this component is for leaving the whole * page, not closing one panel. * * The close `IconButton` is rendered as a sibling of `DialogTitle`, never nested inside it: * MUI's `DialogTitle` renders its children inside one `

`, so an `IconButton` nested there * would fold its own "Close" accessible name into the heading's accessible name * (`UnsavedChangesDialog.tsx:18-20`'s doc-comment in CJO). */ export declare function FlowUnsavedChangesDialog({ open, isSaving, title, description, discardLabel, saveLabel, onClose, onDiscard, onSaveAndLeave, testId, }: FlowUnsavedChangesDialogProps): import("react/jsx-runtime").JSX.Element;