import { BaseClient, BaseClientConfig } from '../../shared/base-client';
import { GeckoTerminalPoolData, GeckoTerminalSearchData, GeckoTerminalTrendingPoolsResponse, TokenInfoSnapshotData, TokenInfoSnapshotsResponse, GeckoTerminalCandlesticksResponse, GeckoTerminalPoolInfoWithIncludesResponse, GeckoTerminalNetworksResponse, GeckoTerminalTopHoldersResponse } from './types';
export declare class GeckoTerminalClient extends BaseClient {
    constructor(config?: BaseClientConfig);
    search(query: string): Promise<GeckoTerminalSearchData>;
    /**
     * Get detailed information about a specific pool
     * @param chain The blockchain network (e.g., 'solana', 'ethereum')
     * @param poolAddress The address of the pool
     * @returns Pool information and related data
     */
    getPoolInfo(network: string, poolAddress: string): Promise<GeckoTerminalPoolData>;
    /**
     * Get trending pools for a specific network
     * @param network The blockchain network (e.g., 'solana', 'ethereum')
     * @param include Optional array of related data to include in the response
     * @returns List of trending pools and related data
     */
    getTrendingPools(network: string, include?: string[]): Promise<GeckoTerminalTrendingPoolsResponse>;
    /**
     * Get token info snapshots for a specific pool
     * @param network The blockchain network (e.g., 'solana', 'ethereum')
     * @param poolAddress The address of the pool
     * @returns Token info snapshots for the pool
     */
    getTokenInfoSnapshots(network: string, poolAddress: string): Promise<TokenInfoSnapshotsResponse>;
    getTokenDetails(network: string, tokenAddress: string): Promise<{
        tokenAddress: string;
        searchResult: GeckoTerminalSearchData;
        poolInfo: GeckoTerminalPoolData;
        tokenInfoSnapshots: TokenInfoSnapshotData[];
    }>;
    /**
     * Get candlestick data for a specific pool
     * @param networkId The network ID (e.g., '168087677')
     * @param pairId The pair ID (e.g., '5668054')
     * @param resolution Candlestick resolution in minutes (default: 1)
     * @param fromTimestamp Start timestamp in seconds (optional)
     * @param toTimestamp End timestamp in seconds (optional)
     * @param forUpdate Whether this is for an update (default: false)
     * @param countBack Number of candlesticks to get (optional)
     * @param currency Currency for price data (default: 'usd')
     * @param isInverted Whether the price is inverted (default: false)
     * @returns Candlestick data for the pool
     */
    getCandlesticks(networkId: string, pairId: string, resolution?: number, fromTimestamp?: number, toTimestamp?: number, forUpdate?: boolean, countBack?: number, currency?: string, isInverted?: boolean): Promise<GeckoTerminalCandlesticksResponse>;
    /**
     * Get detailed information about a specific pool with specific includes
     * @param network The blockchain network (e.g., 'solana', 'ethereum')
     * @param poolAddress The address of the pool
     * @param include Optional array of related data to include in the response
     * @param baseToken Base token index (default: 0)
     * @returns Pool information and related data
     */
    getPoolInfoWithIncludes(network: string, poolAddress: string, include?: string[], baseToken?: number): Promise<GeckoTerminalPoolInfoWithIncludesResponse>;
    /**
     * Get list of networks with specific fields and sidebar visibility
     * @param fields Optional array of fields to include for networks (default: ['name', 'identifier', 'image_url', 'is_new'])
     * @param showForSidebar Whether to show networks in sidebar (default: true)
     * @returns List of networks with specified fields
     */
    getNetworks(): Promise<GeckoTerminalNetworksResponse>;
    /**
     * Get top holders for a specific token
     * @param network The blockchain network (e.g., 'solana', 'ethereum')
     * @param tokenAddress The address of the token
     * @returns List of top holders for the token
     */
    getTopHolders(network: string, tokenAddress: string): Promise<GeckoTerminalTopHoldersResponse>;
}
