export type HighlightPoint = Readonly<{ /** Center in *device pixels* (same coordinate space as fragment `@builtin(position)`). */ centerDeviceX: number; centerDeviceY: number; /** Device pixel ratio used for CSS→device conversion (worker-safe). */ devicePixelRatio: number; /** Canvas dimensions in *device pixels* (used to reset scissor). */ canvasWidth: number; canvasHeight: number; /** Plot scissor rect in *device pixels*. */ scissor: Readonly<{ x: number; y: number; w: number; h: number; }>; }>; export interface HighlightRenderer { /** * Prepares the highlight ring. * * Coordinate contract: * - `point.centerDeviceX/Y` are device pixels in the same space as fragment `@builtin(position)`. * - `size` is specified in CSS pixels; the renderer will scale it by `point.devicePixelRatio`. */ prepare(point: HighlightPoint, color: string, size: number): void; render(passEncoder: GPURenderPassEncoder): void; setVisible(visible: boolean): void; dispose(): void; } export interface HighlightRendererOptions { /** * Must match the canvas context format used for the render pass color attachment. * Usually this is `gpuContext.preferredFormat`. * * Defaults to `'bgra8unorm'` for backward compatibility. */ readonly targetFormat?: GPUTextureFormat; } export declare function createHighlightRenderer(device: GPUDevice, options?: HighlightRendererOptions): HighlightRenderer; //# sourceMappingURL=createHighlightRenderer.d.ts.map