import { default as Vector3, IVector3 } from './Vector3.ts';
import { default as Quaternion, IQuaternion } from './Quaternion.ts';
import { ITransform } from './Transform.ts';
import { PartialNullable } from '../types/interface-types.ts';
export interface IPose {
    /**
     * The ROSLIB.Vector3 describing the position.
     */
    position: IVector3;
    /**
     * The ROSLIB.Quaternion describing the orientation.
     */
    orientation: IQuaternion;
}
/**
 * A Pose in 3D space. Values are copied into this object.
 */
export default class Pose implements IPose {
    position: Vector3;
    orientation: Quaternion;
    constructor(options?: PartialNullable<IPose>);
    /**
     * Apply a transform against this pose.
     *
     * @param tf - The transform to be applied.
     */
    applyTransform(tf: ITransform): void;
    /**
     * Clone a copy of this pose.
     *
     * @returns The cloned pose.
     */
    clone(): Pose;
    /**
     * Multiply this pose with another pose without altering this pose.
     *
     * @returns The result of the multiplication.
     */
    multiply(pose: Pose): Pose;
    /**
     * Compute the inverse of this pose.
     *
     * @returns The inverse of the pose.
     */
    getInverse(): Pose;
}
