/** Utility functions with legacy browser fallbacks */ export declare function now(): number; export declare function requestFrame(callback: FrameRequestCallback): number; export declare function cancelFrame(id: number): void; export declare function clamp(value: number, min: number, max: number): number; export declare function lerp(a: number, b: number, t: number): number; export declare function degToRad(deg: number): number; export declare function radToDeg(rad: number): number; export declare function uid(prefix?: string): string; export { type RgbaColor, tryParseColor, parseColor, colorWithAlpha, mixColors, interpolateColor, isCssColorString, } from './color'; export declare function resolveContainer(container: string | HTMLElement): HTMLElement; export declare function getPixelRatio(): number; export declare function merge>(target: T, ...sources: Partial[]): T; export declare function shallowEqual(a: Record, b: Record): boolean; /** Object pool for reducing GC pressure */ export declare class ObjectPool { private pool; private factory; private reset; constructor(factory: () => T, reset: (obj: T) => void, initialSize?: number); acquire(): T; release(obj: T): void; } /** 2D matrix for transforms */ export declare class Matrix2D { a: number; b: number; c: number; d: number; e: number; f: number; identity(): this; translate(x: number, y: number): this; scale(sx: number, sy: number): this; rotate(angleRad: number): this; skew(skewX: number, skewY: number): this; multiply(other: Matrix2D): this; transformPoint(x: number, y: number): { x: number; y: number; }; invert(): Matrix2D | null; /** Invert into an existing matrix (avoids allocation when paired with pool). */ invertInto(out: Matrix2D): Matrix2D | null; copyFrom(other: Matrix2D): this; toCSS(): string; } /** Shared matrix pool for hit testing hot paths */ export declare const matrixPool: ObjectPool; export declare function detectBestRenderer(): 'canvas' | 'svg' | 'html';