import type { Space } from './core/convert.js'; /** A gamut-boundary curve to stroke over the plane. */ export interface BoundarySpec { points: { x: number; y: number; }[]; color: string; lineWidth: number; dash: number[]; } /** Sample an evenly-spaced [0,1]-indexed curve at `t`, linearly interpolated. */ export declare function sampleCurve(curve: Float64Array, t: number): number; export interface AreaRequest { hue: number; cssW: number; cssH: number; dpr: number; supportsP3: boolean; /** Gamut stretched to fill the canvas width. The plugin passes 'srgb' (the * sRGB-bound modes) or 'p3' (every wide mode); the primitive also accepts * wider. Every narrower gamut is drawn as an inner boundary line. */ stretch: Space; } export interface AreaResult { pixels: Uint8ClampedArray; W: number; H: number; backingW: number; backingH: number; /** Per-lightness max-chroma curve for the stretch gamut, for thumb placement. */ chromaCurve: Float64Array; boundaries: BoundarySpec[]; } /** Compute the plane: subsampled gradient pixels + full-res boundary lines. */ export declare function computeArea(req: AreaRequest): AreaResult;