export function loadImage(path: any): Promise<{ width: number; height: number; data: Uint8Array; }>; export function profile(name: any, fn: any): any; export function profileAsync(name: any, fn: any): Promise; /** * minimal hot-reloader - treats game module as a hot-swappable DLL * * @param {Object} options * @param {string} options.entry - Path to game module * @param {boolean} [options.watch=true] - Enable file watching * @param {number} [options.debounce=100] - Debounce ms for file changes * @param {string[]} [options.watchFiles=[]] - Additional files to watch for changes * @returns {Promise} Game module proxy */ export function hotloader(state: any, options: { entry: string; watch?: boolean; debounce?: number; watchFiles?: string[]; }): Promise; /** * Clamp a rectangle to canvas bounds * Returns null if completely outside canvas */ export function clampRectToCanvas(x: any, y: any, width: any, height: any, canvasWidth: any, canvasHeight: any): { x: number; y: number; width: number; height: number; }; /** * Check if a pixel should be drawn (canvas + viewport clipping) * @param {Camera2D} camera */ export function shouldDrawPixel(x: any, y: any, canvas: any, camera: Camera2D): boolean; /** * optimized drawAtlasRegionToCanvas with micro-optimized fast paths. * * @param {{data: Uint8Array, width: number, height: number}} atlas * @param {{x: number, y: number, width: number, height: number}} srcRect * @param {PixelBuffer} canvas * @param {{x: number, y: number, width: number, height: number}} destRect * @param {{algorithm?: "bilinear" | "nn", flipH?: boolean, flipV?: boolean, modulate?: {r:number,g:number,b:number,a:number}, assumeOpaque?: boolean, camera?: Camera2D}} options */ export function drawAtlasRegionToCanvas(atlas: { data: Uint8Array; width: number; height: number; }, srcRect: { x: number; y: number; width: number; height: number; }, canvas: PixelBuffer, destRect: { x: number; y: number; width: number; height: number; }, options?: { algorithm?: "bilinear" | "nn"; flipH?: boolean; flipV?: boolean; modulate?: { r: number; g: number; b: number; a: number; }; assumeOpaque?: boolean; camera?: Camera2D; }): void; export const globalPerf: Profiler; export function getModulePaths(): { __filename: string; __dirname: string; require: NodeJS.Require | (() => never); }; import { PixelBuffer } from "tessera.js"; declare class Profiler { scopePool: ScopeData[]; poolIndex: number; scopeStack: any[]; currentScope: any; rootScopes: any[]; frameCount: number; frameTimes: any[]; frameStart: number; scopeStats: Map; enabled: boolean; mismatchCount: number; acquireScope(name: any): ScopeData; start(name: any): void; _finalizeScope(scope: any): void; end(name: any): void; frame(): void; getStats(name: any): any; getAllStats(): any[]; percentile(samples: any, p: any): any; report(): void; exportTrace(): string; reset(): void; enable(): void; disable(): void; } declare class ScopeData { name: string; depth: number; startTime: number; endTime: number; duration: number; parent: any; children: any[]; callCount: number; totalTime: number; minTime: number; maxTime: number; samples: any[]; reset(): void; resetStats(): void; } export {};