import { Address, BigIntAsString, Token } from '../../types'; export type LatestRoundData = { answer: bigint; updatedAt: bigint; roundId: bigint; }; export type Slot0 = { tick: bigint; observationIndex: bigint; observationCardinality: bigint; }; export type ExchangeDynamicFeeConfig = { threshold: bigint; weightDecay: bigint; rounds: bigint; maxFee: bigint; }; export type PoolKey = { token0: Address; token1: Address; fee: bigint; }; export type OracleObservation = { blockTimestamp: bigint; tickCumulative: bigint; secondsPerLiquidityCumulativeX128: bigint; initialized: boolean; }; export type TokenWithCurrencyKey = Token & { currencyKey?: string; }; export type DexPriceAggregatorWithoutOracleState = { weth: Address; defaultPoolFee: bigint; uniswapV3Factory: Address; overriddenPoolForRoute: Record; }; export type ChainlinkData = { latestRoundData: LatestRoundData; getRoundData: Record; }; export type PoolState = { atomicExchangeFeeRate: Record; exchangeFeeRate: Record; pureChainlinkPriceForAtomicSwapsEnabled: Record; atomicEquivalentForDexPricing: Record; aggregatorDecimals: Record; aggregators: Record; atomicTwapWindow: bigint; sUSDCurrencyKey: string; dexPriceAggregator: DexPriceAggregatorWithoutOracleState & { uniswapV3Slot0: Record; uniswapV3Observations: Record>; tickCumulatives: Record>; }; blockTimestamp: bigint; isSystemSuspended: boolean; isExchangeSuspended: boolean; areSynthsSuspended: Record; exchangeDynamicFeeConfig: ExchangeDynamicFeeConfig; }; export type OnchainConfigValues = Pick & { lastUpdatedInMs: number; synthetixAddress: Address; exchangerAddress: Address; dexPriceAggregatorAddress: Address; addressToKey: Record; dexPriceAggregator: DexPriceAggregatorWithoutOracleState; poolKeys: PoolKey[]; aggregatorsAddresses: Record; systemStatusAddress: Address; liquidityEstimationInUSD: number; isSystemSuspended: boolean; isExchangeSuspended: boolean; areSynthsSuspended: Record; exchangeDynamicFeeConfig: ExchangeDynamicFeeConfig; }; export type SynthetixData = { srcKey: string; destKey: string; exchange: Address; exchangeType: number; }; export type DexParams = { readProxyAddressResolver: Address; flexibleStorage: Address; synths: Token[]; sUSDAddress: Address; trackingCode: string; };