import * as React from "react";
import type { PreferredPopoverDirection } from "./behavior";
import type { APIOptions } from "@khanacademy/perseus";
import type { PerseusLabelImageWidgetOptions, LabelImageDefaultWidgetOptions } from "@khanacademy/perseus-core";
type Props = {
    apiOptions: APIOptions;
    choices: string[];
    imageAlt: string;
    imageUrl: string;
    imageWidth: number;
    imageHeight: number;
    markers: PerseusLabelImageWidgetOptions["markers"];
    multipleAnswers: boolean;
    hideChoicesFromInstructions: boolean;
    onChange: (options: any) => void;
    preferredPopoverDirection: PreferredPopoverDirection;
};
/**
 * Direct image labeling widget editor.
 *
 * Label on image widget enables creating more natural, conceptual questions
 * that involve the use of images, and enable learners to demonstrate their
 * knowledge by directly interacting with the image.
 */
declare class LabelImageEditor extends React.Component<Props> {
    private _questionMarkers;
    static defaultProps: LabelImageDefaultWidgetOptions;
    static widgetName: "label-image";
    componentDidUpdate(prevProps: Props): void;
    getSaveWarnings: () => ReadonlyArray<any | string>;
    serialize(): any;
    handleImageChange: (url: string) => void;
    handleAltChange: (alt: string) => void;
    handleChoicesChange: (choices: ReadonlyArray<string>) => void;
    handleMarkersChange: (markers: PerseusLabelImageWidgetOptions["markers"]) => void;
    handleBehaviorChange: (options?: any) => void;
    render(): React.ReactNode;
}
export default LabelImageEditor;
