import { BaseResource } from '@webacy-xyz/sdk-core'; import { PoolsResponse, TrendingTokensResponse, TrendingPoolsResponse, TokenPoolsOptions, TrendingOptions, TokenEconomicsResponse, TokenEconomicsOptions, PoolOhlcvResponse, PoolOhlcvOptions } from '../types'; /** * Resource for token pools and trending data * * Provides access to: * - Token liquidity pools with risk analysis * - Trending tokens across chains * - Trending liquidity pools * * @example * ```typescript * // Get trending tokens * const trending = await client.tokens.getTrending({ chain: Chain.SOL }); * * // Get pools for a specific token * const pools = await client.tokens.getPools('token_address', { chain: Chain.ETH }); * * // With default chain configured, chain can be omitted * const client = new TradingClient({ apiKey: '...', defaultChain: Chain.SOL }); * const pools = await client.tokens.getPools('token_address'); // Uses SOL * ``` */ export declare class TokensResource extends BaseResource { /** * Get liquidity pools for a token with risk analysis * * Returns all liquidity pools where the token is traded, * along with risk analysis for the tokens in each pool. * * @param address - Token address * @param options - Request options (chain is optional if defaultChain is set) * @returns Pools with token risk analysis * * @example * ```typescript * const result = await client.tokens.getPools('0x...', { chain: Chain.ETH }); * * // With default chain configured * const result = await client.tokens.getPools('0x...'); * * for (const pool of result.pools) { * console.log(`Pool: ${pool.name}`); * console.log(`Liquidity: ${pool.reserve}`); * console.log(`24h Volume: ${pool.volume.h24}`); * } * * // Check risk for tokens in pools * for (const token of result.tokens) { * if (token.risk.overallRisk && token.risk.overallRisk > 70) { * console.warn(`High risk token: ${token.address}`); * } * } * ``` */ getPools(address: string, options?: TokenPoolsOptions): Promise; /** * Get trending tokens * * Returns currently trending tokens based on trading activity * and community interest. * * @param options - Request options (chain is optional) * @returns List of trending tokens with risk analysis * * @example * ```typescript * const trending = await client.tokens.getTrending({ chain: Chain.SOL, limit: 20 }); * * // Or with default chain configured * const trending = await client.tokens.getTrending(); * * for (const token of trending.tokens) { * console.log(`${token.symbol}: $${token.price_usd}`); * console.log(`24h change: ${token.price_change_24h}%`); * * if (token.risk?.overallRisk && token.risk.overallRisk > 50) { * console.warn(' Warning: Elevated risk'); * } * } * ``` */ getTrending(options?: TrendingOptions): Promise; /** * Get trending liquidity pools * * Returns currently trending liquidity pools based on * trading volume and activity. * * @param options - Request options (chain is optional) * @returns List of trending pools * * @example * ```typescript * const trending = await client.tokens.getTrendingPools({ chain: Chain.ETH }); * * // Or with default chain configured * const trending = await client.tokens.getTrendingPools(); * * for (const pool of trending.pools) { * console.log(`${pool.name}`); * console.log(`FDV: ${pool.fdv}`); * console.log(`24h Volume: ${pool.volume.h24}`); * } * ``` */ getTrendingPools(options?: TrendingOptions): Promise; /** * Get token economics data * * Returns token economics metrics for a specific date including * supply, market cap, price, volume, and holder statistics. * * @param address - Token address * @param options - Request options (chain and metricsDate required) * @returns Token economics data * * @example * ```typescript * const token = await client.tokens.getToken('0x...', { * chain: Chain.ETH, * metricsDate: '15-01-2024', // DD-MM-YYYY * }); * * console.log(`Token: ${token.name} (${token.symbol})`); * console.log(`Price: $${token.metrics.priceUsd}`); * console.log(`Market Cap: $${token.metrics.marketCap}`); * console.log(`24h Volume: $${token.metrics.volume24h}`); * console.log(`Holders: ${token.metrics.holderCount}`); * ``` */ getToken(address: string, options: TokenEconomicsOptions): Promise; /** * Get pool OHLCV data * * Returns Open, High, Low, Close, Volume data for a liquidity pool * at the specified time frame. * * @param poolAddress - Pool address * @param options - Request options * @returns Pool OHLCV data * * @example * ```typescript * // Get hourly OHLCV data * const ohlcv = await client.tokens.getPoolOhlcv('0xPoolAddress', { * chain: Chain.ETH, * timeFrame: 'hour', * limit: 24, // Last 24 hours * }); * * console.log(`Pool: ${ohlcv.poolName}`); * for (const candle of ohlcv.data) { * console.log(`${new Date(candle.timestamp * 1000).toISOString()}`); * console.log(` O: ${candle.open} H: ${candle.high} L: ${candle.low} C: ${candle.close}`); * console.log(` Volume: ${candle.volume}`); * } * * // Get data before a specific timestamp * const historical = await client.tokens.getPoolOhlcv('0xPoolAddress', { * chain: Chain.ETH, * timeFrame: 'day', * beforeTimestamp: 1705363200, // Unix timestamp * limit: 30, * }); * ``` */ getPoolOhlcv(poolAddress: string, options: PoolOhlcvOptions): Promise; /** * Validate metrics date format (DD-MM-YYYY) and that it's a valid date */ private validateMetricsDate; /** * Validate time frame */ private validateTimeFrame; } //# sourceMappingURL=tokens.d.ts.map