export interface GeckoTerminalPoolData {
    id: string;
    type: string;
    attributes: {
        address: string;
        name: string;
        fully_diluted_valuation: string;
        base_token_id: string;
        price_in_usd: string;
        price_in_target_token: string;
        reserve_in_usd: string;
        reserve_threshold_met: boolean;
        from_volume_in_usd: string;
        to_volume_in_usd: string;
        api_address: string;
        pool_fee: number | null;
        token_weightages: any | null;
        token_reserves: {
            [key: string]: {
                reserves: string;
                reserves_in_usd: number;
            };
        };
        token_value_data: {
            [key: string]: {
                fdv_in_usd: number;
                market_cap_in_usd: number | null;
                market_cap_to_holders_ratio: number;
            };
        };
        swap_count_24h: number;
        swap_url: string;
        price_percent_change: string;
        price_percent_changes: {
            last_5m: string;
            last_15m: string;
            last_30m: string;
            last_1h: string;
            last_6h: string;
            last_24h: string;
        };
        gt_score: number;
        gt_score_details: {
            info: number;
            pool: number;
            transactions: number;
            holders: number;
            creation: number;
        };
        security_indicators: string[];
        pool_created_at: string;
        latest_swap_timestamp: string;
    };
    relationships: {
        dex: {
            data: {
                id: string;
                type: string;
            };
        };
        tokens: {
            data: Array<{
                id: string;
                type: string;
            }>;
        };
    };
}
export interface GeckoTerminalSearchData {
    id: string;
    type: string;
    attributes: {
        networks: any[];
        dexes: any[];
        pools: Array<{
            type: string;
            address: string;
            api_address: string;
            price_in_usd: string;
            reserve_in_usd: string;
            from_volume_in_usd: string;
            to_volume_in_usd: string;
            price_percent_change: string;
            on_coingecko: boolean;
            market_cap_in_usd: number | null;
            fdv_in_usd: string;
            network: {
                name: string;
                image_url: string;
                identifier: string;
            };
            dex: {
                name: string;
                identifier: string;
                image_url: string;
            };
            tokens: Array<{
                name: string;
                symbol: string;
                address: string;
                image_url: string;
                is_base_token: boolean;
            }>;
            volume_percent_change_24h: string;
            pool_creation_date: string;
        }>;
        pairs: any[];
        tags: any[];
    };
}
export interface GeckoTerminalTrendingPoolsResponse {
    data: GeckoTerminalPoolData[];
    included?: Array<{
        id: string;
        type: string;
        attributes: Record<string, any>;
        relationships?: Record<string, any>;
    }>;
    meta?: {
        sort?: string;
    };
    links?: {
        first?: string;
        prev?: string | null;
        next?: string | null;
        last?: {
            meta?: {
                series?: (string | number)[];
            };
        };
    };
}
export interface TokenInfoSnapshot {
    description: {
        [language: string]: string;
    };
    links: {
        websites: string[];
        discord_url: string | null;
        medium_handle: string | null;
        tiktok_handle: string | null;
        twitter_handle: string | null;
        youtube_handle: string | null;
        facebook_handle: string | null;
        telegram_handle: string | null;
        github_repo_name: string | null;
        instagram_handle: string | null;
        subreddit_handle: string | null;
    };
    timestamp: string;
    type: string;
}
export interface TokenInfoSnapshotData {
    id: string;
    type: string;
    attributes: {
        token_info_snapshots: TokenInfoSnapshot[];
    };
    relationships: Record<string, any>;
}
export interface TokenInfoSnapshotsResponse {
    data: TokenInfoSnapshotData[];
}
export interface GeckoTerminalCandlestick {
    dt: string;
    o: number;
    h: number;
    l: number;
    c: number;
    v: number;
}
export type GeckoTerminalCandlesticksResponse = GeckoTerminalCandlestick[];
export interface GeckoTerminalHistoricalData {
    swaps_count: number;
    buyers_count: number;
    price_in_usd: string | null;
    sellers_count: number;
    volume_in_usd: string;
    buy_swaps_count: number;
    sell_swaps_count: number;
}
export interface GeckoTerminalHighLowPriceData {
    high_price_in_usd_24h: number;
    high_price_timestamp_24h: string;
    low_price_in_usd_24h: number;
    low_price_timestamp_24h: string;
}
export interface GeckoTerminalTokenReserve {
    reserves: string;
    reserves_in_usd: number;
}
export interface GeckoTerminalTokenValueData {
    fdv_in_usd: number;
    market_cap_in_usd: number | null;
    market_cap_to_holders_ratio: number;
}
export interface GeckoTerminalPoolInfoWithIncludesResponse {
    id: string;
    type: string;
    attributes: {
        address: string;
        name: string;
        fully_diluted_valuation: string;
        base_token_id: string;
        price_in_usd: string;
        price_in_target_token: string;
        reserve_in_usd: string;
        reserve_threshold_met: boolean;
        from_volume_in_usd: string;
        to_volume_in_usd: string;
        api_address: string;
        pool_fee: number | null;
        token_weightages: any | null;
        token_reserves: {
            [key: string]: GeckoTerminalTokenReserve;
        };
        token_value_data: {
            [key: string]: GeckoTerminalTokenValueData;
        };
        balancer_pool_id: string | null;
        swap_count_24h: number;
        swap_url: string;
        sentiment_votes: {
            total: number;
            up_percentage: number;
            down_percentage: number;
        };
        price_percent_change: string;
        price_percent_changes: {
            last_5m: string;
            last_15m: string;
            last_30m: string;
            last_1h: string;
            last_6h: string;
            last_24h: string;
        };
        historical_data: {
            last_5m: GeckoTerminalHistoricalData;
            last_15m: GeckoTerminalHistoricalData;
            last_30m: GeckoTerminalHistoricalData;
            last_1h: GeckoTerminalHistoricalData;
            last_6h: GeckoTerminalHistoricalData;
            last_24h: GeckoTerminalHistoricalData;
        };
        security_indicators: string[];
        gt_score: number;
        gt_score_details: {
            info: number;
            pool: number;
            transactions: number;
            holders: number;
            creation: number;
        };
        pool_reports_count: number;
        pool_created_at: string;
        latest_swap_timestamp: string;
        high_low_price_data_by_token_id: {
            [key: string]: GeckoTerminalHighLowPriceData;
        };
        is_nsfw: boolean;
        is_stale_pool: boolean | null;
        is_pool_address_explorable: boolean;
    };
    relationships: {
        dex: {
            data: {
                id: string;
                type: string;
            };
        };
        tokens: {
            data: Array<{
                id: string;
                type: string;
            }>;
        };
        pool_metric: {
            data: {
                id: string;
                type: string;
            };
        };
        pairs: {
            data: Array<{
                id: string;
                type: string;
            }>;
        };
    };
}
export interface GeckoTerminalNetwork {
    id: string;
    type: 'network';
    attributes: {
        name: string;
        identifier: string;
        image_url: string;
        is_new: boolean;
    };
    relationships: Record<string, never>;
}
export type GeckoTerminalNetworksResponse = GeckoTerminalNetwork[];
export interface GeckoTerminalTopHolder {
    wallet_address: string;
    amount: number;
    owner_percent: number;
    value_in_usd: number;
    is_liquidity_pool: boolean | null;
    entity_name: string | null;
    entity_type: string | null;
    label: string | null;
}
export interface GeckoTerminalTopHoldersData {
    id: string;
    type: string;
    attributes: {
        source: string | null;
        explorer_coin_url: string;
        explorer_holder_url: string;
        top_holders: GeckoTerminalTopHolder[];
    };
}
export type GeckoTerminalTopHoldersResponse = GeckoTerminalTopHoldersData;
