import { GenericCurrency } from '../types/general';
/**
 * A single underlying market a curated/meta vault allocates deposits into,
 * with the vault's current size in that market. Lets a depositor see what
 * their funds are actually exposed to (collateral type, concentration,
 * per-market rate) rather than just the blended vault APR.
 *
 * Shared across vault providers that expose an allocation breakdown
 * (Morpho/Moolah markets, Silo markets). `marketId` is provider-specific:
 * a 0x64 market key for Morpho/Moolah, a 0x40 market (silo) address for
 * Silo.
 */
export interface VaultMarketExposure {
    /** Lowercased market identifier (provider-specific format). */
    marketId: string;
    /**
     * The `${lender}:${chainId}:${underlying}` market uid — the same key the
     * lending/markets API uses for this market's supply (loan) side, so an
     * exposure can be joined to the full market record. Present only on real
     * market entries (absent on the synthetic `idle` entry).
     */
    marketUid?: string;
    /** Lowercased collateral token address backing this market. */
    collateralAddress: string;
    /** Hydrated collateral metadata from the token list, if available. */
    collateral?: GenericCurrency;
    /** Vault assets allocated to this market, human-formatted. */
    assets: number;
    /** Allocated assets in USD (uses the vault underlying price). */
    assetsUsd: number;
    /** Share of the vault's total assets, in percent (0..100). */
    weightPct: number;
    /** This market's supply APR in percent, net of the market protocol fee. */
    supplyApr: number;
    /**
     * True for the synthetic "idle" entry representing uninvested vault assets
     * (deposits not currently deployed into any market). Idle funds earn
     * nothing, so `supplyApr` is `0`, `collateral`/`collateralAddress` are
     * empty, and `marketId` is the sentinel `'idle'`. With the idle entry
     * present, allocation-based breakdowns (Lista, Silo) sum to ~100%.
     * Absent/false on real market entries. Not emitted by Fluid (its
     * breakdown is over borrows, not vault allocation).
     */
    idle?: boolean;
}
/** Sentinel `marketId` for the synthetic idle exposure entry. */
export declare const IDLE_MARKET_ID = "idle";
/**
 * Append a tagged idle entry to an allocation breakdown and re-sort by weight.
 * Idle = `totalAssetsFormatted - Σ deployed assets` (uninvested deposits),
 * clamped at zero. Returns the list unchanged when idle is negligible
 * (≤ `1e-9` of total, i.e. float noise). `pricePerUnit` is USD per underlying
 * unit; pass `0` if unknown.
 */
export declare function withIdleExposure(exposures: VaultMarketExposure[], totalAssetsFormatted: number, pricePerUnit: number): VaultMarketExposure[];
//# sourceMappingURL=exposure.d.ts.map