/**
 * All http calls for communicating with Webex (device) cloud
 */
import { DataObject, Http } from './types';
type Interceptor = (url: string, options: DataObject) => any;
interface Config {
    path: string;
    value: string | number | boolean;
}
interface StringObject {
    [name: string]: string | number;
}
export interface OAuthDetails {
    clientId: string;
    clientSecret: string;
    oauthUrl: string;
    refreshToken: string;
}
declare class HttpImpl implements Http {
    baseUrl: string;
    accessToken: string;
    constructor(baseUrl: string, accessToken: string);
    static setDryMode(handler: Interceptor): void;
    webexApi(partialUrl: string, method?: string, body?: any, contentType?: string): Promise<any>;
    setAccessToken(token: string): void;
    fullUrl(partialUrl: string): string;
    ping(appUrl: string): Promise<any>;
    static createAccessToken(oauth: OAuthDetails): Promise<any>;
    static initIntegration: (data: DataObject) => Promise<any>;
    get(partialUrl: string): Promise<any>;
    pollDeviceData: (url: string) => Promise<any>;
    xCommand: (deviceId: string, command: string, args?: StringObject, multiline?: string) => Promise<any>;
    xStatus: (deviceId: string, path: string) => Promise<any>;
    xConfig: (deviceId: string, path: string) => Promise<any>;
    xConfigSet: (deviceId: string, configs: Config[]) => Promise<any>;
    getWorkspace: (accessToken: string, workspaceId: string) => Promise<any>;
    deviceDetails: (accessToken: string, deviceId: string) => Promise<any>;
}
export default HttpImpl;
