import { Euler, EulerOrder, EulerTuple } from 'three'; export type EulerLike = { x: number; y: number; z: number; order?: EulerOrder; }; /** * Converts degrees to radians */ export declare function deg2rad(rotation: Euler | EulerLike): EulerLike; /** * Converts radians to degrees */ export declare function rad2deg(rotation: Euler | EulerLike): EulerLike; /** * Converts various rotation formats to a Three.js Euler instance. * Memoizes the result to prevent unnecessary re-renders. * * @param rotation - Rotation in various formats * @param from - Unit of the input values: "deg" for degrees, "rad" for radians (default: "rad") * @returns Three.js Euler instance or null * * @example * // From object with x, y, z in degrees * const rot = useEuler({ x: 90, y: 0, z: 0 }, "deg"); // Returns: Euler(1.57, 0, 0) * * @example * // From array in radians (default) * const rot = useEuler([Math.PI/2, 0, 0]); // Returns: Euler(1.57, 0, 0) * * @example * // From array in degrees * const rot = useEuler([90, 0, 0], "deg"); // Returns: Euler(1.57, 0, 0) * * @example * // From array with order * const rot = useEuler([0, Math.PI, 0, 'XYZ']); // Returns: Euler(0, 3.14, 0, 'XYZ') * * @example * // From undefined/null * const rot = useEuler(undefined); // Returns: undefined */ export declare const useEuler: (rotation?: EulerLike | EulerTuple | null, from?: "deg" | "rad") => Euler | undefined; export declare const useEulerTuple: (rotation?: EulerLike | EulerTuple | null, from?: "deg" | "rad") => EulerTuple | undefined;