import type { Page, BrowserContext, BrowserType } from 'playwright-core';
import Controller from '../Controller';
import { type Configuration } from '../utils/writeVariables';
/**
 * Pull the options for `launchPersistentContext` from Playwright
 * since it is not defined as an individual type.
 */
type LaunchPersistentContextOptions = NonNullable<Parameters<BrowserType['launchPersistentContext']>[1]>;
/** Options for configuring Playwright and @axe-core/watcher. */
export type Options = Configuration & LaunchPersistentContextOptions;
/**
 * Creates a Playwright config that uses axe extension
 *
 * @param opts Playwright config to extend
 */
export declare function playwrightConfig(opts: Options): LaunchPersistentContextOptions;
export declare class PlaywrightController extends Controller {
    private driver;
    constructor(driver: Page);
    protected executeScript<T>(fn: string | (() => Promise<T>), ...args: unknown[]): Promise<T>;
    captureScreenshot(): Promise<string>;
}
/**
 * @deprecated `wrapPlaywright` is deprecated and may not work as intended. Please use `wrapPlaywrightPage` instead.
 */
export declare const wrapPlaywright: (browserContext: BrowserContext, playwrightController: PlaywrightController) => BrowserContext;
export { wrapPage as wrapPlaywrightPage } from './playwrightWrapping';
