import "./clarify_wizard.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; export interface ClarifyOption { value: string; label: string; /** Required: what the choice means, so the human need not re-derive it. */ description: string; } export interface ClarifyWizardQuestion { question: string; answers: ClarifyOption[]; allowCustom?: boolean; } export interface ClarifyWizardAnswer { value: string; custom: boolean; } export interface ClarifyWizardProps extends StyleProps { questions: ClarifyWizardQuestion[]; /** One answer per question, aligned by index. */ onSubmit: (answers: ClarifyWizardAnswer[]) => void; onCancel: () => void; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * Wrap the `Dialog` from outside, with `ClarifyWizard` in the content and `ClarifyWizardActions` in * the `DialogFooter`; the wizard then drops its inline row. One wizard per frame; a standalone * wizard keeps its inline actions. */ export declare function ClarifyWizardDialog({ children }: { children: React.ReactNode; }): React.JSX.Element; /** * The agent asking back: questions worked one at a time, each answer described, switchable until * submitted. Advance only once answered; a single question shows no position or Next. Pair with * `AgentRun`. */ export declare function ClarifyWizard(props: ClarifyWizardProps): React.ReactElement>; export interface ClarifyWizardActionsProps extends StyleProps { testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * For a `DialogFooter`, inside a `ClarifyWizardDialog`: Cancel left, Back and Next/Submit right. * Renders nothing until the wizard mounts, so a multi-phase footer can stay conditional on the * clarify phase. */ export declare function ClarifyWizardActions(props: ClarifyWizardActionsProps): React.JSX.Element | null;