import { FetcherResult, OraclePriceEntry, ParseContext } from '../types';
/**
 * Compound V2 query metadata
 */
export interface CompoundV2QueryMetaExtended {
    cToken: string;
    underlying: string;
    lender: string;
    /** Base asset override (if lender uses non-USD base) */
    baseAssetOverride?: string;
    /** Fixed scaling decimals override (replaces default 36 - underlyingDecimals) */
    scalingDecimalsOverride?: number;
}
/**
 * Compound V2 Oracle ABI - getUnderlyingPrice
 */
export declare const CompoundV2OracleAbi: readonly [{
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "cToken";
        readonly type: "address";
    }];
    readonly name: "getUnderlyingPrice";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}];
/**
 * Get multicall calls for Compound V2 oracles
 * Uses compoundV2Oracles map and compoundV2TokenArray for cToken data
 * Price is normalized via: price / (10^(18 + 18 - underlyingDecimals))
 */
export declare function getCompoundV2Calls(chainId: string): FetcherResult<CompoundV2QueryMetaExtended[]>[];
/**
 * Parse Compound V2 oracle results into structured price entries
 * Price is normalized via: price / (10^(18 + 18 - underlyingDecimals))
 * Decimals are read from tokenList
 */
export declare function parseCompoundV2Results(data: any[], meta: CompoundV2QueryMetaExtended[], context: ParseContext): OraclePriceEntry[];
/**
 * Get ABI for Compound V2 oracle calls
 */
export declare function getCompoundV2Abi(): readonly [{
    readonly inputs: readonly [{
        readonly internalType: "address";
        readonly name: "cToken";
        readonly type: "address";
    }];
    readonly name: "getUnderlyingPrice";
    readonly outputs: readonly [{
        readonly internalType: "uint256";
        readonly name: "";
        readonly type: "uint256";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}];
/**
 * Compound V2 Oracle Fetcher module
 */
export declare const compoundV2Fetcher: {
    getCalls: typeof getCompoundV2Calls;
    parse: typeof parseCompoundV2Results;
    getAbi: typeof getCompoundV2Abi;
};
//# sourceMappingURL=compoundV2.d.ts.map