import { type PublicClient, type Chain, type Transport } from 'viem'; export interface HistoryParams { limit?: number; offset?: number; fromBlock?: bigint; } export interface TransactionRecord { hash: `0x${string}`; from: `0x${string}`; to: `0x${string}` | null; value: bigint; /** Token contract address (null for native ETH, 0x0...0 for ETH recorded by ReputationModule) */ token: `0x${string}` | null; blockNumber: bigint; timestamp: number; /** 'agreement' when the transfer is part of a recurring payment, else 'transfer'. * Populated by the indexed (server) path only; undefined on the on-chain fallback. */ type?: string; } /** Result of a history query. * * `indexedHistoryUnavailable` is true when the full history could not be served — * either the indexed backbone is not reachable AND the configured RPC cannot serve * the full on-chain fallback scan (so `transactions` is a best-effort recent-only * window, possibly empty). Consumers should surface this so a degraded result is * not mistaken for "no activity". Full, complete history requires the indexer. */ export interface HistoryResult { transactions: TransactionRecord[]; indexedHistoryUnavailable: boolean; } /** Get transaction history for an account. * * Tries the indexed server API first; otherwise falls back to scanning on-chain * ReputationModule TransferRecorded + ERC-20 Transfer logs. When the configured * RPC cannot serve the full fallback scan, the result DEGRADES to a recent-only * window (or empty) and sets `indexedHistoryUnavailable: true` instead of * throwing — full, complete history requires the indexed backbone (F-5). */ export declare function getHistory(publicClient: PublicClient, account: `0x${string}`, serverUrl?: string, params?: HistoryParams, reputationModuleAddress?: `0x${string}`, tokenAddresses?: `0x${string}`[]): Promise; //# sourceMappingURL=history.d.ts.map