import type interactiveGraph from "../../widgets/interactive-graphs/interactive-graph"; import type { UnsupportedWidgetPromptJSON } from "../unsupported-widget"; import type { PerseusGraphType } from "@khanacademy/perseus-core"; import type React from "react"; type Coord = [x: number, y: number]; type CollinearTuple = readonly [Coord, Coord]; type BaseGraphOptions = { type: string; }; type AngleGraphOptions = BaseGraphOptions & { angleOffsetDegrees: number; startCoords?: readonly [Coord, Coord, Coord]; }; type CircleGraphOptions = BaseGraphOptions & { startParams: { center?: Coord; radius?: number; }; }; type LinearGraphOptions = BaseGraphOptions & { startCoords?: CollinearTuple; }; type LinearSystemGraphOptions = BaseGraphOptions & { startCoords?: readonly CollinearTuple[]; }; type PointGraphOptions = BaseGraphOptions & { numPoints?: number | "unlimited"; startCoords?: readonly Coord[]; }; type PolygonGraphOptions = BaseGraphOptions & { match?: string; numSides?: number | "unlimited"; startCoords?: readonly Coord[]; }; type QuadraticGraphOptions = BaseGraphOptions & { startCoords?: readonly [Coord, Coord, Coord]; }; type RayGraphOptions = BaseGraphOptions & { startCoords?: CollinearTuple; }; type SegmentGraphOptions = BaseGraphOptions & { numSegments?: number; startCoords?: CollinearTuple; }; type SinusoidGraphOptions = BaseGraphOptions & { startCoords?: readonly Coord[]; }; type NoneGraphOptions = Record; type GraphOptions = AngleGraphOptions | CircleGraphOptions | LinearGraphOptions | LinearSystemGraphOptions | NoneGraphOptions | PointGraphOptions | PolygonGraphOptions | QuadraticGraphOptions | RayGraphOptions | SegmentGraphOptions | SinusoidGraphOptions; type AngleUserInput = { coords?: readonly [Coord, Coord, Coord]; angleOffsetDegrees?: number; }; type CircleUserInput = { center?: Coord; radius?: number; }; type LinearUserInput = { coords?: CollinearTuple; }; type LinearSystemInput = { coords?: readonly CollinearTuple[] | null; }; type PointUserInput = { coords?: readonly Coord[] | null; }; type PolygonUserInput = { coords?: readonly Coord[] | null; }; type QuadraticUserInput = { coords?: readonly [Coord, Coord, Coord] | null; }; type RayUserInput = { coords?: CollinearTuple | null; }; type SegmentUserInput = { coords?: readonly CollinearTuple[] | null; }; type SinusoidUserInput = { coords?: readonly Coord[] | null; }; type UserInput = AngleUserInput | CircleUserInput | LinearUserInput | LinearSystemInput | PointUserInput | PolygonUserInput | QuadraticUserInput | RayUserInput | SegmentUserInput | SinusoidUserInput; export type InteractiveGraphPromptJSON = { type: "interactive-graph"; options: { graph: GraphOptions; backgroundImageUrl: string | null | undefined; range: [min: number, max: number][]; labels: ReadonlyArray; }; userInput: UserInput; }; export declare const getPromptJSON: (props: React.ComponentProps, userInput: PerseusGraphType) => InteractiveGraphPromptJSON | UnsupportedWidgetPromptJSON; export {};