/**
 * @typedef {import('playwright-core').Page} Page
 * @typedef {import('playwright-core').BrowserContext} Context
 * @typedef {import('playwright-core').Browser} Browser
 * @typedef {import('playwright-core').ChromiumBrowserContext} ChromiumBrowserContext
 * @typedef {import('./types').RunnerOptions} RunnerOptions
 * @typedef {import('./types').TestRunner} TestRunner
 * @typedef {import('./types').RunnerEnv} RunnerEnv
 * @typedef {import('./types').CliOptions} CliOptions
 * @typedef {import('./types').ConfigFn} ConfigFn
 */
export class Runner {
    /**
     *
     * @param {Partial<import('./types').RunnerOptions>} options
     * @param {string[]} [testFiles]
     */
    constructor(options?: Partial<import("./types").RunnerOptions>, testFiles?: string[]);
    /** @type {import('./types').RunnerOptions} */
    options: import("./types").RunnerOptions;
    /** @type {import('polka').Polka["server"] | undefined} */
    server: import("polka").Polka["server"] | undefined;
    dir: string;
    browserDir: string;
    url: string;
    stopped: boolean;
    watching: boolean;
    /** @type {import('./types').RunnerEnv} */
    env: import("./types").RunnerEnv;
    tests: string[];
    setupContext(): Promise<import("playwright-core").BrowserContext>;
    browser: import("playwright-core").Browser | undefined;
    context: import("playwright-core").BrowserContext | undefined;
    /**
     * Setup Page
     *
     * @param {Context} context
     */
    setupPage(context: Context): Promise<import("playwright-core").Page>;
    page: import("playwright-core").Page | undefined;
    /**
     * Run the tests
     *
     * @param {Page} page
     */
    runTests(page: Page): Promise<{
        outName: string;
        files: any[];
    }>;
    run(): Promise<void>;
    beforeTestsOutput: unknown;
    /**
     * Setup and run before page
     *
     * @param {Context} context
     */
    setupBeforePage(context: Context): Promise<void>;
    watch(): Promise<void>;
    /**
     * @param {boolean} fail
     * @param {string | undefined} [msg]
     */
    stop(fail: boolean, msg?: string | undefined): Promise<void>;
    /**
     * Compile tests
     *
     * @param {"before" | "bundle" | "watch"} mode
     * @returns {Promise<import('./types').CompilerOutput>} file to be loaded in the page
     */
    compiler(mode?: "before" | "bundle" | "watch"): Promise<import("./types").CompilerOutput>;
    #private;
}
export type Page = import("playwright-core").Page;
export type Context = import("playwright-core").BrowserContext;
export type Browser = import("playwright-core").Browser;
export type ChromiumBrowserContext = import("playwright-core").ChromiumBrowserContext;
export type RunnerOptions = import("./types").RunnerOptions;
export type TestRunner = import("./types").TestRunner;
export type RunnerEnv = import("./types").RunnerEnv;
export type CliOptions = import("./types").CliOptions;
export type ConfigFn = import("./types").ConfigFn;
//# sourceMappingURL=runner.d.ts.map