import { BigNumber } from '@ethersproject/bignumber'; import { ChainId, Token } from '@uniswap/sdk-core'; import { FeeAmount, Pool } from '@uniswap/v3-sdk'; import { IMulticallProvider, Result } from '../multicall-provider'; import { ILiquidity, ISlot0, PoolProvider } from '../pool-provider'; import { ProviderConfig } from '../provider'; import { IV3PoolProvider, V3PoolAccessor, V3PoolRetryOptions } from '../v3/pool-provider'; type PV3ISlot0 = ISlot0 & { sqrtPriceX96: BigNumber; tick: number; }; type PV3ILiquidity = ILiquidity; type PV3PoolConstruct = [Token, Token, FeeAmount]; /** * Pool provider for PancakeSwap V3. * Identical pool state interface to Uniswap V3 (slot0, liquidity) * but uses PancakeSwap's PoolDeployer + init code hash for address computation. */ export declare class PV3PoolProvider extends PoolProvider implements IV3PoolProvider { private POOL_ADDRESS_CACHE; constructor(chainId: ChainId, multicall2Provider: IMulticallProvider, retryOptions?: V3PoolRetryOptions); getPools(tokenPairs: PV3PoolConstruct[], providerConfig?: ProviderConfig): Promise; getPoolAddress(tokenA: Token, tokenB: Token, feeAmount: FeeAmount): { poolAddress: string; token0: Token; token1: Token; }; protected getLiquidityFunctionName(): string; protected getSlot0FunctionName(): string; protected getPoolsData(poolAddresses: string[], functionName: string, providerConfig?: ProviderConfig): Promise[]>; protected getPoolIdentifier(pool: PV3PoolConstruct): { poolIdentifier: string; currency0: Token; currency1: Token; }; protected instantiatePool(pool: PV3PoolConstruct, slot0: PV3ISlot0, liquidity: PV3ILiquidity): Pool; protected instantiatePoolAccessor(poolIdentifierToPool: { [p: string]: Pool; }): V3PoolAccessor; } export {};