/// <reference types="node" />
import { EventEmitter } from 'events';
import { Command, PowerMode } from './commands';
/**
 * Low level device class for Panasonic PTZ devices executing a
 * basic queue.
 */
export declare class PanasonicPtzCamera extends EventEmitter {
    private _url;
    private _commandDelay;
    private _commandQueue;
    private _executeQueueTimeout;
    constructor(url: string, commandDelay?: number);
    sendCommand(command: string): Promise<string>;
    dispose(): void;
    private _dropFromQueue;
    private _executeQueue;
}
export declare enum PanasonicFocusMode {
    MANUAL = 0,
    AUTO = 1
}
/**
 * High level methods for interfacing with a panasonic PTZ camera. This class
 * depends on the PanasonicPtzCamera class.
 */
export declare class PanasonicPtzHttpInterface extends EventEmitter {
    private _device;
    private _connected;
    private _pingInterval;
    constructor(host: string, port?: number, https?: boolean);
    init(): void;
    private static _isError;
    dispose(): void;
    get connected(): boolean;
    /**
     * Ping a camera by checking its power status. Will return true if the camera is on, false if it's off but reachable and will fail otherwise
     * @returns {Promose<boolean | string>} A promise: true if the camera is ON, false if the camera is off, 'turningOn' if transitioning from STBY to ON
     * @memberof PanasonicPtzHttpInterface
     */
    ping(): Promise<PowerMode>;
    executeCommand<T extends Command>(command: T): Promise<ReturnType<T['deserializeResponse']>>;
}
//# sourceMappingURL=connection.d.ts.map