import { ChainId } from '@uniswap/sdk-core'; import { AxiosProxyConfig } from 'axios'; import { MobulaPair, MobulaPoolType } from './mobula-types'; export type MobulaErrorKind = 'auth' | 'rate-limit' | 'unsupported-chain' | 'client' | 'server' | 'network' | 'no-pools'; export declare class MobulaError extends Error { readonly kind: MobulaErrorKind; readonly status?: number | undefined; constructor(kind: MobulaErrorKind, message: string, status?: number | undefined); } export declare const MOBULA_DEFAULT_BASE_URL = "https://api.mobula.io"; export declare const MOBULA_SUPPORTED_CHAIN_IDS: ReadonlySet; export declare const MOBULA_TOKEN_PAIRS_PAGE_SIZE = 25; export declare const MOBULA_CHAIN_PAIRS_PAGE_SIZE = 100; export type MobulaClientOptions = { apiKey: string; baseUrl?: string; timeoutMs?: number; retries?: number; tokenCacheTtlSeconds?: number; chainCacheTtlSeconds?: number; proxy?: AxiosProxyConfig | false; }; export declare class MobulaClient { private readonly apiKey; private readonly baseUrl; private readonly timeoutMs; private readonly retries; private readonly proxy; private readonly tokenCache; private readonly chainCache; private readonly inFlight; constructor(options: MobulaClientOptions); static isChainSupported(chainId: number): boolean; getPairsForToken(chainId: ChainId, tokenAddress: string, maxPages: number): Promise; getTopPairs(chainId: ChainId, poolType: MobulaPoolType, minLiquidityUsd: number, maxPages: number): Promise; private assertChainSupported; private cached; private request; private requestOnce; private static classifyHttpError; }