import * as React from "react";
import type { APIOptions } from "@khanacademy/perseus";
import type { PerseusPlotterWidgetOptions, PlotterDefaultWidgetOptions } from "@khanacademy/perseus-core";
declare const editingStates: string[];
type EditingState = (typeof editingStates)[number];
type Props = {
    apiOptions: APIOptions;
    type: PerseusPlotterWidgetOptions["type"];
    labels: Array<string>;
    categories: ReadonlyArray<string | number>;
    scaleY: number;
    maxY: number;
    snapsPerLine: number;
    picSize: number;
    picBoxHeight: number;
    picUrl: string;
    plotDimensions: ReadonlyArray<number>;
    labelInterval: number;
    starting: ReadonlyArray<number>;
    correct: ReadonlyArray<number>;
    static: boolean;
    onChange: any;
};
type State = {
    editing: EditingState;
    pic: any;
    loadedUrl: string | null;
    minX: number | null;
    maxX: number | null;
    tickStep: number | null;
};
/**
 * An editor for adding a plotter widget that allows users to create and customize data visualizations.
 */
declare class PlotterEditor extends React.Component<Props, State> {
    static widgetName: "plotter";
    static defaultProps: PlotterDefaultWidgetOptions;
    state: State;
    UNSAFE_componentWillMount(): void;
    UNSAFE_componentWillReceiveProps(nextProps: any): void;
    fetchPic: (arg1: string) => any;
    handleChangeTickStep: (arg1: number) => void;
    handleChangeRange: (arg1: [number, number]) => void;
    changeLabelInterval: (arg1: number) => void;
    handlePlotterChange: (arg1: any) => void;
    changeType: (arg1: any) => void;
    changeLabel: (arg1: number, arg2: any) => void;
    changePicUrl: (arg1: string) => void;
    changeCategories: (arg1: any) => void;
    changeScale: (arg1: any) => void;
    changeMax: (arg1: any) => void;
    changeSnaps: (arg1: any) => void;
    changeEditing: (arg1: EditingState) => void;
    setCategoriesFromScale: () => void;
    serialize: () => any;
    render(): React.ReactNode;
}
export default PlotterEditor;
