import { WalletClient, PublicClient, Chain } from 'viem'; import { Prettify } from './prettify'; import { UniversalSignableMessage, CallOperation, Call3 } from '.'; import { PossibleENSAddress } from './addresses'; import { ERC_6551_LEGACY_V2 } from '../constants'; export declare const NFTTokenType: { readonly ERC721: "ERC721"; readonly ERC1155: "ERC1155"; }; export declare const TBVersion: { readonly V2: 2; readonly V3: 3; }; export type TBImplementationVersion = (typeof TBVersion)[keyof typeof TBVersion]; type TokenType = (typeof NFTTokenType)[keyof typeof NFTTokenType]; type NFTParams = Prettify<{ tokenContract: `0x${string}`; tokenId: string; }>; export type TokenboundAccountNFT = Prettify; interface TokenTypeParams { tokenType: TokenType; } export type NFTTransferParams = Prettify; export type ETHTransferParams = Prettify<{ account: `0x${string}`; recipientAddress: PossibleENSAddress; amount: number; chainId?: number; }>; export type ERC20TransferParams = Prettify<{ account: `0x${string}`; recipientAddress: PossibleENSAddress; amount: number; erc20tokenAddress: `0x${string}`; erc20tokenDecimals: number; chainId?: number; }>; type ImplementationAddress = `0x${string}` | typeof ERC_6551_LEGACY_V2.IMPLEMENTATION.ADDRESS; export type TokenboundClientOptions = Prettify<{ chainId?: number; chain?: Chain; signer?: any; walletClient?: WalletClient; publicClient?: PublicClient; publicClientRPCUrl?: string; implementationAddress?: ImplementationAddress; registryAddress?: `0x${string}`; version?: TBImplementationVersion; }>; type Custom6551Implementation = Prettify<{ salt?: number; }>; export type TBAccountParams = Prettify; export type GetAccountParams = Prettify>; export type MultiCallParams = Prettify<{ appendedCalls?: Call3[]; }>; export type PrepareCreateAccountParams = Prettify>; export type CreateAccountParams = Prettify>; export type ExecuteCallParams = Prettify<{ account: `0x${string}`; to: `0x${string}`; value: bigint; data: string; }>; export type PrepareExecuteCallParams = ExecuteCallParams; export type ExecuteParams = Prettify; export type PrepareExecutionParams = ExecuteParams; export type ValidSignerParams = Prettify<{ account: `0x${string}`; data?: string; }>; export type ComputeAccountParams = Prettify>; export type GetCreationCodeParams = Prettify<{ implementation_: `0x${string}`; chainId_: number; tokenContract_: string; tokenId_: string; salt_: string; }>; export type BytecodeParams = Prettify<{ accountAddress: `0x${string}`; }>; export type SignMessageParams = Prettify<{ message: UniversalSignableMessage; }>; export {};