import Http from '../http';
import { DataObject, EventListener, StatusListener, XAPI } from '../types';
declare class XapiImpl implements XAPI {
    private eventListeners;
    private statusListeners;
    private http;
    constructor(http: Http);
    command(deviceId: string, path: string, params?: DataObject, multiline?: string): Promise<any>;
    status: {
        get: (deviceId: string, path: string, allowEmpty?: boolean) => Promise<any>;
        on: (path: string, callback: StatusListener) => void;
    };
    config: {
        get: (deviceId: string, path: string) => Promise<any>;
        set: (deviceId: string, path: string, value: string | number) => Promise<any>;
        /**
         * Set multiple configs in one go. Provide each config as key/value pair. Eg:
         *
         * ```js
         * const configs = {
         *   'Audio.Ultrasound.MaxVolume': 0,
         *   'Audio.DefaultVolume': 33,
         *   'Audio.SoundsAndAlerts.RingVolume': 66,
         * };
         * await integration.xapi.config.setMany(device, configs);
         * ```
         */
        setMany: (deviceId: string, values: DataObject) => Promise<any>;
    };
    event: {
        on: (path: string, callback: EventListener) => void;
    };
    processNotification(data: DataObject): void;
}
export default XapiImpl;
