import { ChainId, Token, TradeType } from '@synthra-swap/sdk/core'; import { Protocol } from '../../../util/router-sdk'; 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'; export declare type PoolId = { id: string; }; export declare type CandidatePoolsBySelectionCriteria = { protocol: Protocol; selections: CandidatePoolsSelections; }; export declare type CandidatePoolsSelections = { topByBaseWithTokenIn: PoolId[]; topByBaseWithTokenOut: PoolId[]; topByDirectSwapPool: PoolId[]; topByEthQuoteTokenPool: PoolId[]; topByTVL: PoolId[]; topByTVLUsingTokenIn: PoolId[]; topByTVLUsingTokenOut: PoolId[]; topByTVLUsingTokenInSecondHops: PoolId[]; topByTVLUsingTokenOutSecondHops: PoolId[]; }; export declare type V3GetCandidatePoolsParams = { tokenIn: Token; tokenOut: Token; routeType: TradeType; routingConfig: AlphaRouterConfig; subgraphProvider: IV3SubgraphProvider; tokenProvider: ITokenProvider; poolProvider: IV3PoolProvider; blockedTokenListProvider?: ITokenListProvider; chainId: ChainId; }; export declare function getV3CandidatePools({ tokenIn, tokenOut, routeType, routingConfig, subgraphProvider, tokenProvider, poolProvider, blockedTokenListProvider, chainId, }: V3GetCandidatePoolsParams): Promise<{ poolAccessor: V3PoolAccessor; candidatePools: CandidatePoolsBySelectionCriteria; subgraphPools: V3SubgraphPool[]; }>;