import { Color, Group, Texture, Vector3, InstancedMesh, Material, Matrix4, Camera } from 'three'; export declare const CLOUD_URL = "https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png"; type CloudState = { ref: Group; uuid: string; index: number; segments: number; dist: number; matrix: Matrix4; bounds: Vector3; position: Vector3; volume: number; length: number; speed: number; growth: number; opacity: number; fade: number; density: number; rotation: number; rotationFactor: number; color: Color; }; type CloudsProps = { texture?: Texture | undefined; limit?: number; range?: number; material?: typeof Material; frustumCulled?: boolean; }; type CloudProps = { seed?: number; segments?: number; bounds?: Vector3; concentrate?: 'random' | 'inside' | 'outside'; scale?: Vector3; volume?: number; smallestVolume?: number; distribute?: ((cloud: CloudState, index: number) => { point: Vector3; volume?: number; }) | null; growth?: number; speed?: number; fade?: number; opacity?: number; color?: Color; }; export declare class Clouds extends Group { ref: Group; instance: InstancedMesh; cloudMaterial: Material; update: (camera: Camera, time: number, delta: number) => void; constructor({ limit, range, material, texture, frustumCulled }?: CloudsProps); } export declare class Cloud extends Group { seed: number; segments: number; bounds: Vector3; concentrate: string; volume: number; smallestVolume: number; distribute: ((cloud: CloudState, index: number) => { point: Vector3; volume?: number | undefined; }) | null; growth: number; speed: number; fade: number; opacity: number; color: Color; ref: any; cloudStateArray: CloudState[]; constructor({ opacity, speed, bounds, segments, color, fade, volume, smallestVolume, distribute, growth, concentrate, seed, }?: CloudProps); updateCloudStateArray(): void; updateCloud(): void; } export {};