/** * A collection of geomtry-related utility functions */ import { type Coord } from "@khanacademy/perseus-core"; type Line = [Coord, Coord]; export type Range = [number, number]; export type SineCoefficient = [ number, number, number, number ]; export declare function sign(val: number): 0 | 1 | -1; export declare function ccw(a: Coord, b: Coord, c: Coord): number; export declare function collinear(a: Coord, b: Coord, c: Coord): boolean; export declare function intersects(ab: Line, cd: Line): boolean; export declare function polygonSidesIntersect(vertices: Coord[]): boolean; export declare function vector(a: ReadonlyArray, b: ReadonlyArray): number[]; export declare function reverseVector(vector: Coord): Coord; export declare function clockwise(points: Coord[]): boolean; export declare function magnitude(v: ReadonlyArray): number; export declare function angleMeasures(coords: ReadonlyArray): ReadonlyArray; export declare function similar(coords1: ReadonlyArray, coords2: ReadonlyArray, tolerance: number): boolean; export declare function lawOfCosines(a: number, b: number, c: number): number; export declare function canonicalSineCoefficients([amplitude, angularFrequency, phase, verticalOffset,]: [any, any, any, any]): any[]; export type TangentCoefficient = [ number, number, number, number ]; export declare function canonicalTangentCoefficients([amplitude, angularFrequency, phase, verticalOffset,]: TangentCoefficient): TangentCoefficient; export declare function rotate(array: ReadonlyArray, n?: number): ReadonlyArray; export declare function getLineEquation(first: Coord, second: Coord): string; export declare function getLineIntersection(firstPoints: readonly [Coord, Coord], secondPoints: readonly [Coord, Coord]): [number, number] | null; export declare function getLineIntersectionString(firstPoints: readonly [Coord, Coord], secondPoints: readonly [Coord, Coord]): string; export {};