import { Crazyflie } from '.';
export declare const defaultSetpoint: Setpoint;
export declare const defaultVelocityWorldSetpoint: VelocityWorldSetpoint;
export declare const defaultZDistanceSetpoint: ZDistanceSetpoint;
export declare const defaultHoverSetpoint: HoverSetpoint;
export declare class Commander {
    private crazyflie;
    readonly currentSetpoint: Setpoint | VelocityWorldSetpoint | ZDistanceSetpoint | HoverSetpoint;
    private lastFunction;
    private lastArgs;
    private setpointInterval;
    /**
     * Class for dealing with the 'commander' port
     * (https://wiki.bitcraze.io/doc:crazyflie:crtp:commander)
     */
    constructor(crazyflie: Crazyflie);
    /**
     * We need to update the Crazyflie's position every so often otherwise it will stop after a few seconds
     */
    startSetpointInterval(): void;
    /**
     * Clear the setpoint interval
     */
    clearSetpointInterval(): void;
    /**
     * Set the setpoint point
     */
    setpoint(setpoint?: Setpoint): Promise<{}>;
    /**
     * Deals with the generic commander. Stops all motors and potentially makes it fall.
     * (https://wiki.bitcraze.io/doc:crazyflie:crtp:generic_setpoint#stop)
     */
    stopSetpoint(): Promise<{}>;
    /**
     * Send Velocity in the world frame of reference setpoint.
     * Velocity x, y, and z are in m/s while yaw rate is in degrees/second
     * (https://github.com/bitcraze/crazyflie-lib-python/blob/master/cflib/crazyflie/commander.py#L91)
     */
    velocityWorldSetpoint(setpoint?: VelocityWorldSetpoint): Promise<{}>;
    /**
     * Setpoint with absolute height.
     * Roll and pitch are in degrees, yaw rate is in degrees/second, and z distance is in meters.
     * (https://github.com/bitcraze/crazyflie-lib-python/blob/master/cflib/crazyflie/commander.py#L104)
     */
    zDistanceSetpoint(setpoint?: ZDistanceSetpoint): Promise<{}>;
    /**
     * Setpoint with absolute height.
     * Velocity x and y are in m/s, yaw rate is in degrees/second, and z distance is in meters.
     * (https://github.com/bitcraze/crazyflie-lib-python/blob/master/cflib/crazyflie/commander.py#L104)
     */
    hoverSetpoint(setpoint?: HoverSetpoint): Promise<{}>;
}
export interface Setpoint {
    roll?: number;
    pitch?: number;
    yaw?: number;
    thrust?: number;
}
export interface VelocityWorldSetpoint {
    velocityX?: number;
    velocityY?: number;
    velocityZ?: number;
    yawRate?: number;
}
export interface ZDistanceSetpoint {
    roll?: number;
    pitch?: number;
    yawRate?: number;
    zDistance?: number;
}
export interface HoverSetpoint {
    velocityX?: number;
    velocityY?: number;
    yawRate?: number;
    zDistance?: number;
}
