import type { Coord } from "../../../interactive2/types"; import type { InteractiveGraphState, PairOfPoints } from "../types"; import type { PerseusGraphType, PerseusGraphTypeAngle, PerseusGraphTypeCircle, PerseusGraphTypeLinear, PerseusGraphTypeLinearSystem, PerseusGraphTypePoint, PerseusGraphTypePolygon, PerseusGraphTypeQuadratic, PerseusGraphTypeRay, PerseusGraphTypeSegment, PerseusGraphTypeSinusoid } from "@khanacademy/perseus-core"; import type { Interval } from "mafs"; export type InitializeGraphStateParams = { range: [x: Interval, y: Interval]; step: [x: number, y: number]; snapStep: [x: number, y: number]; graph: PerseusGraphType; }; export declare function initializeGraphState(params: InitializeGraphStateParams): InteractiveGraphState; export declare function getPointCoords(graph: PerseusGraphTypePoint, range: [x: Interval, y: Interval], step: [x: number, y: number]): Coord[]; export declare function getSegmentCoords(graph: PerseusGraphTypeSegment, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints[]; export declare function getLineCoords(graph: PerseusGraphTypeRay | PerseusGraphTypeLinear, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints; export declare function getLinearSystemCoords(graph: PerseusGraphTypeLinearSystem, range: [x: Interval, y: Interval], step: [x: number, y: number]): PairOfPoints[]; export declare function getPolygonCoords(graph: PerseusGraphTypePolygon, range: [x: Interval, y: Interval], step: [x: number, y: number]): Coord[]; export declare function getSinusoidCoords(graph: PerseusGraphTypeSinusoid, range: [x: Interval, y: Interval], step: [x: number, y: number]): [Coord, Coord]; export declare function getQuadraticCoords(graph: PerseusGraphTypeQuadratic, range: [x: Interval, y: Interval], step: [x: number, y: number]): [Coord, Coord, Coord]; export declare function getCircleCoords(graph: PerseusGraphTypeCircle): { center: Coord; radiusPoint: Coord; }; export declare const getAngleCoords: (params: { graph: PerseusGraphTypeAngle; range: [x: Interval, y: Interval]; step: [x: number, y: number]; }) => [Coord, Coord, Coord];