import * as events from 'events';
import * as Puppeteer from 'puppeteer';
import type { Plugin } from './plugins';
export declare function connect(options?: Puppeteer.ConnectOptions): Promise<Browser>;
export declare function launch(options?: Puppeteer.LaunchOptions & Puppeteer.ConnectOptions): Promise<Browser>;
export interface Browser extends Puppeteer.Browser, Pluginable {
    createBrowserContext(options?: Puppeteer.BrowserContextOptions): Promise<BrowserContext>;
    newPage(): Promise<Page>;
}
export interface BrowserContext extends Puppeteer.BrowserContext, Pluginable {
    newPage(): Promise<Page>;
}
export interface Page extends Puppeteer.Page {
    waitAndClick(selector: string, waitOptions?: Puppeteer.WaitForSelectorOptions, clickOptions?: Readonly<Puppeteer.ClickOptions>): Promise<void>;
    waitAndType(selector: string, text: string, waitOptions?: Puppeteer.WaitForSelectorOptions, typeOptions?: Readonly<Puppeteer.KeyboardTypeOptions>): Promise<void>;
    withLoader<T>(fn: () => Promise<T>, loadingSelector: string, visibleWaitOptions?: Puppeteer.WaitForSelectorOptions, hiddenWaitOptions?: Puppeteer.WaitForSelectorOptions): Promise<T>;
}
interface Pluginable {
    plugins: Plugin[];
    browserEvents: events.EventEmitter;
    interceptions: number;
    addPlugin: (plugin: Plugin) => Promise<void>;
    clearPlugins: () => void;
    anonymizeUserAgent: () => Promise<AnonymizeUserAgentPlugin>;
    avoidDetection: (options?: FingerprintGeneratorOptions) => Promise<AvoidDetectionPlugin>;
    blockResources: (...resources: Resource[]) => Promise<BlockResourcesPlugin>;
    disableDialogs: (logMessages?: boolean) => Promise<DisableDialogsPlugin>;
    manageCookies: (opts: ManageCookiesOption) => Promise<ManageCookiesPlugin>;
    manageLocalStorage: (opts: ManageLocalStorageOption) => Promise<ManageLocalStoragePlugin>;
    solveRecaptchas: (accessToken: string) => Promise<SolveRecaptchasPlugin>;
}
import { AnonymizeUserAgentPlugin } from './plugins/anonymize.user.agent';
import { AvoidDetectionPlugin } from './plugins/avoid.detection';
import { BlockResourcesPlugin, Resource } from './plugins/block.resources';
import { DisableDialogsPlugin } from './plugins/disable.dialogs';
import { ManageCookiesOption, ManageCookiesPlugin } from './plugins/manage.cookies';
import { ManageLocalStorageOption, ManageLocalStoragePlugin } from './plugins/manage.localstorage';
import { SolveRecaptchasPlugin } from './plugins/solve.recaptchas';
import type { newInjectedPage } from 'fingerprint-injector';
type FingerprintGeneratorOptions = Parameters<typeof newInjectedPage>[1];
export {};
//# sourceMappingURL=index.d.ts.map