import type { Vector3 } from '@holoscript/core'; /** * TerrainTexturing.ts * * Splatmap blending: multi-layer texturing, triplanar mapping, * detail layers, and texture weights. * * @module terrain */ export interface TerrainLayer { id: string; textureId: string; normalMapId?: string; tiling: { x: number; y: number; }; metallic: number; roughness: number; heightBlend: boolean; } export interface SplatmapData { width: number; height: number; channels: Float32Array[]; } export interface TriplanarConfig { sharpness: number; tiling: number; enabled: boolean; } export declare class TerrainTexturing { private layers; private splatmap; private triplanar; private detailLayers; addLayer(layer: TerrainLayer): void; getLayer(index: number): TerrainLayer | undefined; getLayerCount(): number; removeLayer(id: string): void; createSplatmap(width: number, height: number, channelCount?: number): SplatmapData; paintSplatmap(channel: number, x: number, z: number, radius: number, strength: number, _heightMap?: Float32Array): void; private normalizeSplatAt; getSplatWeights(x: number, z: number): number[]; setTriplanar(config: Partial): void; getTriplanar(): TriplanarConfig; computeTriplanarWeights(normal: Vector3): Vector3; addDetailLayer(layerIndex: number, distance: number, tiling: number): void; getDetailLayers(): typeof this.detailLayers; } //# sourceMappingURL=TerrainTexturing.d.ts.map