/**
 * Kline Period Enum (Standard Text Identifiers + Numeric Codes)
 * Centrally maintained for global reuse
 */
export declare const KlinePeriod: {
    readonly ONE_MIN: "1m";
    readonly FIVE_MIN: "5m";
    readonly FIFTEEN_MIN: "15m";
    readonly THIRTY_MIN: "30m";
    readonly ONE_HOUR: "1h";
    readonly TWO_HOUR: "2h";
    readonly FOUR_HOUR: "4h";
    readonly ONE_DAY: "1d";
    readonly ONE_WEEK: "1w";
    readonly ONE_MONTH: "1M";
};
export declare const KlineTypeCode: {
    readonly "1m": 1;
    readonly "5m": 2;
    readonly "15m": 3;
    readonly "30m": 4;
    readonly "1h": 5;
    readonly "2h": 6;
    readonly "4h": 7;
    readonly "1d": 8;
    readonly "1w": 9;
    readonly "1M": 10;
};
/**
 * Kline Type Enum
 * Defines various supported K-line time intervals
 *
 * 1 | 1m: 1-minute K-line
 *
 * 2 | 5m: 5-minute K-line
 *
 * 3 | 15m: 15-minute K-line
 *
 * 4 | 30m: 30-minute K-line
 *
 * 5 | 1h: 1-hour K-line
 *
 * 6 | 2h: 2-hour K-line (crypto only)
 *
 * 7 | 4h: 4-hour K-line (crypto only)
 *
 * 8 | 1d: 1-day K-line
 *
 * 9 | 1w: 1-week K-line
 *
 * 10 | 1M: 1-month K-line
 */
export type KlineType = keyof typeof KlineTypeCode | (typeof KlinePeriod)[keyof typeof KlinePeriod] | (typeof KlineTypeCode)[keyof typeof KlineTypeCode];
/**
 * Kline Data
 * Contains OHLCV data for a specified time period along with product identifier
 * - o: open price
 * - c: close price
 * - h: high price
 * - l: low price
 * - v: trade volume
 * - tu: trade amount
 * - t: timestamp (milliseconds)
 */
export interface KlineData {
    /** Open price */
    o: number;
    /** Close price */
    c: number;
    /** High price */
    h: number;
    /** Low price */
    l: number;
    /** Trade volume */
    v: number;
    /** Trade amount */
    tu: number;
    /** Timestamp */
    t: number;
}
/**
 * Kline Data Array
 * Collection of batch K-line data
 * @property key - Product code
 * @property value - K-line data array for corresponding product {@link KlineData}
 */
export type KlineDataMap = {
    [key: string]: KlineData[];
};
/**
 * Parameters for fetching K-line data, where `kType` and `interval` are mutually exclusive.
 * The SDK handles it automatically.
 *
 * @remarks
 * You must provide either `kType` or `interval`, but not both, and not neither.
 * It is recommended to use the `interval` parameter.
 *
 * - region: Market code
 * - code: Symbol code
 * - kType: K-line interval
 * - interval: K-line interval
 * - limit: Number of records to return (max 500)
 * - et?: Optional, end time (timestamp), defaults to current time
 *
 * @example
 * options = { region: 'BA', code: 'BTCUSDT', kType: '1h', limit: 10 }
 * options = { region: 'BA', code: 'BTCUSDT', interval: '1h', limit: 10 }
 */
export type GetKlineOptions = {
    /** Market code */
    region: string;
    /** Symbol code */
    code: string;
    /** K-line interval */
    kType: KlineType;
    /** K-line interval */
    interval?: never;
    /** Number of records to return (max 500) */
    limit: number;
    /** Optional, end time (timestamp), defaults to current time */
    et?: string | number;
} | {
    /** Market code */
    region: string;
    /** Symbol code */
    code: string;
    /** K-line interval */
    interval: KlineType;
    /** K-line interval */
    kType?: never;
    /** Number of records to return (max 500) */
    limit: number;
    /** Optional, end time (timestamp), defaults to current time */
    et?: string | number;
};
/**
 * Parameters for fetching K-lines data, where `kType` and `interval` are mutually exclusive.
 * The SDK handles it automatically.
 *
 * @remarks
 * You must provide either `kType` or `interval`, but not both, and not neither.
 * It is recommended to use the `interval` parameter.
 *
 * - region: Market code
 * - codes: Symbol code list
 * - kType: K-line interval
 * - interval: K-line interval
 * - limit: Number of K-lines
 * - et?: End timestamp
 *
 * @example
 * options = { region: 'BA', codes: ['BTCUSDT', 'ETHUSDT'], kType: '1h', limit: 10 }
 * options = { region: 'BA', codes: ['BTCUSDT', 'ETHUSDT'], interval: '1h', limit: 10 }
 */
export type GetKlinesOptions = {
    /** Market code */
    region: string;
    /** Symbol code list*/
    codes: string[] | string;
    /** K-line interval */
    kType: KlineType;
    /** K-line interval */
    interval?: never;
    /** Number of records to return (max 500) */
    limit: number;
    /** Optional, end time (timestamp), defaults to current time */
    et?: string | number;
} | {
    /** Market code */
    region: string;
    /** Symbol code list*/
    codes: string[] | string;
    /** K-line interval */
    interval: KlineType;
    /** K-line interval */
    kType?: never;
    /** Number of records to return (max 500) */
    limit: number;
    /** Optional, end time (timestamp), defaults to current time */
    et?: string | number;
};
//# sourceMappingURL=kline.d.ts.map