import { Interface } from '@ethersproject/abi'; import { DeepReadonly } from 'ts-essentials'; import { Address, Logger } from '../../types'; import { ComposedEventSubscriber } from '../../composed-event-subscriber'; import { IDexHelper } from '../../dex-helper/idex-helper'; import { ChainlinkConfig, MorphoConfig, OracleFeed, OracleQuoteType, OracleReadType, PoolConfig, PoolState, PythConfig, TransmuterParams } from './types'; import { Contract } from 'web3-eth-contract'; import { SwapSide } from '../../constants'; export declare class AngleTransmuterEventPool extends ComposedEventSubscriber { readonly parentName: string; protected network: number; protected dexHelper: IDexHelper; transmuter: Contract; readonly angleTransmuterIface: Interface; readonly config: PoolConfig; timer: NodeJS.Timeout; constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, config: PoolConfig); releaseResources(): void; getStateOrGenerate(blockNumber: number): Promise>; generateState(blockNumber: number): Promise>; private stateToLowercase; getAmountOut(_tokenIn: Address, _tokenOut: Address, side: SwapSide, _amounts: number[], blockNumber: number): Promise; static getCollateralsList(transmuterAddress: Address, blockNumber: number | 'latest', multiContract: Contract): Promise; static _fillMap(chainlinkMap: ChainlinkConfig, backedMap: ChainlinkConfig, redstoneMap: ChainlinkConfig, pythIds: PythConfig, morphoMap: MorphoConfig, oracleFeed: OracleFeed, blockNumber: number | 'latest', multiContract: Contract): Promise<{ chainlinkMap: ChainlinkConfig; backedMap: ChainlinkConfig; redstoneMap: ChainlinkConfig; pythIds: PythConfig; morphoMap: MorphoConfig; }>; static generateStateChainlinkLike(feed: string, chainlinkMap: ChainlinkConfig, backedMap: ChainlinkConfig, redstoneMap: ChainlinkConfig, blockNumber: number | 'latest', multiContract: Contract): Promise<{ chainlinkMap: ChainlinkConfig; backedMap: ChainlinkConfig; redstoneMap: ChainlinkConfig; }>; static getOraclesConfig(transmuterAddress: Address, pythAddress: Address, collaterals: Address[], blockNumber: number | 'latest', multiContract: Contract): Promise<{ chainlink: ChainlinkConfig; backed: ChainlinkConfig; redstone: ChainlinkConfig; pyth: PythConfig; morpho: MorphoConfig; }>; static getConfig(dexParams: TransmuterParams, blockNumber: number | 'latest', multiContract: Contract): Promise; _readMint(config: PoolConfig, state: PoolState, collateral: Address, blockNumber: number): number; _getBurnOracle(config: PoolConfig, state: PoolState, collateral: Address, blockNumber: number): { oracleValue: number; minRatio: number; }; _readBurn(config: PoolConfig, state: PoolState, collateral: Address, blockNumber: number): { oracleValue: number; ratio: number; }; _readSpotAndTarget(config: PoolConfig, state: PoolState, collateral: Address, blockNumber: number): { spot: number; target: number; userDeviation: number; burnRatioDeviation: number; }; _quoteAmount(quoteType: OracleQuoteType, baseValue: number): number; _read(config: PoolConfig, state: PoolState, oracleType: OracleReadType, feed: OracleFeed, baseValue: number): number; _readChainlink(config: PoolConfig, state: PoolState, id: string, isMultiplied: number, price: number): { price: number; decimals: number; }; _readMorphoFeedChainlink(config: PoolConfig, state: PoolState, id: string): bigint; }