import * as React from "react";
import type { APIOptions } from "@khanacademy/perseus";
import type { PerseusFreeResponseWidgetOptions, PerseusFreeResponseWidgetScoringCriterion } from "@khanacademy/perseus-core";
import type { ChangeEventHandler } from "react";
type Props = PerseusFreeResponseWidgetOptions & {
    apiOptions: APIOptions;
    onChange: (options: Partial<PerseusFreeResponseWidgetOptions>) => void;
};
/**
 * An editor for adding a free response widget that allows users to enter open-ended text answers.
 */
declare class FreeResponseEditor extends React.Component<Props> {
    static defaultProps: any;
    static widgetName: "free-response";
    serialize: () => PerseusFreeResponseWidgetOptions;
    getSaveWarnings: () => Array<string>;
    handleUpdateCharacterLimit: ChangeEventHandler<HTMLInputElement>;
    handleUpdateCriterion: (index: number, criterion: PerseusFreeResponseWidgetScoringCriterion) => void;
    handleDeleteCriterion: (index: number) => void;
    handleAddCriterion: () => void;
    renderCriteriaList: (editingDisabled: boolean) => React.ReactNode;
    render(): React.ReactNode;
}
export default FreeResponseEditor;
