import type { MathFieldInterface, MathFieldUpdaterCallback } from "./mathquill-types";
import type { MathInputStrings } from "../../strings";
import type { KeypadKey } from "@khanacademy/perseus-core";
/**
 * This file contains a wrapper around MathQuill so that we can provide a
 * more regular interface for the functionality we need while insulating us
 * from MathQuill changes.
 */
declare class MathWrapper {
    mathField: MathFieldInterface;
    callbacks: any;
    mobileKeyTranslator: Record<KeypadKey, MathFieldUpdaterCallback>;
    constructor(mathFieldMount: any, ariaLabel: string, strings: MathInputStrings, locale: string, callbacks?: {});
    focus(): void;
    blur(): void;
    /**
     * Handle a key press and return the resulting cursor state.
     *
     * @param {Key} key - an enum representing the key that was pressed
     * @returns {object} a cursor object, consisting of a cursor context
     */
    pressKey(key: KeypadKey): {
        context: import("./cursor-contexts").CursorContext;
    };
    /**
     * Place the cursor beside the node located at the given coordinates.
     *
     * @param {number} x - the x coordinate in the viewport
     * @param {number} y - the y coordinate in the viewport
     * @param {Node} hitNode - the node next to which the cursor should be
     *                         placed; if provided, the coordinates will be used
     *                         to determine on which side of the node the cursor
     *                         should be placed
     */
    setCursorPosition(x: number, y: number, hitNode: HTMLElement): void;
    getCursor(): import("mathquill").Cursor;
    contextForCursor(): import("./cursor-contexts").CursorContext;
    getSelection(): import("mathquill").MQSelection | undefined;
    getContent(): string;
    setContent(latex: string): void;
    isEmpty(): boolean;
}
export default MathWrapper;
