/**
 * @author @thkruz Theodore Kruczek
 * @license AGPL-3.0-or-later
 * @copyright (c) 2025 Kruczek Labs LLC
 *
 * Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Affero General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License along with
 * Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
 */
import { Degrees, Matrix, Radians, Vector3D } from '../main.js';
export declare class EulerAngles {
    roll: number;
    pitch: number;
    yaw: number;
    /**
     * Create a new EulerAngles object from roll, pitch, and yaw angles in radians.
     * @param roll Roll angle in radians.
     * @param pitch Pitch angle in radians.
     * @param yaw Yaw angle in radians.
     */
    constructor(roll: Radians, pitch: Radians, yaw: Radians);
    /**
     * Create a new EulerAngles object from roll, pitch, and yaw angles.
     * @param rollDeg Roll angle in degrees.
     * @param pitchDeg Pitch angle in degrees.
     * @param yawDeg Yaw angle in degrees.
     * @returns EulerAngles object.
     */
    static fromDegrees(rollDeg: Degrees, pitchDeg: Degrees, yawDeg: Degrees): EulerAngles;
    /**
     * Create a new EulerAngles object from 3-2-1 ordered direction cosine matrix c.
     * @param c 3-2-1 ordered direction cosine matrix.
     * @returns EulerAngles object.
     */
    static fromDcm321(c: Matrix): EulerAngles;
    /**
     * Gets the roll angle in degrees.
     * @returns The roll angle in degrees.
     */
    get rollDegrees(): Degrees;
    /**
     * Gets the pitch angle in degrees.
     * @returns The pitch angle in degrees.
     */
    get pitchDegrees(): Degrees;
    /**
     * Gets the yaw angle in degrees.
     * @returns The yaw angle in degrees.
     */
    get yawDegrees(): Degrees;
    /**
     * Gets the roll angle in radians.
     * @returns The roll angle in radians.
     */
    get phi(): Radians;
    /**
     * Gets the pitch angle in radians.
     * @returns The pitch angle in radians.
     */
    get theta(): Radians;
    /**
     * Gets the yaw angle in radians.
     * @returns The yaw angle in radians.
     */
    get psi(): Radians;
    /**
     * Gets the roll component in degrees.
     * @returns The roll component in degrees.
     */
    get phiDegrees(): Degrees;
    /**
     * Gets the pitch component in degrees.
     * @returns The pitch component in degrees.
     */
    get thetaDegrees(): Degrees;
    /**
     * Gets the yaw component in degrees.
     * @returns The yaw component in degrees.
     */
    get psiDegrees(): Degrees;
    /**
     * Returns a string representation of the Euler angles.
     * @param precision The number of decimal places to include in the string representation. Default is 6.
     * @returns A string representation of the Euler angles.
     */
    toString(precision?: number): string;
    /**
     * Calculates the Direction Cosine Matrix (DCM) using the 3-2-1 Euler angles convention.
     * @returns The calculated DCM as a Matrix object.
     */
    dcm321(): Matrix;
    /**
     * Rotates a 3D vector using a 3-2-1 Euler angle sequence.
     * @param v The vector to rotate.
     * @returns The rotated vector.
     */
    rotateVector321(v: Vector3D): Vector3D;
}
