import { ethers } from 'ethers'; import { Provider } from '@ethersproject/providers'; import { BaseApi } from './base-api'; import { CreateTBAParams } from '../utils'; import { TransactionOptions, CreateNewUserAccountParams, CreateNewUserAccountResult } from '../types'; /** * Account API module, providing Token Bound Account (TBA) related functionality */ export declare class AccountApi extends BaseApi { private _registryWrapper; private _tbaWrapper; private _accountNFTWrapper; /** * Create Account API instance * @param provider Provider instance * @param signer Signer instance */ constructor(provider: Provider, signer: ethers.Signer); /** * Calculate TBA address for an NFT (without creating the account) * @param params Creation parameters * @returns TBA address */ computeTBAAddress(params: CreateTBAParams): Promise; /** * Create TBA account * @param params Creation parameters * @param options Transaction options * @returns TBA address and transaction */ createTBA(params: CreateTBAParams, options?: TransactionOptions): Promise<{ tbaAddress: string; tx: ethers.ContractTransaction; }>; /** * Initialize TBA account * @param params Initialization parameters * @param options Transaction options * @returns Transaction object */ initializeTBA(params: { accountAddress: string; chainId: number; tokenContract: string; tokenId: ethers.BigNumber | number | string; }, options?: TransactionOptions): Promise; /** * Get TBA information related to an NFT * @param accountAddress TBA address * @returns TBA information */ getTBAInfo(accountAddress: string): Promise<{ chainId: ethers.BigNumber; tokenContract: string; tokenId: ethers.BigNumber; state: ethers.BigNumber; }>; /** * Execute a transaction from TBA * @param params Transaction parameters * @param options Transaction options * @returns Transaction result */ executeTBATransaction(params: { accountAddress: string; to: string; value: ethers.BigNumber | number | string; data: string; }, options?: TransactionOptions): Promise<{ tx: ethers.ContractTransaction; result: string; }>; /** * Check if an address is a valid signer for a TBA * @param accountAddress TBA address * @param signerAddress Signer address * @returns Whether it's a valid signer */ isValidSigner(accountAddress: string, signerAddress: string): Promise; /** * Update account information for an AccountNFT * @param tokenId AccountNFT token ID * @param name New account name * @param description New account description * @param options Transaction options * @returns Transaction object */ updateAccountInfo(tokenId: ethers.BigNumber | number | string, name: string, description: string, options?: TransactionOptions): Promise; /** * Get account information for an AccountNFT * @param tokenId AccountNFT token ID * @returns Account information */ getAccountInfo(tokenId: ethers.BigNumber | number | string): Promise<{ name: string; establishedAt: ethers.BigNumber; description: string; }>; /** * Get AccountNFT details * @param tokenId Token ID * @returns AccountNFT details including owner and URI */ getAccountNFTDetails(tokenId: ethers.BigNumber | number | string): Promise<{ tokenId: ethers.BigNumber; owner: string; uri: string; accountInfo: { name: string; establishedAt: ethers.BigNumber; description: string; }; }>; /** * Convert NetworkId to network key string * @param networkId Network ID * @returns Network key */ private getNetworkKey; /** * Handle connection update */ protected onConnectionUpdated(): Promise; /** * Create a complete new user account (AccountNFT + TBA) * @param params Creation parameters * @param options Transaction options * @returns AccountNFT and TBA creation results */ createNewUserAccount(params: CreateNewUserAccountParams, options?: TransactionOptions): Promise; } //# sourceMappingURL=account-api.d.ts.map