import type { Color } from '../core/types'; import { World, System } from '../ecs/World'; import { Camera2D } from './Camera2D'; export interface RenderStats { drawCalls: number; entities: number; particles: number; fps: number; } export declare class Renderer2D { readonly canvas: HTMLCanvasElement; readonly ctx: CanvasRenderingContext2D; readonly camera: Camera2D; private _bgColor; private _textures; private _stats; private _debugDraw; private _particles; constructor(canvas: HTMLCanvasElement); set backgroundColor(c: Color); get backgroundColor(): Color; set debugDraw(v: boolean); get debugDraw(): boolean; get stats(): RenderStats; loadTexture(id: string, src: string): Promise; setTexture(id: string, source: HTMLImageElement | HTMLCanvasElement): void; getTexture(id: string): HTMLImageElement | HTMLCanvasElement | undefined; resize(width: number, height: number): void; render(world: World, interpolation: number): void; private drawSprite; private drawShape; private drawText; updateParticles(world: World, dt: number): void; private renderParticles; private renderDebug; } export declare class RenderSystem extends System { private renderer; constructor(renderer: Renderer2D, priority?: number); update(world: World, dt: number): void; }