import { NetworkType } from "../core/chains"; import { AaveV2LPToken } from "../tokens/aave"; import { NormalToken } from "../tokens/normal"; import { SupportedToken } from "../tokens/token"; import { Address } from "../utils/types"; export interface PriceFeed { token: string; priceFeed: string; } export declare enum PriceFeedType { CHAINLINK_ORACLE = 0, YEARN_ORACLE = 1, CURVE_2LP_ORACLE = 2, CURVE_3LP_ORACLE = 3, CURVE_4LP_ORACLE = 4, ZERO_ORACLE = 5, WSTETH_ORACLE = 6, BOUNDED_ORACLE = 7, COMPOSITE_ORACLE = 8, WRAPPED_AAVE_V2_ORACLE = 9, COMPOUND_V2_ORACLE = 10, BALANCER_STABLE_LP_ORACLE = 11, BALANCER_WEIGHTED_LP_ORACLE = 12, CURVE_CRYPTO_ORACLE = 13, THE_SAME_AS = 14, REDSTONE_ORACLE = 15, ERC4626_VAULT_ORACLE = 16, NETWORK_DEPENDENT = 17, CURVE_USD_ORACLE = 18, PYTH_ORACLE = 19, MELLOW_LRT_ORACLE = 20, PENDLE_PT_TWAP_ORACLE = 21 } export declare const lpPriceFeedTypes: Array; export declare const HOUR_1: number; export declare const HOUR_24: number; export declare const FOUR_MINUTES: number; export declare const HOUR_24_BUFFERED: number; export declare const HOUR_12_BUFFERED: number; export declare const HOUR_1_BUFFERED: number; export declare const MINUTES_20_BUFFERED_L2: number; export declare const HOUR_1_BUFFERED_L2: number; export declare const HOUR_24_BUFFERED_L2: number; export interface PriceFeedEntry { Main: PriceFeedData & { trusted: boolean; }; Reserve?: PriceFeedData; } export type PriceFeedNetwork = NetworkType | "AllNetworks"; export interface RedstoneOracleData { type: PriceFeedType.REDSTONE_ORACLE; dataServiceId: string; dataId: string; signers: Array
; signersThreshold: number; } export interface PythOracleData { type: PriceFeedType.PYTH_ORACLE; priceFeedId: string; ticker: string; } export interface CompositeOracleData { type: PriceFeedType.COMPOSITE_ORACLE; targetToBasePriceFeed: PriceFeedData; baseToUsdPriceFeed: PriceFeedData; } export type PriceFeedData = { type: PriceFeedType.CHAINLINK_ORACLE; address: Address; stalenessPeriod: number; } | { type: PriceFeedType.YEARN_ORACLE; token: SupportedToken; } | { type: PriceFeedType.CURVE_2LP_ORACLE; assets: Array; } | { type: PriceFeedType.CURVE_3LP_ORACLE; assets: Array; } | { type: PriceFeedType.CURVE_4LP_ORACLE; assets: Array; } | { type: PriceFeedType.ZERO_ORACLE; } | { type: PriceFeedType.BOUNDED_ORACLE; priceFeed: PriceFeedData; upperBound: bigint; } | { type: PriceFeedType.WSTETH_ORACLE; token: SupportedToken; } | CompositeOracleData | { type: PriceFeedType.CURVE_CRYPTO_ORACLE; assets: Array; } | { type: PriceFeedType.BALANCER_STABLE_LP_ORACLE; assets: Array; } | { type: PriceFeedType.BALANCER_WEIGHTED_LP_ORACLE; assets: Array; } | { type: PriceFeedType.THE_SAME_AS; token: SupportedToken; } | { type: PriceFeedType.WRAPPED_AAVE_V2_ORACLE; underlying: AaveV2LPToken; } | { type: PriceFeedType.COMPOUND_V2_ORACLE; underlying: NormalToken; } | { type: PriceFeedType.ERC4626_VAULT_ORACLE; underlying: NormalToken; } | (RedstoneOracleData & { stalenessPeriod: number; }) | (PythOracleData & { stalenessPeriod: number; }) | { type: PriceFeedType.NETWORK_DEPENDENT; feeds: Record; } | { type: PriceFeedType.CURVE_USD_ORACLE; underlying: NormalToken; } | { type: PriceFeedType.MELLOW_LRT_ORACLE; underlying: SupportedToken; } | { type: PriceFeedType.PENDLE_PT_TWAP_ORACLE; market: Address; underlying: SupportedToken; twapWindow: number; priceToSy: boolean; };