import { Signer } from '@ethersproject/abstract-signer'; import { PopulatedTransaction } from '@ethersproject/contracts'; import { BigNumber } from 'ethers'; import * as TE from 'fp-ts/TaskEither'; import { Token } from '../types'; import { ImmutableXController } from './ImmutableXController'; export declare type ImmutableXWalletParams = { publicApiUrl: string; signer: Signer; gasLimit?: BigNumber; gasPrice?: BigNumber; accountMappingKey?: string; }; export declare class ImmutableXWallet { controller: ImmutableXController; private signer; private gasLimit?; private gasPrice?; constructor({ publicApiUrl, signer, gasLimit, gasPrice, accountMappingKey, }: ImmutableXWalletParams); static build(params: ImmutableXWalletParams): Promise; static buildF(params: ImmutableXWalletParams): TE.TaskEither; incrementNonce(): void; getEthKey(contractAddress: string, starkPublicKey: string): TE.TaskEither; getDepositBalance(contractAddress: string, starkPublicKey: string, token: Token, vaultId: string): Promise; getWithdrawalBalance(contractAddress: string, ownerKey: string, assetId: string): Promise; getBalance(owner: string, contractAddress: string): Promise; getAllowance(contractAddress: string, owner: string, spender: string): Promise; sendTransactionF(unsignedTrx: PopulatedTransaction): TE.TaskEither; sendTransaction(unsignedTrx: PopulatedTransaction): Promise; getAuthenticationHeaders(): Promise<{ 'imx-timestamp': string; 'imx-signature': string; }>; }