import * as Geom from './geom.js'; import { Plugin, PluginApi } from './plugins.js'; export interface CanvasOptions { element: HTMLElement; } export type LazyCanvasOptions = string | HTMLElement | CanvasOptions; export type HtmlCanvasContext = CanvasRenderingContext2D; export interface HtmlCanvasApi extends PluginApi { /** Returns the underlying canvas element. */ get element(): HTMLCanvasElement; clientToCanvas(clientPos: Geom.Point): Geom.Point; canvasToClient(renderPos: Geom.Point): Geom.Point; } export declare class HtmlCanvas implements Plugin { onchange: () => void; private _container?; private _offscreenCanvas; private _offscreenContext; private _mainCanvas; private _context; private _resizeObserver; private _prevUpdateHash; private _scaleFactor; private _cssWidth; private _cssHeight; meta: { name: string; }; get api(): HtmlCanvasApi; static extractOptions(options: unknown): CanvasOptions; constructor(options: CanvasOptions); destruct(): void; get element(): HTMLCanvasElement; get context(): CanvasRenderingContext2D; calcSize(): Geom.Point; frameBegin(): void; frameEnd(): void; private _clientRect; private _canvasScale; private _clientToCanvas; private _canvasToClient; private _toCanvasElement; private _createResizeObserverFor; }