import * as request from 'superagent'; export interface Conf { launcherBaseUrl: string; token?: string; sharedKey?: Uint8Array; nonce?: Uint8Array; } export declare function marshalConf(conf: Conf): string; export declare function unmarshalConf(str: string): Conf; export interface Request { path: string; method: string; jsonBody?: any; rawBody?: string; query?: Object; doNotEncrypt?: boolean; jsonResponse?: boolean; doNotAuth?: boolean; } export declare type RequestBuilder = (client: Client, req: Request) => Promise; export declare type ResponseHandler = (client: Client, resp: request.Response, decrypt: boolean, jsonResponse: boolean) => Promise; export declare type Logger = (message?: any, ...optionalParams: any[]) => void; export declare class ApiError { resp: request.Response; constructor(resp: request.Response); toString(): string; } export declare class Client { conf: Conf; requestBuilder: RequestBuilder; responseHandler: ResponseHandler; logger: Logger; constructor(conf?: Conf); do(req: Request): Promise; private buildRequest(req); private handleResponse(resp, decrypt, jsonResponse); private encryptAndBase64(input); private unbase64AndDecrypt(input); }