import * as React from "react";
import Editor from "./editor";
import type { APIOptions, ImageDict, ChangeHandler, DeviceType, ImageUploader } from "@khanacademy/perseus";
import type { Hint, PerseusWidgetsMap } from "@khanacademy/perseus-core";
type HintEditorProps = {
    itemId?: string;
    apiOptions?: APIOptions;
    className: string;
    imageUploader?: ImageUploader;
    showMoveButtons?: boolean;
    showRemoveButton?: boolean;
    showTitle?: boolean;
    content?: string | null | undefined;
    replace?: boolean | null | undefined;
    widgets?: PerseusWidgetsMap | null | undefined;
    images?: ImageDict | null | undefined;
    isLast: boolean;
    isFirst: boolean;
    onMove: (direction: number) => unknown;
    onRemove: () => unknown;
    onChange: ChangeHandler;
    __type?: "hint";
    widgetIsOpen?: boolean;
};
declare class HintEditor extends React.Component<HintEditorProps> {
    static defaultProps: {
        className: string;
        content: string;
        replace: boolean;
        showMoveButtons: boolean;
        showRemoveButton: boolean;
        showTitle: boolean;
    };
    editor: React.RefObject<Editor>;
    handleReplaceChanged: (e: React.ChangeEvent<HTMLInputElement>) => void;
    focus: () => void;
    getSaveWarnings: () => any;
    serialize(): Hint;
    render(): React.ReactNode;
}
type CombinedHintsEditorProps = {
    apiOptions?: APIOptions;
    deviceType: DeviceType;
    imageUploader?: ImageUploader;
    highlightLint?: boolean;
    hints: Hint[];
    previewURL: string;
    onChange: (changed: {
        hints: Hint[];
    }) => void;
    itemId?: string;
    widgetIsOpen?: boolean;
};
declare class CombinedHintsEditor extends React.Component<CombinedHintsEditorProps> {
    static HintEditor: typeof HintEditor;
    static defaultProps: {
        highlightLint: boolean;
        hints: ReadonlyArray<any>;
        onChange: () => void;
    };
    handleHintChange(i: number, newProps: CombinedHintsEditorProps): void;
    handleHintRemove(i: number): void;
    handleHintMove(i: number, dir: number): void;
    addHint: () => void;
    getSaveWarnings: () => any;
    serialize(): Hint[];
    serializeHint(index: number): Hint;
    render(): React.ReactNode;
}
export default CombinedHintsEditor;
