/**
 * Unit cube centred at the origin, spanning `[-0.5, 0.5]` on every axis.
 *
 * @deprecated Use {@link BoxShape3D} instead — UnitCubeShape3D is now a thin
 * subclass that just pins `half_extents` to `(0.5, 0.5, 0.5)`. All geometry
 * (`support`, `signed_distance_at_point`, `volume`, `surface_area`,
 * `nearest_point_on_surface`, ...) is inherited from {@link BoxShape3D}.
 *
 * Kept only for:
 *   - the `UnitCubeShape3D.INSTANCE` shared singleton that scenes and tests
 *     embed by reference
 *   - the JSON `'cube'` type-tag round-trip in `shape_to_type` /
 *     `type_adapters` (an `instanceof` check, which is why we still need a
 *     distinct subclass rather than a constant `BoxShape3D` instance)
 *
 * For new code prefer:
 *   - `new BoxShape3D()` — also defaults to half-extents `(0.5, 0.5, 0.5)`
 *   - `BoxShape3D.from_size(w, h, d)` — express by full side lengths
 *   - `BoxShape3D.from(hx, hy, hz)` — express by half-extents
 */
export class UnitCubeShape3D extends BoxShape3D {
    /**
     * Shared singleton. Many call sites — JSON deserialisation, tests,
     * `TransformedShape3D.from_translation(UnitCubeShape3D.INSTANCE, ...)`
     * — embed this by reference rather than allocating a fresh cube.
     * @type {UnitCubeShape3D}
     */
    static INSTANCE: UnitCubeShape3D;
    /**
     * @deprecated Prefer dispatching on `isBoxShape3D`, which is `true` for both
     * UnitCubeShape3D (inherited via prototype chain) and {@link BoxShape3D}.
     * Retained so any older external code that already narrowed via this marker
     * keeps working.
     * @readonly
     * @type {boolean}
     */
    readonly isUnitCubeShape3D: boolean;
}
import { BoxShape3D } from "./BoxShape3D.js";
//# sourceMappingURL=UnitCubeShape3D.d.ts.map