import { BlockState } from '../core/index.js'; import type { PositionalRandom } from '../math/index.js'; import { DensityFunction } from './DensityFunction.js'; import { DensityVolume } from './DensityVolume.js'; export interface AquiferConfig { barrier: DensityFunction; fluidLevelFloodedness: DensityFunction; fluidLevelSpread: DensityFunction; lava: DensityFunction; exclusion: DensityFunction; surfaceLevel: DensityFunction; } export declare namespace AquiferConfig { function fromJson(obj: unknown): AquiferConfig; function mapAll(config: AquiferConfig, visitor: DensityFunction.Visitor): AquiferConfig; } export declare class FluidStatus { readonly level: number; readonly type: BlockState; constructor(level: number, type: BlockState); at(level: number): BlockState; } export declare type FluidPicker = (x: number, y: number, z: number) => FluidStatus; export interface Aquifer { computeSubstance(blockX: number, blockY: number, blockZ: number, density: number): BlockState | undefined; } export declare namespace Aquifer { function createDisabled(fluidPicker: FluidPicker): Aquifer; } export declare class NoiseAquifer implements Aquifer { private readonly config; private readonly random; private readonly volume; private readonly globalFluidPicker; private static readonly X_SPACING; private static readonly Y_SPACING; private static readonly Z_SPACING; private static readonly SURFACE_SAMPLING; private readonly minGridX; private readonly minGridY; private readonly minGridZ; private readonly maxGridX; private readonly maxGridY; private readonly maxGridZ; private readonly gridSizeX; private readonly gridSizeY; private readonly gridSizeZ; private readonly aquiferCache; private readonly aquiferLocationCache; private readonly surfaceLevelCache; private readonly skipSamplingAboveY; constructor(config: AquiferConfig, random: PositionalRandom, volume: DensityVolume, globalFluidPicker: FluidPicker); computeSubstance(blockX: number, blockY: number, blockZ: number, density: number): BlockState | undefined; private static similarity; private calculatePressure; private getAquiferStatus; private computeFluid; private surfaceLevel; private maxSurfaceLevel; private adjustSurfaceLevel; private computeSurfaceLevel; private computeRandomizedFluidSurfaceLevel; private computeFluidType; private getIndex; private gridX; private fromGridX; private gridY; private fromGridY; private gridZ; private fromGridZ; } //# sourceMappingURL=Aquifer.d.ts.map