/**
 * A solid right circular cylinder aligned with the Y axis, centred at the local
 * origin. A disk of {@link radius} extruded along Y for {@link height}, so it
 * spans `y ∈ [-height/2, +height/2]` with **flat** circular caps (the capsule's
 * flat-cap sibling — same radius/height parametrisation, hemispherical caps
 * replaced by disks).
 *
 * Convex, so the physics narrowphase handles it through the GJK + EPA fallback
 * via {@link support} — there is no closed-form cylinder-vs-X contact path yet
 * (a future refinement; the curved side is the usual smooth-support EPA case).
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
export class CylinderShape3D extends AbstractShape3D {
    /**
     * @param {number} radius
     * @param {number} height
     * @returns {CylinderShape3D}
     */
    static from(radius: number, height: number): CylinderShape3D;
    /**
     * Radius of the circular cross-section.
     * @type {number}
     */
    radius: number;
    /**
     * Full height along the Y axis (total extent — the cylinder spans
     * `[-height/2, +height/2]`).
     * @type {number}
     */
    height: number;
    compute_bounding_box(result: any): void;
    support(result: any, result_offset: any, direction_x: any, direction_y: any, direction_z: any): void;
    signed_distance_at_point(point: any): number;
    signed_distance_gradient_at_point(result: any, point: any): number;
    contains_point(point: any): boolean;
    nearest_point_on_surface(result: any, reference: any): void;
    sample_random_point_in_volume(result: any, result_offset: any, random: any): void;
    /**
     * @param {CylinderShape3D} other
     * @returns {boolean}
     */
    equals(other: CylinderShape3D): boolean;
    /**
     * Fast type-check marker, mirroring `isSphereShape3D` / `isBoxShape3D` /
     * `isCapsuleShape3D`. Reserved for a future closed-form cylinder narrowphase
     * dispatch; until then the cylinder routes through GJK + EPA like any other
     * convex shape (no marker check needed for that path).
     * @readonly
     * @type {boolean}
     */
    readonly isCylinderShape3D: boolean;
}
import { AbstractShape3D } from "./AbstractShape3D.js";
//# sourceMappingURL=CylinderShape3D.d.ts.map