import { BigNumberish, providers, Wallet } from "ethers"; import { Address, OffChainTransaction, WalletState } from "../../types"; export interface ILaser { // Inits Laser. init(): Promise; execTransaction( transaction: OffChainTransaction, sender: Wallet, gasLimit: number ): Promise; getWalletState(): Promise; unlockWallet(nonce: BigNumberish): Promise; recover(_newOwner: Address, nonce: BigNumberish): Promise; changeOwner(_newOwner: Address, nonce: BigNumberish): Promise; addGuardian(_newGuardian: Address, nonce: BigNumberish): Promise; removeGuardian(_guardian: Address, nonce: BigNumberish): Promise; addRecoveryOwner(_newRecoveryOwner: Address, nonce: BigNumberish): Promise; removeRecoveryOwner(_recoveryOwner: Address, nonce: BigNumberish): Promise; sendEth(_to: Address, _amount: BigNumberish, nonce: BigNumberish): Promise; transferERC20( _tokenAddress: Address, _to: Address, amount: BigNumberish, nonce: BigNumberish ): Promise; signTransaction(to: Address, value: BigNumberish, callData: string, nonce: BigNumberish): Promise; }