import { Changeable } from "@khanacademy/perseus";
import { type NumericInputDefaultWidgetOptions, type PerseusNumericInputWidgetOptions } from "@khanacademy/perseus-core";
import * as React from "react";
import type { APIOptionsWithDefaults } from "@khanacademy/perseus";
type ChangeFn = typeof Changeable.change;
type Props = Omit<PerseusNumericInputWidgetOptions, "static"> & {
    onChange: (results: any) => any;
    apiOptions?: APIOptionsWithDefaults;
};
type State = {
    lastStatus: string;
    showAnswerDetails: boolean[];
    showSettings: boolean;
    showAnswers: boolean;
};
/**
 * An editor for adding a numeric input widget that allows users to enter
 * numerical values with specific validation rules.
 */
declare class NumericInputEditor extends React.Component<Props, State> {
    static widgetName: string;
    static displayName: string;
    static defaultProps: NumericInputDefaultWidgetOptions;
    constructor(props: Props);
    change: ChangeFn;
    onToggleAnswers: (answerIndex: number) => void;
    onToggleAnswerForm: (answerIndex: number, answerForm: any) => void;
    onToggleHeading: (accordionName: string) => () => void;
    onTrashAnswer: (choiceIndex: any) => void;
    onSpace: (e: any, callback: any, ...args: any[]) => void;
    onStatusChange: (choiceIndex: any) => void;
    onEvaluationChange: (choiceIndex: any, newStatus: any) => void;
    updateAnswer: (choiceIndex: any, update: any) => ((p3: any) => void) | undefined;
    addAnswer: () => void;
    getSaveWarnings: () => never[];
    serialize: () => any;
    render(): React.JSX.Element;
}
export default NumericInputEditor;
