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<RadioProps, PerseusRadioUserInput, PerseusRadioRubric>;
declare class Radio extends React.Component<Props> implements Widget {
    radioRef: React.RefObject<RadioWidgetHandle>;
    /**
     * @deprecated and likely very broken API
     * [LEMS-3185] do not trust serializedState
     */
    getSerializedState(): any;
    getPromptJSON(): RadioPromptJSON;
    render(): React.ReactNode;
}
export default Radio;
