import { Interface } from '@ethersproject/abi'; import { Address, MultiCallInput, MultiCallOutput } from '../../types'; import { VaultPriceFeedConfig } from './types'; import { FastPriceFeed } from './fast-price-feed'; import { ChainLinkSubscriber } from '../../lib/chainlink'; import { DeepReadonly } from 'ts-essentials'; export declare class VaultPriceFeed { protected primaryPrices: { [token: string]: ChainLinkSubscriber; }; protected secondaryPrice: FastPriceFeed; BASIS_POINTS_DIVISOR: bigint; PRICE_PRECISION: bigint; ONE_USD: bigint; static interface: Interface; protected isAmmEnabled: boolean; protected isSecondaryPriceEnabled: boolean; protected strictStableTokens: { [address: string]: boolean; }; protected spreadBasisPoints: { [address: string]: bigint; }; protected adjustmentBasisPoints: { [address: string]: bigint; }; protected isAdjustmentAdditive: { [address: string]: boolean; }; protected priceDecimals: { [address: string]: number; }; protected maxStrictPriceDeviation: bigint; protected useV2Pricing: boolean; protected priceSampleSpace: number; constructor(config: VaultPriceFeedConfig, primaryPrices: { [token: string]: ChainLinkSubscriber; }, secondaryPrice: FastPriceFeed); getPrice(state: DeepReadonly, _token: Address, _maximise: boolean, _includeAmmPrice: boolean, _useSwapPricing: boolean): bigint; getPriceV2(state: DeepReadonly, _token: Address, _maximise: boolean, _includeAmmPrice: boolean): bigint; getPriceV1(state: DeepReadonly, _token: Address, _maximise: boolean, _includeAmmPrice: boolean): bigint; getAmmPrice(state: DeepReadonly, token: Address): bigint; getPrimaryPrice(state: DeepReadonly, _token: Address, _maximise: boolean): bigint; getSecondaryPrice(state: DeepReadonly, _token: Address, _referencePrice: bigint, _maximise: boolean): bigint; static getConfigMulticallInputs(vaultPriceFeedAddress: Address, tokenAddresses: Address[]): MultiCallInput[]; static getConfig(multicallOutputs: MultiCallOutput[], tokenAddress: Address[]): VaultPriceFeedConfig; }