import type { MultiFn3 } from "@thi.ng/defmulti";
import type { ReadonlyVec } from "@thi.ng/vectors";
import type { IShape3 } from "./api.js";
export type RotateAroundAxisFn = {
    <T extends IShape3>(shape: T, axis: ReadonlyVec, theta: number): T;
} & MultiFn3<IShape3, ReadonlyVec, number, IShape3>;
/**
 * Rotates given 3D shape by `theta` (in radians) around `axis`.
 *
 * @remarks
 * Currently implemented for:
 *
 * - {@link Cubic3}
 * - {@link Group3}
 * - {@link Polygon3}
 * - {@link Polyline3}
 * - {@link Line3}
 * - {@link Path3}
 * - {@link Points3}
 * - {@link Quad3}
 * - {@link Quadratic3}
 * - {@link Ray3}
 * - {@link Triangle3}
 *
 * @param shape
 * @param axis
 * @param theta
 */
export declare const rotateAroundAxis: RotateAroundAxisFn;
export declare const rotateX: (shape: IShape3, theta: number) => IShape3;
export declare const rotateY: (shape: IShape3, theta: number) => IShape3;
export declare const rotateZ: (shape: IShape3, theta: number) => IShape3;
//# sourceMappingURL=rotate-around-axis.d.ts.map