export type MassingComposition = "bar" | "split" | "cluster" | "stack" | "court" | "bridge" | "ring" | "capsule" | "megastructure"; export declare const MASSING_COMPOSITIONS: readonly MassingComposition[]; export type MassingProfile = "straight" | "stepped" | "tapered" | "top-heavy" | "offset" | "twisted"; export declare const MASSING_PROFILES: readonly MassingProfile[]; export type MassingSpec = { seed: string; width: number; height: number; depth: number; floorHeight: number; baySpacing: number; pilotis: number; podiumHeight: number; cores: number; terraces: number; cantilever: number; voids: number; taper: number; articulation: number; crown: number; moduleDensity: number; branches: number; composition: MassingComposition; profile: MassingProfile; }; export type MassingBodyRole = "mass" | "core" | "transfer"; export type MassingBody = { x: number; y: number; z: number; w: number; h: number; d: number; ry?: number; facade?: boolean; kind?: "box" | "capsule"; role?: MassingBodyRole; branch?: boolean; crown?: boolean; }; export declare const hashMassingSeed: (text: string) => number; export declare const massingBase: (spec: Pick, cap?: number) => number; export declare const isVillageMassing: (spec: Pick) => boolean; export declare function massingFloorCount(spec: Pick): number; export declare function composeMassing(b: MassingSpec): MassingBody[];