import * as THREE from 'three'; import type { BaseScatterConfig, LODConfig, NoiseDistributionConfig, DensityMapConfig, ScatterEvents } from '../core'; /** * Serialized scatter system data */ export interface ScatterSaveData { /** System type identifier */ type: string; /** Serialized configuration */ config: SerializedScatterConfig; /** Snapshot of instance transforms (optional) */ instances?: SerializedInstance[]; } /** * Serialized instance transform */ export interface SerializedInstance { position: [number, number, number]; rotation: [number, number, number]; scale: [number, number, number]; } /** * Serialized configuration (JSON-safe version of BaseScatterConfig) */ export interface SerializedScatterConfig { density: number; maxInstances?: number; visibilityRange: number; chunkSize?: number; scaleRange?: [number, number]; rotationRange?: [number, number]; heightOffset?: number; alignToNormal?: boolean; randomSeed?: number; showChunksDebug?: boolean; noiseDistribution?: NoiseDistributionConfig; lod?: LODConfig; densityMap?: Omit & { worldBounds: { min: [number, number]; max: [number, number]; }; }; [key: string]: unknown; } /** * Utility class for serializing and deserializing scatter system configurations */ export declare class ScatterSerializer { /** * Serialize a BaseScatterConfig to a JSON-safe object */ static serializeConfig(config: BaseScatterConfig): SerializedScatterConfig; /** * Deserialize a configuration back to Three.js objects */ static deserializeConfig(serialized: SerializedScatterConfig, source: THREE.Mesh | THREE.Group, events?: ScatterEvents): BaseScatterConfig; /** * Serialize to JSON string */ static toJSON(config: BaseScatterConfig, type: string): string; /** * Deserialize from JSON string */ static fromJSON(json: string, source: THREE.Mesh | THREE.Group, events?: ScatterEvents): { type: string; config: BaseScatterConfig; }; } //# sourceMappingURL=ScatterSerializer.d.ts.map