/**
 * Sphere of arbitrary `radius`, centred at the body's local origin.
 *
 * Mirrors the {@link BoxShape3D} (arbitrary half-extents) ↔
 * {@link UnitCubeShape3D} (fixed 0.5) relationship: this is the general
 * parametrised sphere, and {@link UnitSphereShape3D} is the `radius = 1`
 * special case kept for the JSON `'sphere'` tag and the shared `INSTANCE`
 * singleton.
 *
 * The physics narrowphase recognises spheres via the shared `isSphereShape3D`
 * prototype marker and reads `radius`.
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
export class SphereShape3D extends AbstractShape3D {
    /**
     * Convenience constructor.
     * @param {number} radius
     * @returns {SphereShape3D}
     */
    static from(radius: number): SphereShape3D;
    /**
     * Sphere radius, in the body's local frame.
     * @type {number}
     */
    radius: number;
    support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
    compute_bounding_box(result: any): void;
    nearest_point_on_surface(result: any, reference: any): void;
    signed_distance_gradient_at_point(result: any, point: any): number;
    signed_distance_at_point(point: any): number;
    contains_point(point: any): boolean;
    sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
    equals(other: any): boolean;
    /**
     * Fast type-check marker. Lets the physics narrowphase short-circuit
     * sphere-involved pairs to closed-form solvers (reading `radius`) rather than
     * running GJK + EPA on a smooth surface (the EPA-degenerate case). `true` for
     * both {@link SphereShape3D} and {@link UnitSphereShape3D} (via the prototype
     * chain).
     * @readonly
     * @type {boolean}
     */
    readonly isSphereShape3D: boolean;
}
import { AbstractShape3D } from "./AbstractShape3D.js";
//# sourceMappingURL=SphereShape3D.d.ts.map