import { PuppeteerExtraPlugin } from 'puppeteer-extra-plugin';
import { ProxyRouter, ProxyRouterOpts } from './router';
export declare type ExtraPluginProxyRouterOptions = ProxyRouterOpts & {
    /**
     * Optionally exempt hosts from going through a proxy, even our internal routing proxy.
     *
     * Examples:
     * `.com` or `chromium.org` or `.domain.com`
     *
     * @see
     * https://chromium.googlesource.com/chromium/src/+/HEAD/net/docs/proxy.md#proxy-bypass-rules
     * https://www-archive.mozilla.org/quality/networking/docs/aboutno_proxy_for.html
     */
    proxyBypassList?: string[];
};
export declare class ExtraPluginProxyRouter extends PuppeteerExtraPlugin {
    /** The underlying proxy router instance */
    router: ProxyRouter;
    /** The name of the automation framework used */
    framework: 'playwright' | 'puppeteer' | null;
    noPuppeteerShim: boolean;
    constructor(opts: Partial<ExtraPluginProxyRouterOptions>);
    get name(): string;
    get defaults(): ExtraPluginProxyRouterOptions;
    /** Get or set proxies at runtime */
    get proxies(): import("./router").Proxies;
    set proxies(proxies: import("./router").Proxies);
    /** Retrieve traffic statistics */
    get stats(): import("./stats").ProxyRouterStats;
    /** Get or set the `routeByHost` function at runtime */
    get routeByHost(): import("./router").RouteByHostFn;
    set routeByHost(fn: import("./router").RouteByHostFn);
    private get proxyBypassListString();
    onPluginRegistered(args?: {
        framework: 'playwright';
    }): Promise<void>;
    beforeLaunch(options?: unknown): Promise<void>;
    onDisconnected(): Promise<void>;
}
