import { type SiloApiEntry } from '../../../lending/public-data/silo-v2/fetchPublic';
import type { OraclePriceEntry, ParseContext, TokenListMap, USDPriceMap } from '../types';
/**
 * Narrowed Silo v2 oracle-price prefetch via `api-v3.silo.finance`.
 *
 * The `silos.market{1,2}.solvencyOracle.quote` field already exposes the
 * same "1 baseToken in quoteToken units" value the on-chain `ISiloOracle.quote`
 * call produces, so when the indexer has data for a chain we can skip the
 * Silo v2 multicall entirely and emit the price entries from the GraphQL
 * response instead.
 *
 * This mirrors the Morpho GraphQL prefetch in `morpho.ts`: the prefetch
 * runs in parallel with the on-chain multicall, and the caller decides —
 * after both are settled — which source to feed into the parse pipeline.
 *
 * Returns `null` when the indexer has no data for the chain (caller must
 * fall back to on-chain) and throws on transport / GraphQL errors so the
 * caller can log and fall back.
 */
export declare function fetchSiloV2GraphQLMarkets(chainId: string): Promise<SiloApiEntry[] | null>;
/**
 * Morpho-style one-shot price fetcher: returns parsed `OraclePriceEntry[]`
 * (or `null` to signal "fall back to on-chain") in a single call.
 *
 * Self-contained — does NOT depend on prices populated by other lender
 * parsers. Empty silos that need a quote-token USD lookup are resolved
 * against the union of:
 *   1. USD prices self-derived from `supplyUsd / supply` across every
 *      non-empty silo half in the same GraphQL response (covers USDC,
 *      USDT, WETH, etc. since they show up as widely deposited assets).
 *   2. The caller-provided `basePrices` map (from `fetchOraclePrices`'s
 *      `basePrices` option).
 *
 * Mirrors `fetchMorphoGraphQLPrices` so the caller can treat both
 * protocols uniformly: parallel fetch, push entries directly, fall back
 * to the on-chain multicall when this returns `null`.
 */
export declare function fetchSiloV2GraphQLPrices(chainId: string, basePrices?: USDPriceMap, tokenList?: TokenListMap): Promise<OraclePriceEntry[] | null>;
/**
 * Convert a GraphQL-fetched silos list into oracle price entries.
 *
 * For each silo half:
 *  - If the solvencyOracle is the zero address → emit a `staticBase` entry
 *    priced via the partner token's USD (mirrors the on-chain parser).
 *  - Otherwise, `priceUSD = Number(quote) * quoteTokenUSD`. The raw price
 *    surfaced to consumers is `Number(quote)` so downstream math matches
 *    the on-chain output.
 *
 * Entries whose quote token has no resolved USD are skipped — the parse
 * order in `fetchOraclePrices.ts` must run this AFTER the base-USD tier
 * (Aave / Chainlink / Compound) so the cross-asset prices are available.
 */
export declare function parseSiloV2GraphQLResults(items: SiloApiEntry[], context: ParseContext): OraclePriceEntry[];
//# sourceMappingURL=siloV2Graphql.d.ts.map