import type { GPUVegaCanvasContext } from '../types/context.js'; import type { PathGeometry } from '../types/geometry.js'; import type { SceneArcItem, SceneAreaItem, SceneShapeItem } from '../types/scene.js'; type AreaPoint = SceneAreaItem; export declare function arc(context: GPUVegaCanvasContext, item: SceneArcItem, scale?: number): PathGeometry; export declare function area(context: GPUVegaCanvasContext, items: AreaPoint[], scale?: number): PathGeometry; /** * Path geometry for a trail mark: one filled ribbon whose width follows each * point's `size`, which is what vega's own trail mark draws. */ export declare function trail(context: GPUVegaCanvasContext, items: AreaPoint[], scale?: number): PathGeometry; /** * Path geometry for a line mark, honouring `interpolate`, `tension` and the * `defined` gaps. Used when the line is not a plain polyline. */ export declare function line(context: GPUVegaCanvasContext, items: AreaPoint[]): PathGeometry; /** The path calls d3's generators make, for a consumer that is not a canvas. */ export interface PathSink { moveTo(x: number, y: number): void; lineTo(x: number, y: number): void; bezierCurveTo(x1: number, y1: number, x2: number, y2: number, x: number, y: number): void; closePath(): void; } /** * Runs the line generator straight into `sink`, so a caller that wants the * curve's own control points gets them without a path string in between. */ export declare function lineSpans(items: AreaPoint[], sink: PathSink): void; export declare function shape(context: GPUVegaCanvasContext, item: SceneShapeItem, scale?: number): PathGeometry; /** * Triangulated geometry for a vega symbol shape (square, cross, diamond, * triangle-*, arrow, wedge, stroke, or a custom SVG path) at the given size, * centered on the origin. `size` is the symbol area, matching the canvas * renderer's `pathSymbols` sizing. */ export declare function symbol(context: GPUVegaCanvasContext, shapeName: string, size: number, scale?: number): PathGeometry; export {};