import type { FetcherResult, OraclePriceEntry, ParseContext } from '../types';
/**
 * Meta shape — empty placeholder; the pool + CM list is discovered lazily
 * from the MarketCompressor response in `parse`, so no call-time metadata
 * is needed.
 */
export interface GearboxV3QueryMeta {
    _: never[];
}
/**
 * Build multicall calls for Gearbox V3.1 oracle prices.
 *
 * Currently a no-op (`[]`). The public-data fetcher at
 * `lending/public-data/gearbox/` already runs a MarketCompressor call per
 * chain — emitting duplicate oracle-side calls here would double RPC
 * cost without adding information. When oracle prices need to diverge
 * from public-data (e.g. push a different USD valuation basis), wire
 * this to its own `MarketCompressor.getMarkets` call via the
 * per-curator list from `gearboxMarketConfigurators(chainId)`.
 */
export declare function getGearboxV3Calls(_chainId: string): FetcherResult<GearboxV3QueryMeta>[];
/**
 * Parse Gearbox V3.1 oracle results — emit per-(CM, token) price entries.
 *
 * Input shape matches `MarketCompressor.getMarkets` → `MarketData[]`
 * where each market's `creditManagers[i]` carries a
 * `{creditManager.collateralTokens: [{token, liquidationThreshold}]}`
 * list. We emit:
 *   - one "base" entry for the pool underlying with `staticBase: true`
 *   - one collateral entry per collateralToken with `priceUSD` resolved
 *     from `context.usdPrices`.
 *
 * Targets are the per-CM lender keys synthesized by `gearboxV3LenderKey`.
 * Expired or paused CMs are skipped.
 */
export declare function parseGearboxV3Results(data: any[], _meta: GearboxV3QueryMeta, context: ParseContext): OraclePriceEntry[];
export declare function getGearboxV3Abi(): readonly [{
    readonly type: "function";
    readonly name: "getMarkets";
    readonly inputs: readonly [{
        readonly name: "filter";
        readonly type: "tuple";
        readonly components: readonly [{
            readonly name: "configurators";
            readonly type: "address[]";
        }, {
            readonly name: "pools";
            readonly type: "address[]";
        }, {
            readonly name: "underlying";
            readonly type: "address";
        }];
    }];
    readonly outputs: readonly [{
        readonly name: "result";
        readonly type: "tuple[]";
        readonly components: readonly [{
            readonly name: "acl";
            readonly type: "address";
        }, {
            readonly name: "contractsRegister";
            readonly type: "address";
        }, {
            readonly name: "treasury";
            readonly type: "address";
        }, {
            readonly name: "pool";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }, {
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly name: "decimals";
                readonly type: "uint8";
            }, {
                readonly name: "totalSupply";
                readonly type: "uint256";
            }, {
                readonly name: "quotaKeeper";
                readonly type: "address";
            }, {
                readonly name: "interestRateModel";
                readonly type: "address";
            }, {
                readonly name: "underlying";
                readonly type: "address";
            }, {
                readonly name: "availableLiquidity";
                readonly type: "uint256";
            }, {
                readonly name: "expectedLiquidity";
                readonly type: "uint256";
            }, {
                readonly name: "baseInterestIndex";
                readonly type: "uint256";
            }, {
                readonly name: "baseInterestRate";
                readonly type: "uint256";
            }, {
                readonly name: "dieselRate";
                readonly type: "uint256";
            }, {
                readonly name: "supplyRate";
                readonly type: "uint256";
            }, {
                readonly name: "withdrawFee";
                readonly type: "uint256";
            }, {
                readonly name: "totalBorrowed";
                readonly type: "uint256";
            }, {
                readonly name: "totalDebtLimit";
                readonly type: "uint256";
            }, {
                readonly name: "creditManagerDebtParams";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "creditManager";
                    readonly type: "address";
                }, {
                    readonly name: "borrowed";
                    readonly type: "uint256";
                }, {
                    readonly name: "limit";
                    readonly type: "uint256";
                }, {
                    readonly name: "available";
                    readonly type: "uint256";
                }];
            }, {
                readonly name: "baseInterestIndexLU";
                readonly type: "uint256";
            }, {
                readonly name: "expectedLiquidityLU";
                readonly type: "uint256";
            }, {
                readonly name: "quotaRevenue";
                readonly type: "uint256";
            }, {
                readonly name: "lastBaseInterestUpdate";
                readonly type: "uint40";
            }, {
                readonly name: "lastQuotaRevenueUpdate";
                readonly type: "uint40";
            }, {
                readonly name: "isPaused";
                readonly type: "bool";
            }];
        }, {
            readonly name: "quotaKeeper";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }, {
                readonly name: "rateKeeper";
                readonly type: "address";
            }, {
                readonly name: "quotas";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly name: "rate";
                    readonly type: "uint16";
                }, {
                    readonly name: "cumulativeIndexLU";
                    readonly type: "uint192";
                }, {
                    readonly name: "quotaIncreaseFee";
                    readonly type: "uint16";
                }, {
                    readonly name: "totalQuoted";
                    readonly type: "uint96";
                }, {
                    readonly name: "limit";
                    readonly type: "uint96";
                }, {
                    readonly name: "isActive";
                    readonly type: "bool";
                }];
            }, {
                readonly name: "creditManagers";
                readonly type: "address[]";
            }, {
                readonly name: "lastQuotaRateUpdate";
                readonly type: "uint40";
            }];
        }, {
            readonly name: "interestRateModel";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }];
        }, {
            readonly name: "rateKeeper";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }, {
                readonly name: "rates";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly name: "rate";
                    readonly type: "uint16";
                }];
            }];
        }, {
            readonly name: "priceOracle";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }, {
                readonly name: "priceFeedMap";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "token";
                    readonly type: "address";
                }, {
                    readonly name: "reserve";
                    readonly type: "bool";
                }, {
                    readonly name: "priceFeed";
                    readonly type: "address";
                }, {
                    readonly name: "stalenessPeriod";
                    readonly type: "uint32";
                }];
            }, {
                readonly name: "priceFeedTree";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }, {
                    readonly name: "description";
                    readonly type: "string";
                }, {
                    readonly name: "decimals";
                    readonly type: "uint8";
                }, {
                    readonly name: "skipCheck";
                    readonly type: "bool";
                }, {
                    readonly name: "updatable";
                    readonly type: "bool";
                }, {
                    readonly name: "underlyingFeeds";
                    readonly type: "address[]";
                }, {
                    readonly name: "underlyingStalenessPeriods";
                    readonly type: "uint32[]";
                }, {
                    readonly name: "answer";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "price";
                        readonly type: "int256";
                    }, {
                        readonly name: "updatedAt";
                        readonly type: "uint256";
                    }, {
                        readonly name: "success";
                        readonly type: "bool";
                    }];
                }];
            }];
        }, {
            readonly name: "lossPolicy";
            readonly type: "tuple";
            readonly components: readonly [{
                readonly name: "baseParams";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "addr";
                    readonly type: "address";
                }, {
                    readonly name: "version";
                    readonly type: "uint256";
                }, {
                    readonly name: "contractType";
                    readonly type: "bytes32";
                }, {
                    readonly name: "serializedParams";
                    readonly type: "bytes";
                }];
            }];
        }, {
            readonly name: "tokens";
            readonly type: "tuple[]";
            readonly components: readonly [{
                readonly name: "addr";
                readonly type: "address";
            }, {
                readonly name: "symbol";
                readonly type: "string";
            }, {
                readonly name: "name";
                readonly type: "string";
            }, {
                readonly name: "decimals";
                readonly type: "uint8";
            }];
        }, {
            readonly name: "creditManagers";
            readonly type: "tuple[]";
            readonly components: readonly [{
                readonly name: "creditFacade";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }, {
                    readonly name: "degenNFT";
                    readonly type: "address";
                }, {
                    readonly name: "botList";
                    readonly type: "address";
                }, {
                    readonly name: "expirable";
                    readonly type: "bool";
                }, {
                    readonly name: "expirationDate";
                    readonly type: "uint40";
                }, {
                    readonly name: "maxDebtPerBlockMultiplier";
                    readonly type: "uint8";
                }, {
                    readonly name: "minDebt";
                    readonly type: "uint256";
                }, {
                    readonly name: "maxDebt";
                    readonly type: "uint256";
                }, {
                    readonly name: "forbiddenTokensMask";
                    readonly type: "uint256";
                }, {
                    readonly name: "isPaused";
                    readonly type: "bool";
                }];
            }, {
                readonly name: "creditManager";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }, {
                    readonly name: "name";
                    readonly type: "string";
                }, {
                    readonly name: "accountFactory";
                    readonly type: "address";
                }, {
                    readonly name: "underlying";
                    readonly type: "address";
                }, {
                    readonly name: "pool";
                    readonly type: "address";
                }, {
                    readonly name: "creditFacade";
                    readonly type: "address";
                }, {
                    readonly name: "creditConfigurator";
                    readonly type: "address";
                }, {
                    readonly name: "maxEnabledTokens";
                    readonly type: "uint8";
                }, {
                    readonly name: "collateralTokens";
                    readonly type: "tuple[]";
                    readonly components: readonly [{
                        readonly name: "token";
                        readonly type: "address";
                    }, {
                        readonly name: "liquidationThreshold";
                        readonly type: "uint16";
                    }];
                }, {
                    readonly name: "feeInterest";
                    readonly type: "uint16";
                }, {
                    readonly name: "feeLiquidation";
                    readonly type: "uint16";
                }, {
                    readonly name: "liquidationDiscount";
                    readonly type: "uint16";
                }, {
                    readonly name: "feeLiquidationExpired";
                    readonly type: "uint16";
                }, {
                    readonly name: "liquidationDiscountExpired";
                    readonly type: "uint16";
                }];
            }, {
                readonly name: "creditConfigurator";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }];
            }, {
                readonly name: "accountFactory";
                readonly type: "tuple";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }];
            }, {
                readonly name: "adapters";
                readonly type: "tuple[]";
                readonly components: readonly [{
                    readonly name: "baseParams";
                    readonly type: "tuple";
                    readonly components: readonly [{
                        readonly name: "addr";
                        readonly type: "address";
                    }, {
                        readonly name: "version";
                        readonly type: "uint256";
                    }, {
                        readonly name: "contractType";
                        readonly type: "bytes32";
                    }, {
                        readonly name: "serializedParams";
                        readonly type: "bytes";
                    }];
                }, {
                    readonly name: "targetContract";
                    readonly type: "address";
                }];
            }];
        }, {
            readonly name: "configurator";
            readonly type: "address";
        }, {
            readonly name: "pausableAdmins";
            readonly type: "address[]";
        }, {
            readonly name: "unpausableAdmins";
            readonly type: "address[]";
        }, {
            readonly name: "emergencyLiquidators";
            readonly type: "address[]";
        }];
    }];
    readonly stateMutability: "view";
}];
/** Gearbox V3.1 Oracle Fetcher module */
export declare const gearboxV3Fetcher: {
    getCalls: typeof getGearboxV3Calls;
    parse: typeof parseGearboxV3Results;
    getAbi: typeof getGearboxV3Abi;
};
//# sourceMappingURL=gearbox.d.ts.map