import { z } from "zod"; import type { Canvas } from "../../widgets/utils/layout"; export declare const createAxisOptionsSchema: () => z.ZodObject<{ label: z.ZodPipe, z.ZodTransform>; min: z.ZodNumber; max: z.ZodNumber; tickInterval: z.ZodNumber; showGridLines: z.ZodBoolean; }, z.core.$strict>; export declare const AxisOptionsSchema: z.ZodObject<{ label: z.ZodPipe, z.ZodTransform>; min: z.ZodNumber; max: z.ZodNumber; tickInterval: z.ZodNumber; showGridLines: z.ZodBoolean; }, z.core.$strict>; export type AxisOptions = z.infer; export declare const createPlotPointSchema: () => z.ZodObject<{ id: z.ZodString; x: z.ZodNumber; y: z.ZodNumber; label: z.ZodString; style: z.ZodEnum<{ open: "open"; closed: "closed"; }>; }, z.core.$strict>; export declare const PlotPointSchema: z.ZodObject<{ id: z.ZodString; x: z.ZodNumber; y: z.ZodNumber; label: z.ZodString; style: z.ZodEnum<{ open: "open"; closed: "closed"; }>; }, z.core.$strict>; export type PlotPoint = z.infer; export declare const createSlopeInterceptLineSchema: () => z.ZodObject<{ type: z.ZodLiteral<"slopeIntercept">; slope: z.ZodNumber; yIntercept: z.ZodNumber; }, z.core.$strict>; export declare const createStandardLineSchema: () => z.ZodObject<{ type: z.ZodLiteral<"standard">; A: z.ZodNumber; B: z.ZodNumber; C: z.ZodNumber; }, z.core.$strict>; export declare const createPointSlopeLineSchema: () => z.ZodObject<{ type: z.ZodLiteral<"pointSlope">; x1: z.ZodNumber; y1: z.ZodNumber; slope: z.ZodNumber; }, z.core.$strict>; export declare const createLineEquationSchema: () => z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"slopeIntercept">; slope: z.ZodNumber; yIntercept: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"standard">; A: z.ZodNumber; B: z.ZodNumber; C: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"pointSlope">; x1: z.ZodNumber; y1: z.ZodNumber; slope: z.ZodNumber; }, z.core.$strict>], "type">; export declare const createLineSchema: () => z.ZodObject<{ id: z.ZodString; equation: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"slopeIntercept">; slope: z.ZodNumber; yIntercept: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"standard">; A: z.ZodNumber; B: z.ZodNumber; C: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"pointSlope">; x1: z.ZodNumber; y1: z.ZodNumber; slope: z.ZodNumber; }, z.core.$strict>], "type">; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>; export declare const LineSchema: z.ZodObject<{ id: z.ZodString; equation: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"slopeIntercept">; slope: z.ZodNumber; yIntercept: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"standard">; A: z.ZodNumber; B: z.ZodNumber; C: z.ZodNumber; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"pointSlope">; x1: z.ZodNumber; y1: z.ZodNumber; slope: z.ZodNumber; }, z.core.$strict>], "type">; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>; export type Line = z.infer; export declare const createPolygonSchema: () => z.ZodObject<{ vertices: z.ZodArray; isClosed: z.ZodBoolean; fillColor: z.ZodString; strokeColor: z.ZodString; label: z.ZodString; }, z.core.$strict>; export declare const PolygonSchema: z.ZodObject<{ vertices: z.ZodArray; isClosed: z.ZodBoolean; fillColor: z.ZodString; strokeColor: z.ZodString; label: z.ZodString; }, z.core.$strict>; export type Polygon = z.infer; export declare const createDistanceSchema: () => z.ZodObject<{ pointId1: z.ZodString; pointId2: z.ZodString; showLegs: z.ZodBoolean; showLegLabels: z.ZodBoolean; hypotenuseLabel: z.ZodString; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; }, z.core.$strict>; export declare const DistanceSchema: z.ZodObject<{ pointId1: z.ZodString; pointId2: z.ZodString; showLegs: z.ZodBoolean; showLegLabels: z.ZodBoolean; hypotenuseLabel: z.ZodString; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; }, z.core.$strict>; export type Distance = z.infer; export declare const createPolylineSchema: () => z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"points">; id: z.ZodString; points: z.ZodArray>; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"function">; id: z.ZodString; coefficients: z.ZodArray; xRange: z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, z.core.$strip>; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>], "type">; export declare const PolylineSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ type: z.ZodLiteral<"points">; id: z.ZodString; points: z.ZodArray>; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>, z.ZodObject<{ type: z.ZodLiteral<"function">; id: z.ZodString; coefficients: z.ZodArray; xRange: z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, z.core.$strip>; color: z.ZodString; style: z.ZodEnum<{ solid: "solid"; dashed: "dashed"; }>; label: z.ZodPipe, z.ZodTransform>; }, z.core.$strict>], "type">; export type Polyline = z.infer; /** * Utility to render points using Canvas API. */ export declare function renderPoints(points: PlotPoint[], toSvgX: (v: number) => number, toSvgY: (v: number) => number, canvas: Canvas): void; /** * Utility to render lines with support for all equation types using Canvas API. */ export declare function renderLines(lines: Line[], xAxis: AxisOptions, yAxis: AxisOptions, toSvgX: (v: number) => number, toSvgY: (v: number) => number, canvas: Canvas): void; /** * Utility to render polygons that reference points by ID using Canvas API. */ export declare function renderPolygons(polygons: Polygon[], pointMap: Map, toSvgX: (v: number) => number, toSvgY: (v: number) => number, canvas: Canvas): void; /** * Utility to render distance visualizations between points using Canvas API. */ export declare function renderDistances(distances: Distance[], pointMap: Map, toSvgX: (v: number) => number, toSvgY: (v: number) => number, canvas: Canvas): void; /** * Utility to render polylines (function plots) using Canvas API. */ export declare function renderPolylines(polylines: Polyline[], toSvgX: (v: number) => number, toSvgY: (v: number) => number, canvas: Canvas): void; //# sourceMappingURL=canvas-utils.d.ts.map