import * as React from "react"; import type { WidgetProps, ChoiceState, Widget } from "../../types"; import type { RadioPromptJSON } from "../../widget-ai-utils/radio/radio-ai-utils"; import type { PerseusRadioChoice, PerseusRadioRubric, PerseusRadioUserInput } from "@khanacademy/perseus-core"; /** * Represents a single choice in the RadioComponent */ export interface ChoiceType { id: string; checked: boolean; content: React.ReactNode; rationale: React.ReactNode; hasRationale: boolean; correct: boolean; isNoneOfTheAbove: boolean; } export type RadioProps = { numCorrect: number; hasNoneOfTheAbove?: boolean; multipleSelect?: boolean; countChoices?: boolean; deselectEnabled?: boolean; choices: RadioChoiceWithMetadata[]; choiceStates?: ChoiceState[]; randomize?: boolean; }; type RadioWidgetHandle = { getSerializedState(): any; getPromptJSON(): RadioPromptJSON; }; /** * RadioChoiceWithMetadata is used for server-side scoring */ export interface RadioChoiceWithMetadata extends PerseusRadioChoice { originalIndex: number; correct?: boolean; } type Props = WidgetProps; declare class Radio extends React.Component implements Widget { radioRef: React.RefObject; /** * @deprecated and likely very broken API * [LEMS-3185] do not trust serializedState */ getSerializedState(): any; getPromptJSON(): RadioPromptJSON; render(): React.ReactNode; } export default Radio;