import { fetchKlines as fetchKlinesFromExchange } from "../exchanges";
import type { Kline } from "../types";

/**
 * 获取 Binance 1m K 线数据（基于 MainClient REST API）。
 *
 * 内部复用 fetchKlines 静态方法，自动路由到正确的交易所客户端，
 * 包含限流、Binance SDK 原生转换等逻辑。
 * 返回本系统标准化 {@link Kline} 数组。
 *
 * @param symbol    - 交易对符号（如 "BTCUSDT"）
 * @param startTime - 起始时间（Unix ms）
 * @param limit     - 单次拉取条数，默认 500（最大 1000）
 */
export async function fetchKlines(
    symbol: string,
    startTime: number,
    limit = 500,
): Promise<Kline[]> {
    return fetchKlinesFromExchange({
        exchange: 'binance',
        type: 'spot',
        symbol,
        startTime,
        limit,
    });
}