import { Account, Address, PublicClient, WalletClient, Hash } from 'viem'; import { ContractAddresses } from '../../abis'; import { Channel, ChannelData, ChannelId, Signature, State } from '../types'; type PreparedContractRequest = any; export declare class NitroliteService { private readonly publicClient; private readonly walletClient?; private readonly account?; private readonly addresses; constructor(publicClient: PublicClient, addresses: ContractAddresses, walletClient?: WalletClient, account?: Account | Address); private ensureWalletClient; private ensureAccount; get custodyAddress(): Address; private convertChannelForABI; private convertStateForABI; private convertChannelFromContract; private convertStateFromContract; prepareDeposit(tokenAddress: Address, amount: bigint): Promise; deposit(tokenAddress: Address, amount: bigint): Promise; prepareCreateChannel(channel: Channel, initial: State): Promise; createChannel(channel: Channel, initial: State): Promise; prepareDepositAndCreateChannel(tokenAddress: Address, amount: bigint, channel: Channel, initial: State): Promise; depositAndCreateChannel(tokenAddress: Address, amount: bigint, channel: Channel, initial: State): Promise; prepareJoinChannel(channelId: ChannelId, index: bigint, sig: Signature): Promise; joinChannel(channelId: ChannelId, index: bigint, sig: Signature): Promise; prepareCheckpoint(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; checkpoint(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; prepareChallenge(channelId: ChannelId, candidate: State, proofs: State[] | undefined, challengerSig: Signature): Promise; challenge(channelId: ChannelId, candidate: State, proofs: State[] | undefined, challengerSig: Signature): Promise; prepareResize(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; resize(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; prepareClose(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; close(channelId: ChannelId, candidate: State, proofs?: State[]): Promise; prepareWithdraw(tokenAddress: Address, amount: bigint): Promise; withdraw(tokenAddress: Address, amount: bigint): Promise; getOpenChannels(account: Address): Promise; getOpenChannels(account: Address[]): Promise; getAccountBalance(user: Address, token: Address): Promise; getAccountBalance(user: Address, token: Address[]): Promise; getAccountBalance(user: Address[], token: Address): Promise; getAccountBalance(user: Address[], token: Address[]): Promise; getChannelBalance(channelId: ChannelId, token: Address): Promise; getChannelBalance(channelId: ChannelId, token: Address[]): Promise; getChannelData(channelId: ChannelId): Promise; } export {};