import { vec } from "mafs"; import type { PerseusStrings } from "../../../strings"; import type { PairOfPoints } from "../types"; import type { Coord } from "@khanacademy/perseus-core"; import type { Interval } from "mafs"; /** * Given a ray and a rectangular box, find the point where the ray intersects * the edge of the box. Assumes the `initialPoint` is inside the box. * @param initialPoint - The starting point of the ray. * @param throughPoint - A point that the ray passes through. Must be different from initialPoint. * @param box - The box with which to intersect the ray, in the form [[xMin, xMax], [yMin, yMax]] */ export declare const getIntersectionOfRayWithBox: (initialPoint: vec.Vector2, throughPoint: vec.Vector2, box: [x: Interval, y: Interval]) => [number, number]; export declare function getArrayWithoutDuplicates(array: Array): Array; export declare function getSlopeStringForLine(line: PairOfPoints, strings: PerseusStrings): string; export declare function getInterceptStringForLine(line: PairOfPoints, strings: PerseusStrings, locale: string): string; export declare function getQuadraticVertexString(vertex: Coord, strings: PerseusStrings): string; export declare function getQuadraticPointString(pointNumber: any, coord: Coord, strings: PerseusStrings, locale: string): string; export declare function getQuadraticXIntercepts(a: number, b: number, c: number): number[]; /** * Given a list of points, return the angle made by the point at index i * with the points at indices i - 1 and i + 1. */ export declare function getAngleFromPoints(points: Coord[], i: number): number | null; export declare function getSideLengthsFromPoints(points: Coord[], i: number, isPolygonOpen?: boolean): Array<{ pointIndex: number; sideLength: number; }>; /** * Determine whether to determine the string with the * exact side length or the approximate side length. */ export declare function getPolygonSideString(sideLength: number, pointIndex: number, strings: PerseusStrings, locale: string): string; /** * Calculate an appropriate radius for angle arcs based on the graph range. * The radius scales with the range so it's visible at all graph sizes. */ export declare function calculateScaledRadius(range: [Interval, Interval]): number;