import { ChainId, Token, TradeType } from "@onyxcoindev/sdk-core-test"; import { ITokenListProvider } from "../../../providers"; import { ITokenProvider } from "../../../providers/token-provider"; import { IV3PoolProvider, V3PoolAccessor } from "../../../providers/v3/pool-provider"; import { IV3SubgraphProvider, V3SubgraphPool } from "../../../providers/v3/subgraph-provider"; import { AlphaRouterConfig } from "../alpha-router"; import { Protocol } from "../../../constants"; export type SubgraphPool = V3SubgraphPool; export type CandidatePoolsBySelectionCriteria = { protocol: Protocol; selections: CandidatePoolsSelections; }; export type SupportedCandidatePools = V3CandidatePools; export type CandidatePoolsSelections = { topByBaseWithTokenIn: SubgraphPool[]; topByBaseWithTokenOut: SubgraphPool[]; topByDirectSwapPool: SubgraphPool[]; topByEthQuoteTokenPool: SubgraphPool[]; topByTVL: SubgraphPool[]; topByTVLUsingTokenIn: SubgraphPool[]; topByTVLUsingTokenOut: SubgraphPool[]; topByTVLUsingTokenInSecondHops: SubgraphPool[]; topByTVLUsingTokenOutSecondHops: SubgraphPool[]; }; export type MixedCrossLiquidityCandidatePoolsParams = { tokenIn: Token; tokenOut: Token; v3SubgraphProvider: IV3SubgraphProvider; v3Candidates?: V3CandidatePools; blockNumber?: number | Promise; }; export type V3GetCandidatePoolsParams = { tokenIn: Token; tokenOut: Token; routeType: TradeType; routingConfig: AlphaRouterConfig; subgraphProvider: IV3SubgraphProvider; tokenProvider: ITokenProvider; poolProvider: IV3PoolProvider; blockedTokenListProvider?: ITokenListProvider; chainId: ChainId; }; export type CrossLiquidityCandidatePools = { v3Pools: V3SubgraphPool[]; }; export type V3CandidatePools = { poolAccessor: V3PoolAccessor; candidatePools: CandidatePoolsBySelectionCriteria; subgraphPools: V3SubgraphPool[]; }; export declare function getV3CandidatePools({ tokenIn, tokenOut, routeType, routingConfig, subgraphProvider, tokenProvider, poolProvider, blockedTokenListProvider, chainId, }: V3GetCandidatePoolsParams): Promise;