import { FetcherResult, OraclePriceEntry, ParseContext } from '../types';
/**
 * River (Satoshi rebrand — Liquity V1/Prisma-lineage omni-chain CDP) oracle
 * price fetcher.
 *
 * Each market's `TroveManager.fetchPrice()` returns the COLLATERAL price in USD
 * (1e18-scaled) — the same read the public-data fetcher makes. `fetchPrice` is
 * nonpayable but simulates cleanly under an `eth_call` multicall. Direct USD
 * (PASS 1) → feeds the shared `usdPrices` map, so River collateral on chains
 * where no other integrated protocol prices it (BNB / Base / Hemi bespoke LSTs)
 * is covered from River's own oracle. The debt token (satUSD) is emitted pegged
 * to $1 (matching `convertPublic`).
 */
interface RiverMarketMeta {
    lender: string;
    chainId: string;
    index: number;
    collToken: string;
    debtToken?: string;
}
/** Build one `fetchPrice()` call per market across every River deployment. */
export declare function getRiverCalls(chainId: string): FetcherResult<RiverMarketMeta>[];
/**
 * Parse a market's `fetchPrice` into direct-USD entries: the collateral at its
 * on-chain USD price, and satUSD pegged to $1. Keyed under the per-market
 * `RIVER_<chain>_<index>` lender.
 */
export declare function parseRiverResults(data: any[], meta: RiverMarketMeta, context: ParseContext): OraclePriceEntry[];
/** ABI for the River oracle call (`fetchPrice`). */
export declare function getRiverAbi(): readonly [{
    readonly type: "function";
    readonly name: "getEntireSystemColl";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "getEntireSystemDebt";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "MCR";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "interestRate";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "getBorrowingRateWithDecay";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "borrowingFeeFloor";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "maxBorrowingFee";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "maxSystemDebt";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "debtGasCompensation";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "collateralToken";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
    }];
}, {
    readonly type: "function";
    readonly name: "sortedTroves";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "address";
    }];
}, {
    readonly type: "function";
    readonly name: "getTroveOwnersCount";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "paused";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
    }];
}, {
    readonly type: "function";
    readonly name: "sunsetting";
    readonly stateMutability: "view";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "bool";
    }];
}, {
    readonly type: "function";
    readonly name: "fetchPrice";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "troves";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "debt";
        readonly type: "uint256";
    }, {
        readonly name: "coll";
        readonly type: "uint256";
    }, {
        readonly name: "stake";
        readonly type: "uint256";
    }, {
        readonly name: "status";
        readonly type: "uint8";
    }, {
        readonly name: "arrayIndex";
        readonly type: "uint128";
    }, {
        readonly name: "activeInterestIndex";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "getEntireDebtAndColl";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly name: "_borrower";
        readonly type: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "debt";
        readonly type: "uint256";
    }, {
        readonly name: "coll";
        readonly type: "uint256";
    }, {
        readonly name: "pendingDebtReward";
        readonly type: "uint256";
    }, {
        readonly name: "pendingCollateralReward";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "getTroveStatus";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly name: "_borrower";
        readonly type: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "getCurrentICR";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly name: "_borrower";
        readonly type: "address";
    }, {
        readonly name: "_price";
        readonly type: "uint256";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "surplusBalances";
    readonly stateMutability: "view";
    readonly inputs: readonly [{
        readonly name: "";
        readonly type: "address";
    }];
    readonly outputs: readonly [{
        readonly name: "";
        readonly type: "uint256";
    }];
}, {
    readonly type: "function";
    readonly name: "claimCollateral";
    readonly stateMutability: "nonpayable";
    readonly inputs: readonly [{
        readonly name: "_receiver";
        readonly type: "address";
    }];
    readonly outputs: readonly [];
}];
/** River Oracle Fetcher module. */
export declare const riverFetcher: {
    getCalls: typeof getRiverCalls;
    parse: typeof parseRiverResults;
    getAbi: typeof getRiverAbi;
};
export {};
//# sourceMappingURL=river.d.ts.map