/** * ImpostorSystem.ts * * Billboard impostors: capture snapshots, angle-based selection, * atlas packing, and distance threshold management. * * @module lod */ export interface ImpostorConfig { entityId: string; angleCount: number; atlasIndex: number; switchDistance: number; size: { width: number; height: number; }; } export interface ImpostorFrame { angleIndex: number; uvX: number; uvY: number; uvW: number; uvH: number; } export declare class ImpostorSystem { private impostors; private atlasColumns; private atlasRows; constructor(atlasColumns?: number, atlasRows?: number); registerImpostor(config: ImpostorConfig): void; removeImpostor(entityId: string): void; selectAngle(entityId: string, cameraAngle: number): ImpostorFrame | null; private getFrame; shouldUseImpostor(entityId: string, distance: number): boolean; getImpostorCount(): number; getConfig(entityId: string): ImpostorConfig | undefined; } //# sourceMappingURL=ImpostorSystem.d.ts.map