import type { BrowserContext, Page } from "@playwright/test";
import { ActionOptions, BaseActionType, BaseWallet } from "../BaseWallet";
import { PhantomConfig } from "../types";
export declare enum PhantomSpecificActionType {
    LOCK = "lock",
    UNLOCK = "unlock",
    ADD_TOKEN = "addToken",
    ADD_ACCOUNT = "addAccount",
    SWITCH_ACCOUNT = "switchAccount",
    SEND_TOKENS = "sendTokens",
    SWITCH_BLOCKCHAIN = "switchBlockchain",
    ENABLE_TEST_MODE = "enableTestMode",
    SIGN_MESSAGE = "signMessage"
}
type PhantomActionType = BaseActionType | PhantomSpecificActionType;
export declare class PhantomWallet extends BaseWallet {
    private readonly context;
    private readonly extensionId?;
    readonly config: PhantomConfig;
    private page;
    private onboardingPage;
    private homePage;
    private notificationPage;
    get browserContext(): BrowserContext;
    constructor(walletConfig: PhantomConfig, context: BrowserContext, page: Page, extensionId?: string);
    static initialize(currentContext: BrowserContext, contextPath: string, _walletConfig: PhantomConfig): Promise<{
        phantomPage: Page;
        phantomContext: BrowserContext;
    }>;
    /**
     * Navigate to the main Phantom extension popup after onboarding
     */
    private navigateToMainPopup;
    static createContext(contextPath: string, slowMo?: number): Promise<BrowserContext>;
    handleAction(action: PhantomActionType, options?: ActionOptions): Promise<void>;
    get walletContext(): BrowserContext;
    get walletPage(): Page;
    get walletExtensionId(): string | undefined;
}
export * from "./fixtures";
