import { AxiosRequestConfig } from 'axios'; import { NetworksAPI } from './api/networks'; import { PoolsAPI } from './api/pools'; import { TokensAPI } from './api/tokens'; import { SearchAPI } from './api/search'; import { UtilsAPI } from './api/utils'; import { DexesAPI } from './api/dexes'; import { RetryConfig } from './utils/helpers'; import { CacheConfig } from './utils/cache'; /** * Client configuration options */ export interface ClientConfig { /** Retry configuration */ retry?: Partial; /** Cache configuration */ cache?: Partial; } export declare class DexPaprikaClient { private baseUrl; private httpClient; private retryConfig; private cache; networks: NetworksAPI; pools: PoolsAPI; tokens: TokensAPI; search: SearchAPI; utils: UtilsAPI; dexes: DexesAPI; constructor(baseUrl?: string, options?: AxiosRequestConfig, config?: ClientConfig); /** * Generate a cache key from endpoint and params * @private */ private getCacheKey; /** * Make a GET request with caching and retry * * @param endpoint - API endpoint * @param params - Query parameters * @returns Response data */ get(endpoint: string, params?: Record): Promise; /** * Make a POST request with retry (not cached) * * @param endpoint - API endpoint * @param data - Request body * @param params - Query parameters * @returns Response data */ post(endpoint: string, data: Record, params?: Record): Promise; /** * Clear all cached data */ clearCache(): void; /** * Get current cache size */ get cacheSize(): number; /** * Check if caching is enabled */ get isCacheEnabled(): boolean; /** * Enable or disable cache */ setCacheEnabled(enabled: boolean): void; }