import { type Dyadic } from "./dyadic.js"; import { type OctreePath } from "./octreePath.js"; export type Material = "stone" | "wood" | "water"; export interface MaterialCell { path: OctreePath; material: Material; volume: Dyadic; rotation?: readonly [number, number, number]; } export interface QuickSlot { material: Material | null; amount: Dyadic; } export interface WorldModel { cells: ReadonlyMap; slots: readonly QuickSlot[]; selectedSlot: number; viewDepth: ReadonlyMap; } export declare function createWorldModel(): WorldModel; export declare function setSelectedSlot(model: WorldModel, selectedSlot: number): WorldModel; export declare function setViewDepth(model: WorldModel, root: string, depth: number): WorldModel; export declare function materializeCell(model: WorldModel, target: OctreePath): WorldModel | undefined; export declare function mineCell(model: WorldModel, target: OctreePath): WorldModel | undefined; export declare function placeCell(model: WorldModel, target: OctreePath): WorldModel | undefined; export declare function moveCell(model: WorldModel, source: OctreePath, target: OctreePath, rotation?: readonly [number, number, number]): WorldModel | undefined; export declare function materialTotal(model: WorldModel, material: Material): Dyadic; export declare function semanticWorldHash(model: WorldModel): string; export declare function sameMaterialTotal(a: WorldModel, b: WorldModel, material: Material): boolean; export declare function canAfford(slot: QuickSlot, amount: Dyadic): boolean; //# sourceMappingURL=model.d.ts.map