import type { PaymentProviderAdapter } from "../interfaces.js"; import type { ProviderBalance, GetProviderBalanceOptions, ProviderWallet, ListProviderWalletsOptions, CreateProviderWalletInput, ProviderTransferStatus, ProviderTransferType, ProviderTransferFee, ProviderTransfer, GetTransferHistoryOptions, ValidateProviderTransferInput, ValidateProviderTransferResult, TransferAssetInput, TransferAssetResult } from "../provider-types.js"; export interface TreasuryDomain { /** * Get the platform's wallet balances held at the provider. * All amounts in major units. */ getBalance(provider: string, options?: GetProviderBalanceOptions): Promise; /** * List the platform's wallets registered with the provider. * All amounts in major units. */ listWallets(provider: string, options?: ListProviderWalletsOptions): Promise; /** * Create a new wallet at the provider (e.g. NGN settlement wallet). */ createWallet(provider: string, input: CreateProviderWalletInput): Promise; /** * Poll the status of an async bank transfer by its provider session ID. * The `sessionId` is the `providerReference` returned by `pay.payouts.send()`. * Use `pay.payouts.verifyPayout()` for SDK-level status; this is for raw * reconciliation / debugging. */ getTransferStatus(provider: string, sessionId: string): Promise; /** * Estimate the fee for a transfer before initiating it. * Amount in major units. */ getTransferFee(provider: string, symbol: string, transferType: ProviderTransferType): Promise; /** * Fetch the provider's transfer history for reconciliation. * All amounts in major units. */ getTransferHistory(provider: string, options?: GetTransferHistoryOptions): Promise; /** * Dry-run validation of an asset transfer. Returns fee preview, balance * sufficiency check, and optional recipient info — without moving any funds. * Run this before `transferAsset` to show users a fee breakdown. * All amounts in major units. */ validateTransfer(provider: string, input: ValidateProviderTransferInput): Promise; /** * Execute an asset transfer at the provider. * Always run `validateTransfer` first to pre-flight the request. * All amounts in major units. */ transferAsset(provider: string, input: TransferAssetInput): Promise; } export declare function createTreasuryDomain(providerMap: Map): TreasuryDomain; //# sourceMappingURL=treasury.d.ts.map