import type { WorldSolid, WorldSolids } from "./worldSolids.js"; type Vec3Like = { x: number; y: number; z: number; }; /** Minimal editor document shape {@link resolveAuthoredSolids} walks; any `EditorDocument` satisfies it. */ export interface AuthoredSolidsDocumentLike { markers: readonly { id: string; kind: string; position: Vec3Like; rotationY?: number; meta?: Record; }[]; volumes: readonly { id: string; kind: string; center: Vec3Like; halfExtents?: Vec3Like; radius?: number; meta?: Record; }[]; paths: readonly { id: string; kind: string; points: readonly Vec3Like[]; meta?: Record; }[]; } /** Layer prefix `syncAuthoredSolids` owns in `ctx.world.solids`; one layer per document object. */ export declare const AUTHORED_SOLID_LAYER_PREFIX = "authored:"; /** * Solids for every document object whose scene kind declares `solids`, keyed by object id. Objects * whose kind has no `solids` hook, or whose hook returns none, are left out. * @capability authored-solids collision for studio-authored world content such as city volumes */ export declare function resolveAuthoredSolids(document: AuthoredSolidsDocumentLike, sampleHeight?: (x: number, z: number) => number): Map; /** * Write a document's studio solids into `solids` (usually `ctx.world.solids`), one * `authored:` layer per object, dropping authored layers the document no longer has. * Call again whenever the document changes. * @capability authored-solids collision for studio-authored world content such as city volumes */ export declare function syncAuthoredSolids(solids: WorldSolids, document: AuthoredSolidsDocumentLike, sampleHeight?: (x: number, z: number) => number): void; export {};