import { ChainId, Currency, Token } from "@onyxcoindev/sdk-core-test"; import { SubgraphPool } from "../routers/alpha-router/functions/get-candidate-pools"; import { ProviderConfig } from "./provider"; import { Protocol } from "../constants"; export interface ISubgraphProvider { getPools(tokenIn?: Token, tokenOut?: Token, providerConfig?: ProviderConfig): Promise; } export declare const PAGE_SIZE = 1000; export type V3SubgraphPool = { id: string; feeTier: string; liquidity: string; token0: { id: string; }; token1: { id: string; }; tvlETH: number; tvlUSD: number; }; export type V3RawSubgraphPool = { id: string; feeTier: string; liquidity: string; token0: { symbol: string; id: string; }; token1: { symbol: string; id: string; }; totalValueLockedUSD: string; totalValueLockedETH: string; totalValueLockedUSDUntracked: string; }; export declare abstract class SubgraphProvider { private protocol; private chainId; private retries; private timeout; private rollback; private trackedEthThreshold; private untrackedUsdThreshold; private subgraphUrl?; private client; constructor(protocol: Protocol, chainId: ChainId, retries?: number, timeout?: number, rollback?: boolean, trackedEthThreshold?: number, untrackedUsdThreshold?: number, subgraphUrl?: string | undefined); getPools(_currencyIn?: Currency, _currencyOut?: Currency, providerConfig?: ProviderConfig): Promise; protected abstract subgraphQuery(blockNumber?: number): string; protected abstract mapSubgraphPool(rawSubgraphPool: TRawSubgraphPool): TSubgraphPool; }