import type { SumerPositionInput, GroupAccumulator, SumerMarketMeta } from './types';
/**
 * Sumer absorption waterfall: computes total effective collateral in USD.
 *
 * For each group, collateral absorbs debt in priority order:
 *   1. cToken collateral absorbs suToken debt @ intraMintRate (highest)
 *   2. cToken collateral absorbs cToken debt   @ intraCRate
 *   3. suToken collateral absorbs remaining suToken debt @ intraSuRate
 *   4. suToken collateral absorbs remaining cToken debt  @ intraSuRate
 * Remaining collateral is valued at inter-group rates.
 */
export declare function computeSumerWaterfall(groups: SumerMarketMeta[], accum: GroupAccumulator): number;
/**
 * Build group-level rate maps and accumulators from a position array.
 *
 * Returns:
 *  - groupRatesMap: unique SumerMarketMeta per groupId
 *  - gAccum: per-group accumulators (enabled collateral only)
 *  - gAccumAll: per-group accumulators (all protocol-active markets)
 */
export declare function buildSumerAccumulators(positions: SumerPositionInput[]): {
    groupRatesMap: Record<number, SumerMarketMeta>;
    gAccum: GroupAccumulator;
    gAccumAll: GroupAccumulator;
};
/**
 * Clone positions and apply a USD delta to the target market.
 */
export declare function applyPositionDelta(positions: SumerPositionInput[], targetMarketUid: string, depositsDeltaUSD: number, debtDeltaUSD: number, debtStableDeltaUSD: number): SumerPositionInput[];
//# sourceMappingURL=waterfall.d.ts.map