import { TokenProfile, TokenBoost, TokenOrder, DexScreenerPair } from './types';
/**
 * DexScreener API wrapper
 * Provides methods to interact with the DexScreener API for retrieving token and pair information
 *
 * @example
 * ```typescript
 * const dexscreener = new DexScreener();
 *
 * // Search for pairs
 * const pairs = await dexscreener.searchPairs('SOL', 'solana');
 *
 * // Get specific pair
 * const pair = await dexscreener.getPair('pairAddress', 'solana');
 *
 * // Get token profiles
 * const profiles = await dexscreener.getTokenProfiles();
 * ```
 */
export declare class DexScreener {
    private readonly baseUrl;
    constructor();
    /**
     * Get the latest token profiles
     * Rate limit: 60 requests per minute
     *
     * @returns Promise<TokenProfile[]> Array of token profiles
     * @throws Error if the API request fails
     *
     * @example
     * ```typescript
     * const profiles = await dexscreener.getTokenProfiles();
     * console.log(profiles[0].header); // "Solana (SOL)"
     * ```
     */
    getTokenProfiles(): Promise<TokenProfile[]>;
    /**
     * Get the latest boosted tokens
     * Rate limit: 60 requests per minute
     *
     * @returns Promise<TokenBoost[]> Array of token boosts
     * @throws Error if the API request fails
     *
     * @example
     * ```typescript
     * const boosts = await dexscreener.getLatestBoosts();
     * console.log(boosts[0].totalAmount); // 1000
     * ```
     */
    getLatestBoosts(): Promise<TokenBoost[]>;
    /**
     * Get the tokens with most active boosts
     * Rate limit: 60 requests per minute
     *
     * @returns Promise<TokenBoost[]> Array of token boosts
     * @throws Error if the API request fails
     *
     * @example
     * ```typescript
     * const topBoosts = await dexscreener.getTopBoosts();
     * console.log(topBoosts[0].totalAmount); // 5000
     * ```
     */
    getTopBoosts(): Promise<TokenBoost[]>;
    /**
     * Check orders paid for of token
     * Rate limit: 60 requests per minute
     *
     * @param chainId The chain ID (e.g., 'solana', 'ethereum')
     * @param tokenAddress The token address to get orders for
     * @returns Promise<TokenOrder[]> Array of token orders
     * @throws Error if the API request fails
     *
     * @example
     * ```typescript
     * const orders = await dexscreener.getTokenOrders('solana', 'So11111111111111111111111111111111111111112');
     * console.log(orders[0].status); // "processing"
     * ```
     */
    getTokenOrders(chainId: string, tokenAddress: string): Promise<TokenOrder[]>;
    /**
     * Search for pairs matching query
     * Rate limit: 300 requests per minute
     *
     * @param query The search query (token address, symbol, or name)
     * @param chainId Optional chain ID to filter results
     * @returns Promise<DexScreenerPair[]> Array of matching pairs
     * @throws Error if the API request fails
     *
     * @example
     * ```typescript
     * // Search by token symbol
     * const solPairs = await dexscreener.searchPairs('SOL', 'solana');
     *
     * // Search by token address
     * const pairs = await dexscreener.searchPairs('So11111111111111111111111111111111111111112');
     * ```
     */
    searchPairs(query: string, chainId?: string): Promise<DexScreenerPair[]>;
    /**
     * Get pairs by token address
     * Rate limit: 300 requests per minute
     *
     * @param tokenAddress The token address to get pairs for
     * @param chainId The chain ID (required)
     * @returns Promise<DexScreenerPair[]> Array of pairs
     * @throws Error if the API request fails or chainId is not provided
     *
     * @example
     * ```typescript
     * const pairs = await dexscreener.getPairs('So11111111111111111111111111111111111111112', 'solana');
     * console.log(pairs[0].priceUsd); // "20.50"
     * ```
     */
    getPairs(tokenAddress: string, chainId: string): Promise<DexScreenerPair[]>;
    /**
     * Get a specific pair by its address
     * Rate limit: 300 requests per minute
     *
     * @param pairAddress The pair address to get
     * @param chainId The chain ID (required)
     * @returns Promise<DexScreenerPair | null> The pair information or null if not found
     *
     * @example
     * ```typescript
     * const pair = await dexscreener.getPair('JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN', 'solana');
     * if (pair) {
     *   console.log(pair.baseToken.symbol); // "SOL"
     *   console.log(pair.quoteToken.symbol); // "USDC"
     * }
     * ```
     */
    getPair(pairAddress: string, chainId: string): Promise<DexScreenerPair | null>;
}
