///
import { EventEmitter } from 'events';
import { Backend } from '../backend';
import { Config, Event, Status } from './components';
import Feedback from './feedback';
import { Path, XapiError, XapiOptions } from './types';
export interface Requests {
[idx: string]: {
resolve(result: any): void;
reject(result: XapiError): void;
};
}
export declare interface XAPI {
on(event: 'error', listener: (error: Error) => void): this;
on(event: 'ready', listener: (xapi: XAPI) => void): this;
on(event: string, listener: () => void): this;
}
export declare class XAPI extends EventEmitter {
private readonly backend;
version: string;
feedback: Feedback;
config: Config;
event: Event;
status: Status;
Command: any;
Config: any;
Status: any;
Event: any;
private requestId;
private requests;
constructor(backend: Backend, options?: XapiOptions);
close(): XAPI;
command(path: Path, params?: object | string, body?: string): Promise;
doc(path: Path): Promise;
execute(method: string, params: any): Promise;
private handleResponse;
private nextRequestId;
}
export default XAPI;