import type { BrowserCapabilities } from '@serenity-js/web';
import { BrowsingSession, type Cookie, type CookieData } from '@serenity-js/web';
import type * as playwright from 'playwright-core';
import { type PlaywrightOptions } from '../../PlaywrightOptions';
import { SerenitySelectorEngines } from '../../selector-engines';
import { PlaywrightPage } from '../models';
/**
 * Playwright-specific implementation of [`BrowsingSession`](https://serenity-js.org/api/web/class/BrowsingSession/).
 *
 * @group Models
 */
export declare abstract class PlaywrightBrowsingSession extends BrowsingSession<PlaywrightPage> {
    protected readonly browserContextOptions: PlaywrightOptions;
    protected readonly selectors: playwright.Selectors;
    protected readonly serenitySelectorEngines: SerenitySelectorEngines;
    private currentPlaywrightBrowserContext;
    protected constructor(browserContextOptions: PlaywrightOptions, selectors: playwright.Selectors);
    /**
     * Returns [basic meta-data](https://serenity-js.org/api/web/interface/BrowserCapabilities/) about the browser associated with this ability.
     *
     * **Please note** that since Playwright does not expose information about the operating system
     * the tests are running on, **Serenity/JS assumes that the tests are running locally**
     * and therefore returns the value of Node.js `process.platform` for `platformName`.
     */
    abstract browserCapabilities(): Promise<BrowserCapabilities>;
    cookie(name: string): Promise<Cookie>;
    setCookie(cookie: CookieData): Promise<void>;
    deleteAllCookies(): Promise<void>;
    protected browserContext(): Promise<playwright.BrowserContext>;
    protected abstract createBrowserContext(options: PlaywrightOptions): Promise<playwright.BrowserContext>;
}
//# sourceMappingURL=PlaywrightBrowsingSession.d.ts.map