import { type QuestionAdapter } from '@serenity-js/core';
import type { CorrelationId } from '@serenity-js/core/lib/model';
import type { Cookie, CookieData, PageElements, Selector } from '@serenity-js/web';
import { Key, Page, PageElement } from '@serenity-js/web';
import type * as playwright from 'playwright-core';
import { URL } from 'url';
import type { PlaywrightOptions } from '../../PlaywrightOptions';
import type { PlaywrightBrowsingSession } from './PlaywrightBrowsingSession';
/**
 * Playwright-specific implementation of [`Page`](https://serenity-js.org/api/web/class/Page/).
 *
 * @group Models
 */
export declare class PlaywrightPage extends Page<playwright.Locator> {
    private readonly page;
    private readonly options;
    private lastScriptExecutionSummary;
    private dehydrator;
    static current(): QuestionAdapter<PlaywrightPage>;
    constructor(session: PlaywrightBrowsingSession, page: playwright.Page, options: PlaywrightOptions, pageId: CorrelationId);
    createPageElement(nativeElement: playwright.Locator): PageElement<playwright.Locator>;
    locate(selector: Selector): PageElement<playwright.Locator>;
    locateAll(selector: Selector): PageElements<playwright.Locator>;
    navigateTo(destination: string): Promise<void>;
    navigateBack(): Promise<void>;
    navigateForward(): Promise<void>;
    reload(): Promise<void>;
    sendKeys(keys: (string | Key)[]): Promise<void>;
    executeScript<Result, InnerArguments extends any[]>(script: string | ((...parameters: InnerArguments) => Result), ...args: InnerArguments): Promise<Result>;
    executeAsyncScript<Result, InnerArguments extends any[]>(script: string | ((...args: [...parameters: InnerArguments, callback: (result: Result) => void]) => void), ...args: InnerArguments): Promise<Result>;
    lastScriptExecutionResult<Result = any>(): Result;
    takeScreenshot(): Promise<string>;
    cookie(name: string): Promise<Cookie>;
    setCookie(cookieData: CookieData): Promise<void>;
    deleteAllCookies(): Promise<void>;
    title(): Promise<string>;
    name(): Promise<string>;
    url(): Promise<URL>;
    viewportSize(): Promise<{
        width: number;
        height: number;
    }>;
    setViewportSize(size: {
        width: number;
        height: number;
    }): Promise<void>;
    close(): Promise<void>;
    closeOthers(): Promise<void>;
    isPresent(): Promise<boolean>;
    nativePage(): Promise<playwright.Page>;
    private resetState;
    private currentFrame;
}
//# sourceMappingURL=PlaywrightPage.d.ts.map