import { type TerrainHeightfieldFixture } from "./TerrainFixtures";
export type VegetationFixtureLayer = "tree" | "grass" | "shrub";
export type VegetationFixtureLod = "mesh" | "impostor" | "culled";
export interface VegetationFixtureOptions {
    readonly terrain: TerrainHeightfieldFixture;
    readonly seed?: number;
    readonly cameraX?: number;
    readonly elapsedSeconds?: number;
    readonly maxInstances?: number;
}
export interface VegetationFixtureInstance {
    readonly id: string;
    readonly layer: VegetationFixtureLayer;
    readonly x: number;
    readonly y: number;
    readonly z: number;
    readonly scale: number;
    readonly rotation: number;
    readonly distanceToCamera: number;
    readonly lod: VegetationFixtureLod;
    readonly windOffsetX: number;
    readonly windOffsetZ: number;
}
export interface VegetationLSystemBranchSegment {
    readonly instanceId: string;
    readonly startX: number;
    readonly startY: number;
    readonly startZ: number;
    readonly endX: number;
    readonly endY: number;
    readonly endZ: number;
    readonly width: number;
    readonly depth: number;
}
export interface VegetationLSystemFixture {
    readonly source: "origin-master-lsystem-turtle-adapted";
    readonly axiom: "F";
    readonly rule: "F -> F[+F][-F]!F";
    readonly iterations: number;
    readonly generatedSymbolLength: number;
    readonly branchSegmentCount: number;
    readonly renderedBranchSegmentCount: number;
    readonly branchTipCount: number;
    readonly maxDepth: number;
    readonly hash: string;
    readonly segments: readonly VegetationLSystemBranchSegment[];
    readonly claimBoundary: string;
}
export interface VegetationFixtureSample {
    readonly id: "external-parity-old-branch-vegetation-fixture";
    readonly source: "origin-master-vegetation-system-adapted";
    readonly seed: number;
    readonly instanceCount: number;
    readonly visibleCount: number;
    readonly culledCount: number;
    readonly meshLodCount: number;
    readonly impostorLodCount: number;
    readonly treeCount: number;
    readonly grassCount: number;
    readonly shrubCount: number;
    readonly maxWindOffset: number;
    readonly instances: readonly VegetationFixtureInstance[];
    readonly lsystem: VegetationLSystemFixture;
    readonly hash: string;
    readonly claimBoundary: string;
}
export declare function sampleVegetationFixture(options: VegetationFixtureOptions): VegetationFixtureSample;
//# sourceMappingURL=VegetationFixtures.d.ts.map