import { getTelloIP } from './config';
export * from './types';
export * from './streams/state.interfaces';
/**
 * Main Tello SDK object with response parsing and typed return values
 *
 * - READ commands return structured data with appropriate types
 * - CONTROL/SET commands return boolean (true for 'ok', false for errors)
 */
export declare const Tello: {
    /**
     * Set a custom IP address for the Tello drone
     * @param ip - The IP address to connect to (default: 192.168.10.1)
     */
    setIP: typeof import("./config").setTelloIP;
    /**
     * Get the current Tello IP address
     * @returns The current IP address
     */
    getIP: typeof getTelloIP;
    /**
     * Control commands - All return boolean (true for success, false for failure)
     *
     * Examples:
     * - connect() - Establish connection to the drone
     * - takeOff() - Take off
     * - land() - Land the drone
     * - move.up(50) - Move up 50cm
     * - rotate.clockwise(90) - Rotate 90 degrees clockwise
     */
    control: {
        connect: () => Promise<boolean>;
        takeOff: () => Promise<boolean>;
        land: () => Promise<boolean>;
        emergency: () => Promise<boolean>;
        stop: () => Promise<boolean>;
        go: (end: {
            x: number;
            y: number;
            z: number;
        }, speed: number) => Promise<boolean>;
        curve: (start: {
            x: number;
            y: number;
            z: number;
        }, end: {
            x: number;
            y: number;
            z: number;
        }, speed: number) => Promise<boolean>;
        move: {
            up: (distance: number) => Promise<boolean>;
            down: (distance: number) => Promise<boolean>;
            left: (distance: number) => Promise<boolean>;
            right: (distance: number) => Promise<boolean>;
            back: (distance: number) => Promise<boolean>;
            front: (distance: number) => Promise<boolean>;
        };
        rotate: {
            clockwise: (angle: number) => Promise<boolean>;
            counterClockwise: (angle: number) => Promise<boolean>;
        };
        flip: {
            left: () => Promise<boolean>;
            right: () => Promise<boolean>;
            back: () => Promise<boolean>;
            front: () => Promise<boolean>;
        };
    };
    /**
     * Read commands - All return structured data with proper types
     *
     * Examples:
     * - battery() - Returns BatteryResponse {value: number}
     * - height() - Returns HeightResponse {value: number, unit: 'dm'}
     * - attitude() - Returns AttitudeResponse {pitch: number, roll: number, yaw: number, unit: '°'}
     */
    read: {
        speed: () => Promise<import("./types").SpeedResponse>;
        battery: () => Promise<import("./types").BatteryResponse>;
        time: () => Promise<import("./types").TimeResponse>;
        wifi: () => Promise<import("./types").WifiResponse>;
        height: () => Promise<import("./types").HeightResponse>;
        temperature: () => Promise<import("./types").TemperatureResponse>;
        attitude: () => Promise<import("./types").AttitudeResponse>;
        barometer: () => Promise<import("./types").BarometerResponse>;
        tof: () => Promise<import("./types").TofResponse>;
        acceleration: () => Promise<import("./types").AccelerationResponse>;
    };
    /**
     * Set commands - All return boolean (true for success, false for failure)
     *
     * Examples:
     * - speed(50) - Set speed to 50cm/s
     * - wifi(ssid, password) - Set WiFi SSID and password
     */
    set: {
        speed: (speed: number) => Promise<boolean>;
        rc: (x: number, y: number, z: number, yaw: number) => Promise<boolean>;
        wifi: (ssid: string, password: string) => Promise<boolean>;
    };
    /**
     * Receivers for state and video streams
     */
    receiver: {
        state: {
            bind: () => import("events")<[never]>;
            close: () => import("dgram").Socket;
        };
        video: {
            bind: () => Promise<import("events")<[never]>>;
            close: () => Promise<void>;
        };
    };
};
export default Tello;
//# sourceMappingURL=index.d.ts.map