import type { Renderer } from "./renderer"; type Color = { r: number; g: number; b: number; a: number; }; /** * Renders simple shapes using Batching and on a single draw call with instanced drawing */ export declare class BatchRenderer { private renderer; static readonly INSTANCE_STRIDE = 15; private maxInstances; private buffer; private cursor; constructor(renderer: Renderer, maxInstances?: number); /** * Must be called once before drawing any shapes */ beginFrame(): void; /** * Must be called once after drawing all your shapes */ endFrame(): void; /** * Begins a mask mode * Must be called once before drawing a mask * * @example * * ```ts * batch.pushMask() * // draw mask * batch.fillRect(\/\* \*\/) * batch.endMask() * // draw shapes that the mask will be applied to * batch.fillRect(\/\* \*\/) * batch.popMask() * ``` * */ pushMask(): void; /** * Ends a mask mode * Must be called once after drawing your masked shapes */ popMask(): void; /** * Ends the mask region definition * Must be called once in between pushMask and popMask */ endMask(): void; private ensureCapacity; private pushInstance; /** Fill rectangle (no stroke). rotation in radians. */ fillRect(x: number, y: number, w: number, h: number, color: Color, rotation?: number): void; /** Round rect fill */ fillRoundRect(x: number, y: number, w: number, h: number, radiusPx: number, color: Color, rotation?: number): void; /** Stroke a rectangle (or any shape). strokeWidth is in px. dash: [dashLen,gapLen] */ strokeRoundRect(x: number, y: number, w: number, h: number, radiusPx: number, strokeWidth: number, color: Color, dash?: [number, number], rotation?: number): void; /** Stroke rectangle without rounded corners using roundRect SDF with radius=0 */ strokeRect(x: number, y: number, w: number, h: number, strokeWidth: number, color: Color, dash?: [number, number], rotation?: number): void; /** Stroke circle */ fillCircle(x: number, y: number, radius: number, color: Color, dash?: [number, number]): void; /** Stroke circle */ strokeCircle(x: number, y: number, radius: number, strokeWidth: number, color: Color, dash?: [number, number]): void; /** * Stroke line with round caps (capsule). * (x1,y1) -> (x2,y2) * thickness = total pixel thickness * dash optional */ strokeLine(x1: number, y1: number, x2: number, y2: number, thickness: number, color: Color, dash?: [number, number]): void; flush(): void; } export {}; //# sourceMappingURL=BatchRenderer.d.ts.map