import * as puppeteer from "puppeteer-core";
import { Page, Browser, Response } from "puppeteer-core";
import { BrowserOptions, HttpRequest } from "./httprequest";
import { KeyValue } from "./interfaces";
export declare type BrowserConsoleMessage = {
    type: string;
    text: string;
    source: puppeteer.ConsoleMessage;
};
export interface iBrowserControlResponse {
    response: Response;
    body: string;
    cookies: KeyValue;
}
export declare class BrowserControl {
    private _request;
    private _browser;
    private _page;
    private _response;
    private _consoleMessages;
    private _puppeteer;
    get consoleMessages(): BrowserConsoleMessage[];
    get response(): Response | null;
    get page(): Page | null;
    get browser(): Browser | null;
    get puppeteer(): typeof puppeteer | null;
    get request(): HttpRequest;
    get browserOpts(): BrowserOptions;
    private get _dynamicPuppeteer();
    private _getCookies;
    close(): Promise<void>;
    has404(): boolean;
    open(request: HttpRequest): Promise<iBrowserControlResponse>;
    private _onBrowserReady;
    private _recordConsoleOutput;
    private _setBasicAuth;
    private _applyCookies;
    private _openUri;
    private _find404Errors;
}
