/**
 * Sumer CTokenMetadata struct as returned by the Sumer lens contract.
 */
type SumerCTokenMetadata = {
    cToken?: string;
    exchangeRateCurrent?: bigint;
    supplyRatePerBlock?: bigint;
    borrowRatePerBlock?: bigint;
    reserveFactorMantissa?: bigint;
    totalBorrows?: bigint;
    totalReserves?: bigint;
    totalSupply?: bigint;
    totalCash?: bigint;
    isListed?: boolean;
    underlyingAssetAddress?: string;
    cTokenDecimals?: bigint;
    underlyingDecimals?: bigint;
    isCToken?: boolean;
    isCEther?: boolean;
    borrowCap?: bigint;
    depositCap?: bigint;
    heteroLiquidationIncentive?: bigint;
    homoLiquidationIncentive?: bigint;
    sutokenLiquidationIncentive?: bigint;
    groupId?: number | bigint;
    intraRate?: bigint;
    interRate?: bigint;
    mintRate?: bigint;
    discountRate?: bigint;
    interMintAllowed?: boolean;
};
/**
 * Safely extracts and normalizes all fields from a Sumer CTokenMetadata object.
 * Returns a plain JS object compatible with the CTokenMeta shape used by publicCallParse.
 */
export declare function readSumerCTokenMetadata(meta: SumerCTokenMetadata, token: any): {
    cToken: string;
    exchangeRateCurrent: bigint;
    supplyRatePerBlock: bigint;
    borrowRatePerBlock: bigint;
    reserveFactorMantissa: bigint;
    totalBorrows: bigint;
    totalReserves: bigint;
    totalSupply: bigint;
    totalCash: bigint;
    isListed: boolean;
    collateralFactorMantissa: bigint;
    underlyingAssetAddress: string;
    cTokenDecimals: bigint;
    underlyingDecimals: bigint;
    isCToken: boolean;
    isCEther: boolean;
    borrowCap: bigint;
    depositCap: bigint;
    groupId: number;
    intraRate: bigint;
    interRate: bigint;
    mintRate: bigint;
    discountRate: bigint;
    interMintAllowed: boolean;
    heteroLiquidationIncentive: bigint;
    homoLiquidationIncentive: bigint;
    sutokenLiquidationIncentive: bigint;
    pausedActions: {
        0: boolean;
        1: boolean;
        2: boolean;
        3: boolean;
        4: boolean;
        5: boolean;
        6: boolean;
        7: boolean;
        8: boolean;
    };
    isBorrowAllowed: boolean;
    depositRate: number;
    variableBorrowRate: number;
};
/**
 * Parse a CompactAssetGroup struct from the Sumer comptroller.
 * Guards against reverted multicall results ('0x' string placeholder).
 */
export declare function parseSumerAssetGroup(raw: any): {
    groupId: number;
    intraCRatePercent: number;
    intraMintRatePercent: number;
    intraSuRatePercent: number;
    interCRatePercent: number;
    interSuRatePercent: number;
};
/** Number of asset groups to fetch from the Sumer comptroller */
export declare const SUMER_GROUP_COUNT = 5;
/** Convert an array of parsed Sumer asset groups into normalized rate objects (0-1 scale). */
export declare function normalizeSumerGroups(parsed: ReturnType<typeof parseSumerAssetGroup>[]): {
    groupId: number;
    intraCRate: number;
    intraMintRate: number;
    intraSuRate: number;
    interCRate: number;
    interSuRate: number;
}[];
export {};
//# sourceMappingURL=sumer.d.ts.map