import { CompoundV3QueryMeta, FetcherResult, OraclePriceEntry, ParseContext } from '../types';
/**
 * Chainlink Aggregator ABI - latestRoundData
 */
export declare const ChainlinkAggregatorAbi: readonly [{
    readonly inputs: readonly [];
    readonly name: "latestRoundData";
    readonly outputs: readonly [{
        readonly internalType: "uint80";
        readonly name: "roundId";
        readonly type: "uint80";
    }, {
        readonly internalType: "int256";
        readonly name: "answer";
        readonly type: "int256";
    }, {
        readonly internalType: "uint256";
        readonly name: "startedAt";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "updatedAt";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint80";
        readonly name: "answeredInRound";
        readonly type: "uint80";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}];
/**
 * Get multicall calls for Compound V3 oracles
 * Uses per-asset oracle map with latestRoundData()
 * Includes base asset info from compoundV3BaseData for proper price scaling
 */
export declare function getCompoundV3Calls(chainId: string): FetcherResult<CompoundV3QueryMeta[]>[];
/**
 * Parse Compound V3 oracle results into structured price entries
 * Uses latestRoundData() - answer is at index 1, 8 decimals
 *
 * Compound V3 prices are denominated in the base asset (e.g., USDC, WETH).
 * If we have the base asset's USD price, we can calculate USD prices.
 * Otherwise, we return the price as-is (denominated in base asset).
 */
export declare function parseCompoundV3Results(data: any[], meta: CompoundV3QueryMeta[], context: ParseContext): OraclePriceEntry[];
/**
 * Get ABI for Compound V3 oracle calls
 */
export declare function getCompoundV3Abi(): readonly [{
    readonly inputs: readonly [];
    readonly name: "latestRoundData";
    readonly outputs: readonly [{
        readonly internalType: "uint80";
        readonly name: "roundId";
        readonly type: "uint80";
    }, {
        readonly internalType: "int256";
        readonly name: "answer";
        readonly type: "int256";
    }, {
        readonly internalType: "uint256";
        readonly name: "startedAt";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint256";
        readonly name: "updatedAt";
        readonly type: "uint256";
    }, {
        readonly internalType: "uint80";
        readonly name: "answeredInRound";
        readonly type: "uint80";
    }];
    readonly stateMutability: "view";
    readonly type: "function";
}];
/**
 * Compound V3 Oracle Fetcher module
 */
export declare const compoundV3Fetcher: {
    getCalls: typeof getCompoundV3Calls;
    parse: typeof parseCompoundV3Results;
    getAbi: typeof getCompoundV3Abi;
};
//# sourceMappingURL=compoundV3.d.ts.map