import { vec } from "mafs"; import { type I18nContextType } from "../../../components/i18n-context"; import type { AbsoluteValueGraphState, Dispatch, InteractiveGraphElementSuite } from "../types"; import type { Coord } from "@khanacademy/perseus-core"; export declare function renderAbsoluteValueGraph(state: AbsoluteValueGraphState, dispatch: Dispatch, i18n: I18nContextType): InteractiveGraphElementSuite; export type AbsoluteValueCoefficients = { m: number; h: number; v: number; }; /** * Compute the coefficients [m, h, v] for f(x) = m * |x - h| + v from two * control points: p1 (vertex) and p2 (a point on one arm). * * Returns undefined if p1 and p2 share the same x-coordinate (slope undefined). */ export declare function getAbsoluteValueCoefficients(coords: ReadonlyArray): AbsoluteValueCoefficients | undefined; /** * Keyboard constraint for absolute value control points. * Skips any horizontal position where both points would share the same x. */ export declare const getAbsoluteValueKeyboardConstraint: (coords: ReadonlyArray, snapStep: vec.Vector2, pointIndex: number) => { up: vec.Vector2; down: vec.Vector2; left: vec.Vector2; right: vec.Vector2; };