/** One survey row (Figma ``). Rows act immediately on click. */ export interface SurveyModalOption { /** Overline above the row label, e.g. "Yes," / "No,". */ overline: string; /** Row label, e.g. "This looks correct." */ label: string; /** * Row behavior + glyph: `positive` (green check_circle) submits the label * right away; `negative` (red cancel) opens the reasons dialog. */ tone: 'positive' | 'negative'; } /** Localized strings the modal renders — resolved by the caller (see SurveyModalActionBlock). */ export interface SurveyModalContent { /** Survey dialog title, e.g. "Does this look right?". */ title: string; options: SurveyModalOption[]; /** Reasons dialog primary (Submit) button label. */ submitText: string; /** ARIA label for the dialog close buttons. */ closeAriaLabel: string; /** Reasons dialog title (negative path), e.g. "This looks wrong". */ reasonsTitle: string; /** Reasons dialog options; the last one reveals the detail text field. */ reasonOptions: string[]; /** Reasons dialog secondary (Back) label. */ backText: string; /** Helper text under the reasons detail field. */ characterLimitLabel?: string; /** Success snackbar message (Figma 1941:212643). */ successMessage: string; /** Error snackbar message (Figma 1941:212644). */ errorMessage: string; /** Error snackbar retry label, e.g. "Try Again". */ tryAgainText: string; /** ARIA label for the snackbar close button. */ toastCloseAriaLabel: string; } interface SurveyModalProps { isOpen: boolean; copy: SurveyModalContent; /** * Fired when an answer is submitted — the positive row's label, or a * reasons-dialog selection (with optional detail). May return a promise: a * rejection switches to the error snackbar, whose Try Again re-submits. */ onSubmit: (option: string, detail?: string) => void | Promise; /** Fired when the whole flow ends (dialogs dismissed or a snackbar closed). */ onClose: () => void; } /** * The confirmation survey drilldown (Figma `1941:212640`, Upcoming * Subscriptions "Does this look right?"): * * - the POSITIVE row submits immediately and shows the success snackbar * (`1941:212643`) — or the error snackbar with Try Again (`1941:212644`); * - the NEGATIVE row opens the reasons dialog (`1941:212642`, a FeedbackDialog: * radios + Back/Submit), whose submission feeds the same snackbars. * * Purely presentational — copy arrives resolved via `SurveyModalContent`; the * `survey_modal_block` action block wires it to the copy store, the beat * actions, and the action-drawer session. */ declare const SurveyModal: ({ copy, isOpen, onClose, onSubmit }: SurveyModalProps) => import("react/jsx-runtime").JSX.Element; export default SurveyModal;