import type { MafsGraphProps } from "./mafs-graph";
import type { InteractiveGraphState, UnlimitedGraphState } from "./types";
import type { Coord } from "../../interactive2/types";
import type { PerseusInteractiveGraphWidgetOptions } from "@khanacademy/perseus-core";
import type { Interval, vec } from "mafs";
/**
 * 44 is touch best practice and AAA compliant for WCAG
 * https://www.w3.org/WAI/WCAG21/Understanding/target-size.html
 */
export declare const TARGET_SIZE = 44;
export declare const REMOVE_BUTTON_ID = "perseus_mafs_remove_button";
export declare const normalizePoints: <A extends Coord[]>(range: PerseusInteractiveGraphWidgetOptions["range"], step: PerseusInteractiveGraphWidgetOptions["step"], coordsList: A, noSnap?: boolean) => A;
export declare const normalizeCoords: <A extends Coord[]>(coordsList: A, ranges: PerseusInteractiveGraphWidgetOptions["range"]) => A;
export declare function bound({ snapStep, range, point, }: {
    snapStep: vec.Vector2;
    range: [Interval, Interval];
    point: vec.Vector2;
}): vec.Vector2;
export declare function boundToEdge({ range, point, }: {
    range: [Interval, Interval];
    point: vec.Vector2;
}): vec.Vector2;
export declare function isUnlimitedGraphState(state: InteractiveGraphState): state is UnlimitedGraphState;
/**
 * Parse a string of text and math into a list of objects with type and content
 *
 * Example: "Pi is about $\frac{22}{7}$" ==>
 *    [
 *      {type: "text", content: "Pi is about "},
 *      {type: "math", content: "\\frac{22}{7}"},
 *    ]
 */
export declare const mathOnlyParser: import("@khanacademy/simple-markdown").Parser;
/**
 * Replace all text outside of the $ TeX blocks with `\\text{...}`
 * This way, the entire resulting string can be rendered within <TeX>
 * and the text outside of the $ blocks will be non-TeX text.
 */
export declare function replaceOutsideTeX(mathString: string): string;
export declare function getBaseMafsGraphPropsForTests(): MafsGraphProps;
export declare const calculateNestedSVGCoords: (range: vec.Vector2[], width: number, height: number) => {
    viewboxX: number;
    viewboxY: number;
};
