import { FC } from 'react'; import { WriteConsentMode } from '../writeModeConsent'; export interface AssistantApiCallsConsentDialogProps { open: boolean; onConfirm: () => void; onCancel: () => void; /** * The write-capable mode being switched INTO — the product's config for it, * or at least its id. The dialog names it the way its pill does. * * Absent: Take action (`api-calls`), which is the only mode this dialog * described before it took one, so an older caller renders exactly as it did. */ mode?: WriteConsentMode; /** The mode being left, which names the cancel button. Absent: Ask. */ currentMode?: WriteConsentMode | null; } /** * One-time consent shown the first time a user switches the assistant into a * write-capable mode — once PER MODE (BOFF-7308). * * This is the DEPENDABLE guardrail: the in-sandbox agent executes mutations * autonomously, so a host-side acknowledgement (plus, in Take action, the * describe-and-confirm gate) is the FE's strongest lever. The acknowledgement is * persisted per profile and per mode in the assistant store * (`acknowledgedWriteModes`), so accepting it for one mode never skips another's. * * ★★ It says what THIS mode does. Whether the assistant stops for approval * before each change is read from the sandbox's own configuration * (`modeRequiresConfirmWrites`), not taken as a prop, so no caller can promise a * confirmation step the sandbox does not enforce. Only `api-calls` has one. * * ★ The English fallbacks name NO product. They used to say "your HealthyBowl * data", which was correct in exactly one product and a lie in every other — * and a fallback is what renders wherever the key has not been seeded, which * today is most locales. A product wanting its own name here supplies it through * `.assistant.apiCalls.*` / `.assistant.writeConsent.*`, which * is the mechanism that already exists. Which keys render for which mode is * decided in `writeModeConsentCopy`. */ export declare const AssistantApiCallsConsentDialog: FC; //# sourceMappingURL=AssistantApiCallsConsentDialog.d.ts.map