import { Address, Hex, Account, Hash, PublicClient, WalletClient } from 'viem'; type ChannelState = { payer: Address; payee: Address; token: Address; authorizedSigner: Address; deposit: bigint; settled: bigint; closeRequestedAt: bigint; finalized: boolean; }; type ChannelActions = { openChannel: (args: { payee: Address; token: Address; deposit: bigint; salt: Hex; authorizedSigner: Address; account?: Account | Address; }) => Promise; settleChannel: (args: { channelId: Hex; cumulativeAmount: bigint; signature: Hex; account?: Account | Address; }) => Promise; closeChannel: (args: { channelId: Hex; cumulativeAmount: bigint; signature: Hex; account?: Account | Address; }) => Promise; topUpChannel: (args: { channelId: Hex; amount: bigint; account?: Account | Address; }) => Promise; requestCloseChannel: (args: { channelId: Hex; account?: Account | Address; }) => Promise; withdrawChannel: (args: { channelId: Hex; account?: Account | Address; }) => Promise; getChannel: (args: { channelId: Hex; }) => Promise; /** * @deprecated The deployed MicroPaymentChannel ABI no longer exposes a `CLOSE_TIMEOUT` * constant — it was replaced by the configurable {@link closeTimeout} getter plus the * {@link MIN_CLOSE_TIMEOUT}/{@link MAX_CLOSE_TIMEOUT} bounds. This wrapper now delegates * to the on-chain `closeTimeout()` getter so it no longer reverts; use {@link closeTimeout}. */ CLOSE_TIMEOUT: () => Promise; /** Current configurable close-timeout (seconds, view). ABI: closeTimeout() -> uint64. */ closeTimeout: () => Promise; /** Set the configurable close-timeout window (owner-gated). ABI: setCloseTimeout(uint64 _timeout). */ setCloseTimeout: (args: { timeout: bigint; account?: Account | Address; }) => Promise; /** Whether a given channelId has already been closed (view). ABI: closedChannels(bytes32) -> bool. */ closedChannels: (args: { channelId: Hex; }) => Promise; /** Upper bound for {@link setCloseTimeout} (view). ABI: MAX_CLOSE_TIMEOUT() -> uint64. */ MAX_CLOSE_TIMEOUT: () => Promise; /** Lower bound for {@link setCloseTimeout} (view). ABI: MIN_CLOSE_TIMEOUT() -> uint64. */ MIN_CLOSE_TIMEOUT: () => Promise; VOUCHER_TYPEHASH: () => Promise; version: () => Promise; }; declare const channelActions: (address: Address) => (client: PublicClient | WalletClient) => ChannelActions; export { type ChannelState as C, type ChannelActions as a, channelActions as c };