/**
 * Yearn V3 discovery via the public **yDaemon** API.
 *
 * yDaemon is Yearn's metadata service: one GET per chain returns every
 * vault it indexes — V3 *and* legacy V2 — already enriched with USD TVL,
 * realized APR, price-per-share and the underlying token. We fetch it
 * directly (no multicall, no archival RPC) and keep only the **V3**
 * vaults, mirroring the Lagoon fetcher's HTTP-only shape.
 *
 * Endpoint and chain coverage:
 *   https://ydaemon.yearn.fi/{chainId}/vaults/all   (REST, no auth)
 * Chains are gated by {@link YEARN_CHAIN_IDS} so we don't fire a request
 * at chains where Yearn has no V3 factory. yDaemon paginates with
 * `?limit=N&page=M` (1-indexed); we loop until a short page.
 *
 * V3 vs V2: every vault carries a `version`. V3 vaults are `3.x.y`
 * (`kind` is `Single Strategy` / `Multi Strategy`); V2/legacy are `0.x`
 * (`kind: Legacy`). We keep only `version` starting `3.` so this provider
 * stays a clean ERC-4626 (VaultV3 / TokenizedStrategy) surface.
 */
export declare const YEARN_YDAEMON_BASE = "https://ydaemon.yearn.fi";
/**
 * Chains with endorsed Yearn **V3** vaults indexed by yDaemon (numeric
 * chain ids as strings). Verified against
 * `ydaemon.yearn.fi/{chainId}/vaults/all` — only chains that actually
 * return `version: 3.x` vaults are listed, so we don't waste a round-trip.
 * Extend as Yearn deploys V3 to more chains — the parser is
 * chain-agnostic, this set only decides whether to issue the request.
 */
export declare const YEARN_CHAIN_IDS: Set<string>;
export declare const hasYearnVaults: (chainId: string) => boolean;
/** True when a yDaemon vault is a V3 (TokenizedStrategy / VaultV3) vault. */
export declare const isYearnV3: (v: YDaemonVault) => boolean;
/** Shape of a single yDaemon `/vaults/all` entry (fields we consume). */
export interface YDaemonVault {
    address: string | null;
    /** Vault kind — `Single Strategy` | `Multi Strategy` (V3) | `Legacy` (V2). */
    kind: string | null;
    symbol: string | null;
    name: string | null;
    /** Semver — `3.0.4`, `0.4.6`, … Drives the V3 filter. */
    version: string | null;
    /** Yearn product category, e.g. `Pendle`, `Curve`, `Velodrome`. */
    category: string | null;
    /** Share-token decimals. */
    decimals: number | null;
    chainID: number | null;
    /** Curated/whitelisted by Yearn. We keep only endorsed V3 vaults. */
    endorsed: boolean | null;
    /** Raw price-per-share — `convertToAssets(10**decimals)`, asset-scaled. */
    pricePerShare: string | null;
    /** Underlying asset token. */
    token: {
        address: string | null;
        symbol: string | null;
        name: string | null;
        decimals: number | null;
    } | null;
    tvl: {
        /** Total underlying held, raw integer string (asset-decimal scaled). */
        totalAssets: string | null;
        /** TVL in USD (decimal number). */
        tvl: number | null;
        /** USD price of one underlying unit. */
        price: number | null;
    } | null;
    apr: {
        /** Realized net APR as a FRACTION (e.g. 0.0512 = 5.12 %). */
        netAPR: number | null;
        fees: {
            /** Performance fee as a fraction (0.1 = 10 %). */
            performance: number | null;
            management: number | null;
        } | null;
        extra: {
            /** Extra staking-rewards APR, fraction. */
            stakingRewardsAPR: number | null;
        } | null;
        /** Forward-looking (expected) net APR, fraction. Fallback for new
         *  vaults with no realized `netAPR` history yet. */
        forwardAPR: {
            netAPR: number | null;
        } | null;
    } | null;
}
/**
 * Fetch every endorsed Yearn **V3** vault on a chain, paginating until
 * yDaemon returns a short page. Returns the raw yDaemon items already
 * filtered to V3 + endorsed; normalization to `YearnVault` happens in
 * `fetchPublic`.
 */
export declare function fetchYearnApiVaults(chainId: string): Promise<YDaemonVault[]>;
//# sourceMappingURL=api.d.ts.map