import * as React from "react";
import { PerseusI18nContext } from "../../components/i18n-context";
import type { FocusFunction } from "./base-radio";
import type { WidgetProps, ChoiceState, Widget, ChangeHandler } from "../../types";
import type { RadioPromptJSON } from "../../widget-ai-utils/radio/radio-ai-utils";
import type { PerseusRadioChoice, ShowSolutions, PerseusRadioRubric, PerseusRadioUserInput, PerseusRadioWidgetOptions } from "@khanacademy/perseus-core";
export type RadioProps = PerseusRadioWidgetOptions & {
    numCorrect: number;
    hasNoneOfTheAbove?: boolean;
    multipleSelect?: boolean;
    countChoices?: boolean;
    deselectEnabled?: boolean;
    choices: RadioChoiceWithMetadata[];
    showSolutions?: ShowSolutions;
    choiceStates?: ChoiceState[];
    onChange: ChangeHandler;
};
type Props = WidgetProps<RadioProps, PerseusRadioUserInput, PerseusRadioRubric>;
type DefaultProps = Required<Pick<Props, "choices" | "multipleSelect" | "countChoices" | "deselectEnabled" | "linterContext" | "showSolutions">>;
export type RadioChoiceWithMetadata = PerseusRadioChoice & {
    originalIndex: number;
    correct?: boolean;
};
declare class Radio extends React.Component<Props> implements Widget {
    static contextType: React.Context<import("../../components/i18n-context").I18nContextType>;
    context: React.ContextType<typeof PerseusI18nContext>;
    focusFunction: FocusFunction;
    static defaultProps: DefaultProps;
    _renderRenderer: (content?: string) => React.ReactElement;
    focus(choiceIndex?: number | null): boolean;
    registerFocusFunction(fun: FocusFunction): void;
    updateChoices: (checkedChoiceIds: ReadonlyArray<string>) => void;
    getPromptJSON(): RadioPromptJSON;
    render(): React.ReactNode;
}
export default Radio;
