import { MorphoGeneralPublicResponse } from '../../../types/lender/morpho-types';
import { AdditionalYields, GenericTokenList } from '../../../types';
import type { RiverMarketsRaw } from './types';
/**
 * Synthesized per-TroveManager lender key, e.g. `RIVER_8453_2` (= Base cbBTC
 * market). The CHAIN ID is part of the key (Fluid convention) so keys stay
 * GLOBALLY unique — River deploys the same factory indexes on BNB, Base and
 * Hemi with different collaterals.
 */
export declare function riverLenderKey(lender: string, chainId: string | number, index: number): string;
/** Recover `{ lender, chainId, index }` from a per-market key (or undefined). */
export declare function riverKeyParts(key: string): {
    lender: string;
    chainId: string;
    index: number;
} | undefined;
/**
 * Map one River deployment's on-chain batch into the shared
 * `MorphoGeneralPublicResponse` shape, keyed by `RIVER_<chainId>_<TM_INDEX>` — one key
 * per TroveManager (collateral market).
 *
 * Per market:
 *  - COLLATERAL entry: totals = market collateral; LTV = 1/MCR; the
 *    "liquidation penalty" is approximated as MCR − 1 (V1-style liquidation
 *    hands the SP the WHOLE trove collateral, so the borrower's max loss at
 *    liquidation ≈ the ICR buffer — there is no fixed penalty parameter);
 *  - LOAN entry (satUSD): `totalDebt` = market debt; the interest rate is
 *    PROTOCOL-SET (currently 0% → `variableBorrowRate` 0); the one-off
 *    decaying-baseRate MINT FEE is NOT an APR and therefore lives in
 *    `params.market.river.mintFeeRate` (WAD string), not in the rate fields;
 *    `borrowLiquidity` = min(coll·price/MCR − debt, maxSystemDebt − debt).
 *  - The single per-chain StabilityPool ("earn") is attached to market
 *    index 0 ONLY (its loan-row `totalDeposits`); other markets report 0 so
 *    chain aggregates do not double-count. SP yield is 0 while the protocol
 *    rate is 0% (SP earns liquidation gains + OSHI emissions only).
 */
export declare function convertRiverMarketsToResponse(raw: RiverMarketsRaw, chainId: string, prices?: {
    [asset: string]: number;
}, _additionalYields?: AdditionalYields, tokens?: GenericTokenList): {
    [m: string]: MorphoGeneralPublicResponse;
};
//# sourceMappingURL=convertPublic.d.ts.map