import { Vector2, Vector3 } from 'three'; export type InputType = Vector2 | Vector3; export type Generator = (input: InputType) => number; type Harmonic = { period: number; amplitude: number; }; export declare enum NoiseDimension { Two = 0, Three = 1, Four = 2 } type NoiseHarmonicsSettings = { count: number; spread: number; gain: number; }; export type NoiseSamplerParams = { seed: string; periodicity: number; harmonics: NoiseHarmonicsSettings; dimensions: NoiseDimension; scaling: number; spreading: number; }; export declare class NoiseSampler { static instances: NoiseSampler[]; harmonics: Harmonic[]; harmonicsAmplitudeSum: number; noiseSource: any; params: NoiseSamplerParams; shadowParams: {}; stats: {}; parent: any; constructor(seed?: string, name?: string, noiseDimension?: NoiseDimension); init(): void; get harmonicsCount(): number; set harmonicsCount(count: number); get harmonicGain(): number; set harmonicGain(gain: number); get harmonicSpread(): number; set harmonicSpread(spread: number); get periodicity(): number; set periodicity(val: number); get seed(): string | null | undefined; set seed(seed: string | null | undefined); onChange(_originator: any): void; rawEval(x: number, y: number, z?: number, t?: number): number; eval(rawInput: Vector3): number; } export declare class VolumetricDensity extends NoiseSampler { params2: { spreading: number; scaling: number; }; constructor(seed: string); /** * * @param blockData * @param includeSea * @returns */ getBlockDensity(blockPos: Vector3, threshold: number): boolean; } export declare class CavernsVolumetricDensity extends VolumetricDensity { /** * * @param blockData * @param includeSea * @returns */ getBlockDensity(blockPos: Vector3, groundLevel?: number): boolean; } export {};