import type { BrowserContext, Page } from 'playwright-core'; import type Wallet from './wallets/wallet'; import type { WalletIdOptions } from './wallets/wallets'; export { CoinbaseWallet } from './wallets/coinbase/coinbase'; export { MetaMaskWallet } from './wallets/metamask/metamask'; export type LaunchOptions = OfficialOptions | DappwrightBrowserLaunchArgumentOptions; type DappwrightBrowserLaunchArgumentOptions = Omit; export type DappwrightConfig = Partial<{ dappwright: LaunchOptions; }>; export type OfficialOptions = DappwrightBrowserLaunchArgumentOptions & { wallet: WalletIdOptions; version: 'latest' | string; headless?: boolean; additionalExtensions?: string[]; }; export type DappwrightLaunchResponse = { wallet: Wallet; browserContext: BrowserContext; }; export type AddNetwork = { networkName: string; rpc: string; chainId: number; symbol: string; }; export type UpdateNetworkRpc = { chainId: number; rpc: string; }; export type AddToken = { tokenAddress: string; symbol?: string; decimals?: number; }; export type TransactionOptions = { gas?: number; gasLimit?: number; priority: number; }; export type Dappwright = { addNetwork: (options: AddNetwork) => Promise; addToken: (options: AddToken) => Promise; approve: () => Promise; confirmNetworkSwitch: () => Promise; confirmTransaction: (options?: TransactionOptions) => Promise; createAccount: (name?: string) => Promise; deleteAccount: (name: string) => Promise; deleteNetwork: (name: string) => Promise; getTokenBalance: (tokenSymbol: string) => Promise; hasNetwork: (name: string) => Promise; importPK: (pk: string) => Promise; lock: () => Promise; reject: () => Promise; sign: () => Promise; signin: () => Promise; switchAccount: (name: string) => Promise; switchNetwork: (network: string) => Promise; unlock: (password?: string) => Promise; updateNetworkRpc: (options: UpdateNetworkRpc) => Promise; page: Page; };