import { Renderer, type RenderContext } from './Renderer'; import type { Group } from '../shapes/Group'; import { Rect, Circle, Ellipse, Line, Arc, Polygon, Polyline, Path, Star, TextNode, ImageNode, Sprite } from '../shapes/index'; import { Matrix2D } from '../utils'; import { LayerCache } from '../performance/LayerCache'; export declare class CanvasRenderer extends Renderer { private canvas; private ctx; private patternCache; readonly layerCache: LayerCache; batchRendering: boolean; dirtyRegionsEnabled: boolean; layerCacheEnabled: boolean; /** Exposed for tests — number of clearRect calls in last render. */ lastClearRectCount: number; /** Exposed for tests — fill calls in last render. */ lastFillCallCount: number; private drawCallCount; private bgImage; private bgImageKey; private lastRoot; private lastCamera; init(container: HTMLElement, options: RenderContext): void; resize(width: number, height: number, pixelRatio: number): void; getElement(): HTMLCanvasElement; render(root: Group, cameraMatrix?: Matrix2D): void; private paintBackground; private ensureBackgroundImage; private clearSceneDirty; toDataURL(type?: string, quality?: number): string; destroy(): void; drawGroup(group: Group): void; private drawGroupBatched; private drawRectBatch; private renderGroupToCache; private drawNode; private drawFocusRing; private resolveFill; private resolveStroke; drawRect(node: Rect): void; drawCircle(node: Circle): void; drawEllipse(node: Ellipse): void; drawLine(node: Line): void; drawArc(node: Arc): void; drawPolygon(node: Polygon): void; drawPolyline(node: Polyline): void; drawPath(node: Path): void; drawStar(node: Star): void; drawText(node: TextNode): void; drawImage(node: ImageNode): void; drawSprite(node: Sprite): void; getLastDrawCallCount(): number; private roundRect; private fillAndStroke; private setFill; private applyStroke; }