import { Account, Address, Chain, Hash, ParseAccount, PublicClient, Transport, WalletClient } from 'viem'; import { ContractAddresses } from '../abis'; import { NitroliteTransactionPreparer } from './prepare'; import { ChallengeChannelParams, ChannelData, ChannelId, CheckpointChannelParams, CloseChannelParams, CreateChannelParams, NitroliteClientConfig, ResizeChannelParams, State } from './types'; export declare class NitroliteClient { readonly publicClient: PublicClient; readonly walletClient: WalletClient>; readonly account: ParseAccount; readonly addresses: ContractAddresses; readonly challengeDuration: bigint; readonly txPreparer: NitroliteTransactionPreparer; readonly chainId: number; private readonly stateSigner; private readonly nitroliteService; private readonly erc20Service; private readonly sharedDeps; constructor(config: NitroliteClientConfig); deposit(tokenAddress: Address, amount: bigint): Promise; createChannel(params: CreateChannelParams): Promise<{ channelId: ChannelId; initialState: State; txHash: Hash; }>; depositAndCreateChannel(tokenAddress: Address, depositAmount: bigint, params: CreateChannelParams): Promise<{ channelId: ChannelId; initialState: State; txHash: Hash; }>; checkpointChannel(params: CheckpointChannelParams): Promise; challengeChannel(params: ChallengeChannelParams): Promise; resizeChannel(params: ResizeChannelParams): Promise<{ resizeState: State; txHash: Hash; }>; closeChannel(params: CloseChannelParams): Promise; withdrawal(tokenAddress: Address, amount: bigint): Promise; getOpenChannels(): Promise; getAccountBalance(tokenAddress: Address): Promise; getAccountBalance(tokenAddress: Address[]): Promise; getChannelBalance(channelId: ChannelId, tokenAddress: Address): Promise; getChannelBalance(channelId: ChannelId, tokenAddress: Address[]): Promise; getChannelData(channelId: ChannelId): Promise; approveTokens(tokenAddress: Address, amount: bigint): Promise; getTokenAllowance(tokenAddress: Address): Promise; getTokenBalance(tokenAddress: Address): Promise; }