/**
 * Utility functions for Binance Futures API
 */
import { BinanceConfig } from '../types';
/**
 * Create HMAC SHA256 signature for Binance API
 */
export declare function createSignature(queryString: string, apiSecret: string): string;
/**
 * Get current timestamp in milliseconds
 */
export declare function getTimestamp(): number;
/**
 * Convert object to query string
 */
export declare function objectToQueryString(obj: Record<string, any>): string;
/**
 * Add signature to parameters
 */
export declare function addSignature(params: Record<string, any>, apiSecret: string, timestamp?: number): Record<string, any>;
/**
 * Get base URLs based on testnet configuration
 */
export declare function getBaseUrls(testnet?: boolean): {
    rest: string;
    ws: string;
};
/**
 * Validate Binance configuration
 */
export declare function validateConfig(config: BinanceConfig): void;
/**
 * Generate random string for client order ID
 */
export declare function generateClientOrderId(prefix?: string): string;
/**
 * Format number to string with proper precision
 */
export declare function formatNumber(num: number, precision?: number): string;
/**
 * Sleep function for delays
 */
export declare function sleep(ms: number): Promise<void>;
/**
 * Retry function with exponential backoff
 */
export declare function retry<T>(fn: () => Promise<T>, maxRetries?: number, baseDelay?: number): Promise<T>;
/**
 * Logger utility
 */
export declare class Logger {
    private enabled;
    private prefix;
    constructor(enabled?: boolean, prefix?: string);
    log(message: string, ...args: unknown[]): void;
    error(message: string, ...args: unknown[]): void;
    warn(message: string, ...args: unknown[]): void;
    debug(message: string, ...args: unknown[]): void;
}
/**
 * Rate limiter utility
 */
export declare class RateLimiter {
    private requests;
    private maxRequests;
    private timeWindow;
    constructor(maxRequests?: number, timeWindow?: number);
    checkLimit(): Promise<void>;
}
/**
 * WebSocket reconnection utility
 */
export declare class ReconnectionManager {
    private attempts;
    private maxAttempts;
    private baseDelay;
    private maxDelay;
    constructor(maxAttempts?: number, baseDelay?: number, maxDelay?: number);
    getDelay(): Promise<number>;
    reset(): void;
    canReconnect(): boolean;
}
/**
 * REST Data Converters
 */
/**
 * Convert raw kline array to Kline object
 * Binance returns klines as arrays in this format:
 * [
 *   1499040000000,      // Open time
 *   "0.01634790",       // Open
 *   "0.80000000",       // High
 *   "0.01575800",       // Low
 *   "0.01577100",       // Close
 *   "148976.11427815",  // Volume
 *   1499644799999,      // Close time
 *   "2434.19055334",    // Quote asset volume
 *   308,                // Number of trades
 *   "1756.87402397",    // Taker buy base asset volume
 *   "28.46694368",      // Taker buy quote asset volume
 *   "17928899.62484339" // Ignore
 * ]
 */
export declare function convertKlineData(rawKline: any[]): import('../types').Kline;
/**
 * Convert array of raw klines to array of Kline objects
 */
export declare function convertKlinesData(rawKlines: any[][]): import('../types').Kline[];
//# sourceMappingURL=index.d.ts.map