import { ethers, TransactionRequest } from "ethers"; import { OmniConnector } from "../OmniConnector"; import { OmniWallet } from "../OmniWallet"; import { WalletType } from "../omni/config"; import { ReviewFee } from "../omni/bridge"; import { Token } from "../omni/token"; export interface EvmProvider { request: (args: any) => Promise; on?: (method: string, handler: (args: any) => void) => void; off?: (method: string, handler: (args: any) => void) => void; } declare class EvmWallet extends OmniWallet { readonly connector: OmniConnector; readonly address: string; readonly provider: EvmProvider; readonly publicKey?: string; readonly type = WalletType.EVM; constructor(connector: OmniConnector, address: string, provider: EvmProvider); private rpcs; rpc(chain: number): ethers.JsonRpcProvider; get omniAddress(): string; disconnect(): Promise; fetchBalances(chain: number, whitelist: string[]): Promise>; fetchBalance(chain: number, address: string): Promise; signIntentsWithAuth(domain: string, intents?: Record[]): Promise<{ signed: Record; chainId: WalletType; publicKey: string; address: string; seed: string; }>; signMessage(msg: string): Promise>; transferFee(token: Token, receiver: string, amount: bigint): Promise; sendTransaction(chain: number, request: TransactionRequest): Promise; transfer(args: { token: Token; receiver: string; amount: bigint; comment?: string; gasFee?: ReviewFee; }): Promise; signIntents(intents: Record[], options?: { deadline?: number; nonce?: Uint8Array; }): Promise>; } export default EvmWallet;