///
import { ValuePromise } from "../value-promise";
import { FindAllOptions, FindOptions } from "./find-options";
import { JsFunction, KeyValue, OptionalXY } from "./generic-types";
import { GestureOpts, GestureType } from "./gesture";
import { iHttpRequest, iHttpResponse } from "./http";
import { iAssertionContext } from "./iassertioncontext";
import { iValue } from "./ivalue";
import { PointerMove } from "./pointer";
import { ScreenProperties } from "./screen-properties";
import { ScreenshotOpts } from "./screenshot";
export interface iResponse {
context: iAssertionContext;
statusCode: iValue;
statusMessage: iValue;
body: iValue;
jsonBody: iValue;
url: iValue;
finalUrl: iValue;
currentUrl: iValue;
length: iValue;
loadTime: iValue;
headers: iValue;
cookies: iValue;
trailers: iValue;
method: iValue;
init(res: iHttpResponse): void;
navigate(req: iHttpRequest): Promise;
getRoot(): any;
find(path: string, opts?: FindOptions): ValuePromise;
find(path: string, contains: string, opts?: FindOptions): ValuePromise;
find(path: string, mathces: RegExp, opts?: FindOptions): ValuePromise;
findAll(path: string, opts?: FindAllOptions): Promise;
findAll(path: string, contains: string, opts?: FindAllOptions): Promise;
findAll(path: string, matches: RegExp, opts?: FindAllOptions): Promise;
findXPath(xPath: string): ValuePromise;
findAllXPath(xPath: string): Promise;
header(key?: string): iValue;
cookie(key?: string): iValue;
absolutizeUri(uri: string): string;
eval(js: JsFunction, ...args: any[]): Promise;
waitForNavigation(timeout?: number, waitFor?: string | string[]): Promise;
waitForLoad(timeout?: number): Promise;
waitForNetworkIdle(timeout?: number): Promise;
waitForReady(timeout?: number): Promise;
waitForFunction(js: JsFunction, opts?: KeyValue, ...args: any[]): Promise;
waitForHidden(selector: string, timeout?: number): ValuePromise;
waitForVisible(selector: string, timeout?: number): ValuePromise;
waitForExists(selector: string, timeout?: number): ValuePromise;
waitForExists(selector: string, contains: string | RegExp, timeout?: number): ValuePromise;
waitForNotExists(selector: string, timeout?: number): ValuePromise;
waitForNotExists(selector: string, contains: string | RegExp, timeout?: number): ValuePromise;
waitForXPath(xPath: string, timeout?: number): ValuePromise;
waitForHavingText(selector: string, text: string | RegExp, timeout?: number): ValuePromise;
screenshot(): Promise;
screenshot(localFilePath: string): Promise;
screenshot(localFilePath: string, opts: ScreenshotOpts): Promise;
screenshot(opts: ScreenshotOpts): Promise;
clear(selector: string): ValuePromise;
type(selector: string, textToType: string, opts: any): ValuePromise;
clearThenType(selector: string, textToType: string, opts: any): ValuePromise;
selectOption(selector: string, value: string | string[]): ValuePromise;
scrollTo(point: OptionalXY): Promise;
click(selector: string, opts?: FindOptions): ValuePromise;
click(selector: string, contains: string, opts?: FindOptions): ValuePromise;
click(selector: string, matches: RegExp, opts?: FindOptions): ValuePromise;
serialize(): object;
movePointer(...pointers: PointerMove[]): Promise;
gesture(type: GestureType, opts: GestureOpts): Promise;
rotateScreen(rotation: string | number): Promise;
getScreenProperties(): Promise;
hideKeyboard(): Promise;
getSource(): ValuePromise;
}