import { Hex, PublicClient, WalletClient, Address, Hash } from 'viem'; import { C as ChannelState } from './channel-CkRRbzT8.js'; type VoucherParams = { channelId: Hex; cumulativeAmount: bigint; }; type SignedVoucher = VoucherParams & { signature: Hex; }; type ChannelConfig = { payee: `0x${string}`; token: `0x${string}`; deposit: bigint; salt: Hex; authorizedSigner: `0x${string}`; }; type ChannelClientConfig = { publicClient: PublicClient; walletClient: WalletClient; channelAddress: Address; chainId: number; }; declare class ChannelClient { private readonly readActions; private readonly writeActions; private readonly config; constructor(config: ChannelClientConfig); openChannel(channelConfig: ChannelConfig): Promise; signVoucherOffline(channelId: Hex, cumulativeAmount: bigint): Promise; settleChannel(voucher: SignedVoucher): Promise; closeChannel(voucher: SignedVoucher): Promise; topUpChannel(channelId: Hex, amount: bigint): Promise; requestClose(channelId: Hex): Promise; withdraw(channelId: Hex): Promise; getChannelState(channelId: Hex): Promise; getCloseTimeout(): Promise; getVersion(): Promise; } declare const VOUCHER_TYPES: { readonly Voucher: readonly [{ readonly name: "channelId"; readonly type: "bytes32"; }, { readonly name: "cumulativeAmount"; readonly type: "uint128"; }]; }; declare function getVoucherDomain(chainId: number, verifyingContract: Address): { name: string; version: string; chainId: number; verifyingContract: `0x${string}`; }; declare function signVoucher(walletClient: WalletClient, params: { channelId: Hex; cumulativeAmount: bigint; chainId: number; verifyingContract: Address; }): Promise; export { ChannelClient, type ChannelClientConfig, type ChannelConfig, ChannelState, type SignedVoucher, VOUCHER_TYPES, type VoucherParams, getVoucherDomain, signVoucher };