import * as React from "react";
import { PerseusI18nContext } from "../../components/i18n-context";
import Renderer from "../../renderer";
import type { ANSWER_BAR_STATES } from "./graded-group-answer-bar";
import type { FocusPath, PerseusDependenciesV2, TrackingGradedGroupExtraArguments, Widget, WidgetProps } from "../../types";
import type { GradedGroupPromptJSON } from "../../widget-ai-utils/graded-group/graded-group-ai-utils";
import type { PerseusGradedGroupWidgetOptions, UserInputMap } from "@khanacademy/perseus-core";
declare const GRADING_STATUSES: {
    readonly ungraded: "ungraded";
    readonly correct: "correct";
    readonly incorrect: "incorrect";
    readonly invalid: "invalid";
};
type Props = WidgetProps<PerseusGradedGroupWidgetOptions, Empty, TrackingGradedGroupExtraArguments> & {
    inGradedGroupSet?: boolean;
    onNextQuestion?: () => unknown;
    dependencies: PerseusDependenciesV2;
};
type DefaultProps = {
    title: Props["title"];
    content: Props["content"];
    widgets: Props["widgets"];
    images: Props["images"];
    hint: Props["hint"];
    hasHint: Props["hasHint"];
    linterContext: Props["linterContext"];
};
type State = {
    status: (typeof GRADING_STATUSES)[keyof typeof GRADING_STATUSES];
    showHint: boolean;
    message: string;
    answerBarState: ANSWER_BAR_STATES;
};
export declare class GradedGroup extends React.Component<Props, State> implements Widget {
    static contextType: React.Context<import("../../components/i18n-context").I18nContextType>;
    context: React.ContextType<typeof PerseusI18nContext>;
    static defaultProps: DefaultProps;
    state: State;
    rendererRef: React.RefObject<Renderer>;
    hintRendererRef: React.RefObject<Renderer>;
    componentDidMount(): void;
    shouldComponentUpdate(nextProps: Props, nextState: State): boolean;
    _handleUserInput(_userInput: UserInputMap, widgetsEmpty: boolean): void;
    _checkAnswer: () => void;
    getInputPaths: () => ReadonlyArray<FocusPath>;
    getPromptJSON(): GradedGroupPromptJSON;
    focus: () => boolean;
    focusInputPath: (arg1: any) => void;
    blurInputPath: (arg1: any) => void;
    render(): React.ReactNode;
}
declare const _default: {
    name: string;
    displayName: string;
    widget: React.ForwardRefExoticComponent<Omit<Props, "dependencies"> & React.RefAttributes<any>>;
    hidden: false;
    tracking: "all";
    isLintable: true;
};
export default _default;
