import { Address, PublicClient } from 'viem';
/** `Spoke.ORACLE` is `immutable`; the result is safe to cache forever. */
export declare function getOracleAddress(publicClient: PublicClient, spokeAddress: Address): Promise
;
/** Batch read; reverts the WHOLE batch on the first bad reserve. */
export declare function getReservesPrices(publicClient: PublicClient, oracleAddress: Address, reserveIds: bigint[]): Promise;
export interface ReservePriceResult {
reserveId: bigint;
/** Raw 1e8 base units, or null on revert. */
priceRaw: bigint | null;
error: Error | null;
}
/**
* Per-reserve isolated read for display lists (one bad source ≠ whole list
* blank). One multicall round-trip instead of one `eth_call` per reserve:
* each entry is `getReservesPrices([reserveId])` with `allowFailure: true`, so
* a single reverting reserve isolates to its own error entry. A network-level
* multicall failure marks every reserve failed rather than throwing — callers
* (display hooks) rely on always getting a per-reserve result array.
*/
export declare function getReservesPricesSafe(publicClient: PublicClient, oracleAddress: Address, reserveIds: bigint[]): Promise;
//# sourceMappingURL=oracle.d.ts.map