import { Material, Prefab, Vec3 } from '@hiberworld/code-kit';
import { IDefaultOptions } from '../types';
export interface IScapeOptions extends IDefaultOptions {
    spaceSize: number;
    spaceSizeDiff: number;
    gapFreq: number;
    gapSize: number;
    gapSizeDiff: number;
    boundaryMin: number;
    boundaryMax: number;
    areaSize: number;
    size: number;
    itemScale: Vec3;
    itemScaleDiff: Vec3;
    prefabId: Prefab | Prefab[];
    material: Material | Material[] | undefined;
    tiltiness: number;
    randomRotation: boolean;
    seed?: number;
    onEach?: Function | undefined;
}
/**
 * The getScape function is a helper that is used to distribute objects in a specific area.
 * It takes an optional IScapeOptions object as a parameter that specifies various settings for the scape such as
 * spaceSize, spaceSizeDiff, gapFreq, gapSize, gapSizeDiff, boundaryMin, boundaryMax, areaSize, size, itemScale,
 * itemScaleDiff, prefabId, material, tiltiness, randomRotation, seed, and onEach.
 * The function returns a wrapper containing the objects distributed according to the specified settings.
 * The function uses a Packer class to distribute the objects and applies rotation, scale, and material properties to them.
 * More info in [README](README.md)
 * @example
 * ```
  addTo(root, getScape({ ...SCAPE_PRESETS.mediumDist, ...{ prefabId: 'rock_01_t4' } }));
 * ```
 */
export declare const getScape: (opt?: Partial<IScapeOptions>) => import("@hiberworld/code-kit").HNode;
//# sourceMappingURL=getScape.d.ts.map