import { BigNumberish } from 'ethers'; import { Factory, FactoryMinimal } from './factory'; import { TokenPair, TokenPairMinimal } from './tokenPair'; import { AdapterType, Token, TokenMinimal } from './token'; import { VolatilitySurface } from './volatilitySurface'; import { OptionType } from './option'; export interface PoolKey { base: string; quote: string; oracleAdapter: string; strike: BigNumberish; maturity: BigNumberish; isCallPool: boolean; } export interface PoolMinimal { initialized: boolean; address: string; factory: FactoryMinimal; pair: TokenPairMinimal; quoteAdapterType: AdapterType; baseAdapterType: AdapterType; collateralAsset: TokenMinimal; optionType: OptionType; isCall: boolean; strike: BigNumberish; maturity: BigNumberish; spotPrice: BigNumberish; } export interface Pool extends PoolMinimal { name: string; pairName: string; factory: Factory; pair: TokenPair; quote: Token; base: Token; collateralAsset: Token; priceOracle: string; createdAt: BigNumberish; createdAtBlock: BigNumberish; marketPrice: BigNumberish; marketPrice24h: BigNumberish; liquidityRate: BigNumberish; currentTick: BigNumberish; longLiquidity: BigNumberish; shortLiquidity: BigNumberish; openInterest: BigNumberish; openInterestUSD: BigNumberish; volume: BigNumberish; volumeUSD: BigNumberish; } export interface PoolExtended extends Pool { volatilitySurface: VolatilitySurface; txCount: BigNumberish; longs: BigNumberish; shorts: BigNumberish; openInterest: BigNumberish; openInterestETH: BigNumberish; openInterestUSD: BigNumberish; totalValueLocked: BigNumberish; totalValueLockedETH: BigNumberish; totalValueLockedUSD: BigNumberish; volume: BigNumberish; volumeETH: BigNumberish; volumeUSD: BigNumberish; premiums: BigNumberish; premiumsETH: BigNumberish; premiumsUSD: BigNumberish; premiumsPaid: BigNumberish; premiumsPaidETH: BigNumberish; premiumsPaidUSD: BigNumberish; premiumsReceived: BigNumberish; premiumsReceivedETH: BigNumberish; premiumsReceivedUSD: BigNumberish; exercisePayouts: BigNumberish; exercisePayoutsETH: BigNumberish; exercisePayoutsUSD: BigNumberish; exercisePayoutsPaid: BigNumberish; exercisePayoutsPaidETH: BigNumberish; exercisePayoutsPaidUSD: BigNumberish; exercisePayoutsReceived: BigNumberish; exercisePayoutsReceivedETH: BigNumberish; exercisePayoutsReceivedUSD: BigNumberish; feeRevenue: BigNumberish; feeRevenueETH: BigNumberish; feeRevenueUSD: BigNumberish; protocolFeeRevenue: BigNumberish; protocolFeeRevenueETH: BigNumberish; protocolFeeRevenueUSD: BigNumberish; }