import type { Vector3, Quaternion } from '@holoscript/core'; /** * DecalSystem.ts * * Projected decals: texture projection, sorting, atlas UV, * lifetime fade, object pooling, and layer filtering. * * @module rendering */ export interface DecalDef { id: string; textureId: string; atlasRegion?: { u: number; v: number; w: number; h: number; }; size: Vector3; position: Vector3; rotation: Quaternion; normal: Vector3; color: { r: number; g: number; b: number; a: number; }; layer: number; sortOrder: number; lifetime: number; fadeInDuration: number; fadeOutDuration: number; active: boolean; age: number; opacity: number; } export declare class DecalSystem { private decals; private pool; private maxDecals; private layerMask; setMaxDecals(max: number): void; getMaxDecals(): number; setLayerMask(mask: number): void; spawn(config: Partial & { textureId: string; position: DecalDef['position']; normal: DecalDef['normal']; }): DecalDef; remove(id: string): void; update(dt: number): void; getDecal(id: string): DecalDef | undefined; getActiveCount(): number; getPoolSize(): number; getVisible(frustumTest?: (pos: DecalDef['position']) => boolean): DecalDef[]; private getOldest; clear(): void; } //# sourceMappingURL=DecalSystem.d.ts.map