import { type Browser, type BrowserContext, type Page } from '@playwright/test';
/**
 * A page object to test Internet Identity.
 */
export declare class InternetIdentityPage {
    private readonly page;
    private readonly browser;
    private readonly context;
    /**
     * Creates an instance of InternetIdentityPage.
     *
     * @param {Object} params - The parameters for the constructor.
     * @param {Page} params.page - The Page instance to interact with Internet Identity a single tab in a Browser.
     * @param {BrowserContext} params.context - The isolated BrowserContext instance provided by Playwright, created for each test.
     * @param {Browser} params.browser - The browser launched by Playwright.
     */
    constructor({ page, context, browser }: {
        page: Page;
        context: BrowserContext;
        browser: Browser;
    });
    /**
     * Waits until the Internet Identity page is ready.
     *
     * @param {Object} params - The parameters for the waitReady method.
     * @param {string} params.url - The root URL of the Internet Identity page. e.g. https://identity.internetcomputer.org, http://localhot:4973 or http://127.0.0.1:5987
     * @param {string} [params.canisterId] - An optional canister ID. If provided, will be added to the url parameter.
     * @param {number} [params.timeout] - } [params.timeout] - An optional timeout period in milliseconds for the function to wait until Internet Identity is mounted. Defaults to 60000 milliseconds.
     * @returns {Promise<void>} A promise that resolves when the page is ready.
     */
    waitReady: ({ url: rootUrl, canisterId, timeout }: {
        url: string;
        canisterId?: string | undefined;
        timeout?: number | undefined;
    }) => Promise<void>;
    /**
     * Signs in and create a new user.
     *
     * @param {Object} [params] - The optional arguments for the sign-in method.
     * @param {string} [params.selector] - The selector for the login button. Defaults to [data-tid=login-button].
     * @param {boolean} [params.captcha] - Set to true if the II login flow requires a captcha.
     * @returns {Promise<number>} A promise that resolves to the new identity number.
     */
    signInWithNewIdentity: (params?: {
        selector?: string;
        captcha?: boolean;
    }) => Promise<number>;
    /**
     * Signs in with an existing identity.
     * @param {Object} params - The parameters for the sign-in method.
     * @param {string} [params.selector] - The selector for the login button. Defaults to [data-tid=login-button].
     * @param {number} params.identity - The identity number.
     * @returns {Promise<void>} A promise that resolves when the sign-in process is complete.
     */
    signInWithIdentity: ({ selector, identity }: {
        selector?: string | undefined;
        identity: number;
    }) => Promise<void>;
}
