import { Account, Address, Chain, ParseAccount, SimulateContractReturnType, Transport, WalletClient } from 'viem'; import { ContractAddresses } from '../abis'; import { Erc20Service, NitroliteService } from './services'; import { ChallengeChannelParams, CheckpointChannelParams, CloseChannelParams, CreateChannelParams, ResizeChannelParams } from './types'; import { StateSigner } from './signer'; export type PreparedTransaction = SimulateContractReturnType['request']; export interface PreparerDependencies { nitroliteService: NitroliteService; erc20Service: Erc20Service; addresses: ContractAddresses; account: ParseAccount; walletClient: WalletClient>; stateSigner: StateSigner; challengeDuration: bigint; chainId: number; } export declare class NitroliteTransactionPreparer { private readonly deps; constructor(dependencies: PreparerDependencies); prepareDepositTransactions(tokenAddress: Address, amount: bigint): Promise; prepareCreateChannelTransaction(params: CreateChannelParams): Promise; prepareDepositAndCreateChannelTransactions(tokenAddress: Address, amount: bigint, params: CreateChannelParams): Promise; prepareCheckpointChannelTransaction(params: CheckpointChannelParams): Promise; prepareChallengeChannelTransaction(params: ChallengeChannelParams): Promise; prepareResizeChannelTransaction(params: ResizeChannelParams): Promise; prepareCloseChannelTransaction(params: CloseChannelParams): Promise; prepareWithdrawalTransaction(tokenAddress: Address, amount: bigint): Promise; prepareApproveTokensTransaction(tokenAddress: Address, amount: bigint): Promise; }