import type { CodecType, CoinPaymentCheque, CoinPaymentErr, CoinPaymentListenForItem, CoinPaymentPurseInfo, CoinPaymentStatus, HexString, Subscription, Transport } from '@novasamatech/host-api'; /** Purse identifier (RFC 0017). `0xffffffff` is the well-known main purse. */ export type PurseId = number; /** Receivable public key, as a 0x-prefixed 32-byte hex string. */ export type Receivable = HexString; export type PurseInfo = CodecType; export type Cheque = CodecType; /** Clearing status streamed by rebalance, delete, deposit, and refund. */ export type ClearingStatus = CodecType; /** Item streamed by `listenForPayment`: a delivery channel, then the cheque. */ export type PaymentDelivery = CodecType; type CoinPaymentInterrupt = CodecType; export declare const createCoinPayment: (transport?: Transport) => { createPurse(name: string): Promise; queryPurse(purse: PurseId): Promise; createReceivable(into: PurseId): Promise; createCheque(from: PurseId, to: Receivable, amount: number): Promise; rebalancePurse(from: PurseId, to: PurseId, amount: number, onStatus: (status: ClearingStatus) => void): Subscription; deletePurse(target: PurseId, drainInto: PurseId, onStatus: (status: ClearingStatus) => void): Subscription; deposit(cheque: Cheque, onStatus: (status: ClearingStatus) => void): Subscription; refund(receivable: Receivable, onStatus: (status: ClearingStatus) => void): Subscription; listenForPayment(receivable: Receivable, onDelivery: (item: PaymentDelivery) => void): Subscription; }; export declare const hostCoinPayment: { createPurse(name: string): Promise; queryPurse(purse: PurseId): Promise; createReceivable(into: PurseId): Promise; createCheque(from: PurseId, to: Receivable, amount: number): Promise; rebalancePurse(from: PurseId, to: PurseId, amount: number, onStatus: (status: ClearingStatus) => void): Subscription; deletePurse(target: PurseId, drainInto: PurseId, onStatus: (status: ClearingStatus) => void): Subscription; deposit(cheque: Cheque, onStatus: (status: ClearingStatus) => void): Subscription; refund(receivable: Receivable, onStatus: (status: ClearingStatus) => void): Subscription; listenForPayment(receivable: Receivable, onDelivery: (item: PaymentDelivery) => void): Subscription; }; export {};