///
import { WebmateAuthInfo } from "./webmate-auth-info";
import { WebmateEnvironment } from "./webmate-environment";
import { URL } from "url";
import { Map } from "immutable";
import { Observable } from "rxjs";
/**
* API client for interacting with the webmate API.
*/
export declare class WebmateAPIClient {
private authInfo;
private environment;
constructor(authInfo: WebmateAuthInfo, environment: WebmateEnvironment);
private getRequestConfig;
sendGET(schema: UriTemplate, params: Map, urlParams?: Map): Observable;
sendPOST(schema: UriTemplate, params: Map, body?: Object, urlParams?: Map): Observable;
sendPOSTWithFile(schema: UriTemplate, filePath: string, params: Map, contentType?: string, urlParams?: Map): Observable;
sendPOSTStreamResponse(schema: UriTemplate, params: Map, body?: Object, urlParams?: Map): Observable;
sendDELETE(schema: UriTemplate, params: Map): Observable;
}
/**
* Template for API URI, e.g. "/browsersessions/${browserSessionId}"
*/
export declare class UriTemplate {
readonly schema: string;
readonly name?: string | undefined;
constructor(schema: string, name?: string | undefined);
replaceParamsInTemplate(template: string, params: Map): string;
buildUri(baseUri: URL, params: Map): string;
}
export interface ApiPaginationInfo {
nextLink?: string;
prevLink?: string;
}
export interface PaginatedApiResult {
links?: ApiPaginationInfo;
data: Array;
}