import { Interface } from '@ethersproject/abi'; import { AsyncOrSync, DeepReadonly } from 'ts-essentials'; import { PartialEventSubscriber } from '../../composed-event-subscriber'; import { Lens } from '../../lens'; import { VaultUtils } from './vault-utils'; import { VaultConfig, VaultState } from './types'; import { VaultPriceFeed } from './vault-price-feed'; import { USDG } from './usdg'; import { MultiCallInput, MultiCallOutput, Address, Logger, Log } from '../../types'; import { BlockHeader } from 'web3-eth'; export declare class Vault extends PartialEventSubscriber { readonly vaultAddress: Address; protected tokenAddresses: Address[]; protected vaultPriceFeed: VaultPriceFeed; protected usdg: USDG; static readonly interface: Interface; protected vaultUtils: VaultUtils; tokenDecimals: { [address: string]: number; }; stableTokens: { [address: string]: boolean; }; protected tokenWeights: { [address: string]: bigint; }; stableSwapFeeBasisPoints: bigint; swapFeeBasisPoints: bigint; stableTaxBasisPoints: bigint; taxBasisPoints: bigint; hasDynamicFees: bigint; protected includeAmmPrice: boolean; protected useSwapPricing: boolean; protected totalTokenWeights: bigint; constructor(vaultAddress: Address, tokenAddresses: Address[], config: VaultConfig, vaultPriceFeed: VaultPriceFeed, usdg: USDG, lens: Lens, DeepReadonly>, logger: Logger); getMinPrice(state: DeepReadonly, _token: Address): bigint; getMaxPrice(state: DeepReadonly, _token: Address): bigint; getFeeBasisPoints(state: DeepReadonly, _token: Address, _usdgDelta: bigint, _feeBasisPoints: bigint, _taxBasisPoints: bigint, _increment: boolean): bigint; getTargetUsdgAmount(state: DeepReadonly, _token: Address): bigint; static getConfigMulticallInputs(vaultAddress: Address, tokenAddresses: Address[]): MultiCallInput[]; static getConfig(multicallOutputs: MultiCallOutput[], tokenAddresses: Address[]): VaultConfig; getGenerateStateMultiCallInputs(): MultiCallInput[]; generateState(multicallOutputs: MultiCallOutput[], blockNumber?: number | 'latest'): DeepReadonly; getUSDGAmount(state: DeepReadonly, token: Address): bigint; processLog(state: DeepReadonly, log: Readonly, blockHeader: Readonly): AsyncOrSync; }