import * as Puppeteer from 'puppeteer';
import type { Browser, BrowserContext, Page } from '..';
import { Dialog } from './shared';
export declare class Plugin {
    protected browser: Browser | BrowserContext | null;
    private initialized;
    private startCounter;
    protected dependencies: Plugin[];
    protected requiresInterception: boolean;
    get isInitialized(): boolean;
    get isStopped(): boolean;
    addDependency(plugin: Plugin): Promise<void>;
    init(browser: Browser | BrowserContext): Promise<void>;
    protected afterLaunch(_browser: Browser | BrowserContext): Promise<void>;
    protected onClose(): Promise<void>;
    protected onTargetCreated(target: Puppeteer.Target): Promise<void>;
    protected onPageCreated(_page: Page): Promise<void>;
    protected onRequest(request: Puppeteer.HTTPRequest): Promise<void>;
    protected processRequest(_request: Puppeteer.HTTPRequest): Promise<void>;
    protected onDialog(dialog: Dialog): Promise<void>;
    protected processDialog(_dialog: Dialog): Promise<void>;
    protected beforeRestart(): Promise<void>;
    restart(): Promise<void>;
    protected afterRestart(): Promise<void>;
    protected beforeStop(): Promise<void>;
    stop(): Promise<void>;
    protected afterStop(): Promise<void>;
    protected getFirstPage(): Promise<Puppeteer.Page | null>;
}
//# sourceMappingURL=index.d.ts.map