import * as ethers from "ethers"; import { CallContractRequest, BaseConstructorParams, GetAssetsResponse, GetBalancesResponse, GetTransactionResponse, GetWalletByInGamePlayerIdResponse, SubmitUserOpRequest } from "./interfaces"; export declare abstract class HallidayBase { protected readonly apiEndpoint: string; protected readonly authHeader: { headers: { Authorization: string; }; }; protected readonly blockchainType: string; /** * Constructor for the Halliday client. * * @param {ConstructorParams} params * @param {string} params.hallidayPublicApiKey API key provided to you by the Halliday team * @param {ethers.JsonRpcSigner} params.signer The signer of the user's non-custodial wallet * @param {string} params.blockchainType Blockchain of the Halliday AA wallet */ constructor(params: BaseConstructorParams); /** * @deprecated * Retained for backwards compatibility of other functions, but latest SDK should call the backend getOrCreateHallidayAAWallet() method for Web3Auth social login * @param inGamePlayerId * @returns Halliday Wwallet */ protected getHallidayAAWallet(inGamePlayerId: string): Promise; /** * Gets the player's NFTs. * * @param {string} inGamePlayerId * @returns {Promise} */ getAssets(): Promise; /** * Gets the player's ERC20s. * * @param {string} inGamePlayerId * @returns {Promise} */ getBalances(): Promise; /** * Poll this method to get the status of a transaction created using * callContract. * * @param {string} txId The tx id returned by one of the above three * methods * @returns {Promise} Includes info about the * transaction, including status and on_chain_id */ getTransaction(txId: string): Promise; /** * Call an arbitrary contract. * * @param request * @returns {Promise} Information regarding the completed * or failed transaction. */ callContract(request: CallContractRequest): Promise; abstract getSigner(): Promise; private _transact; /** * Submit a user op directly. * * @param {SubmitUserOpRequest} request * @returns {Promise} Information regarding the completed * or failed transaction. */ submitUserOp(request: SubmitUserOpRequest): Promise; /** * Poll for the status of a submitted transaction and retry if necessary. * * @param {SubmitUserOpRequest} request * @returns {Promise} Information regarding the completed * or failed transaction. */ pollTransactionStatusAndRetry({ owner_address, blockchain_type, tx_id, use_retry, }: { owner_address: string; blockchain_type: string; tx_id: string; use_retry?: boolean; }): Promise; }