export interface TradesStreamRequest { poolInput: string; kind?: string; } export interface MarginPoolsRequest { registered?: boolean; } export interface OrderbookLevel { price: string; quantity: string; orderCount: number; } export interface NormalizedOrderbook { bids: OrderbookLevel[]; asks: OrderbookLevel[]; } export interface TradesStreamEvent { event: string; data: unknown; id?: string; pool: string; } export interface TradesStreamOptions { reconnect?: boolean; reconnectDelayMs?: number; onError?: (error: Error) => void; } export interface TradesSubscription { stop(): void; } export declare const COMMON_OHLCV_TIMEFRAMES: readonly ["1m", "5m", "15m", "1h", "4h", "1d"]; export type CommonOhlcvTimeframe = (typeof COMMON_OHLCV_TIMEFRAMES)[number]; export declare const EXTENDED_OHLCV_TIMEFRAMES: readonly ["3D", "1W", "1M", "1Y"]; export type ExtendedOhlcvTimeframe = (typeof EXTENDED_OHLCV_TIMEFRAMES)[number]; export type ExtendedProviderOhlcvTimeframe = CommonOhlcvTimeframe | ExtendedOhlcvTimeframe; export declare function extendProviderOhlcvTimeframes(base: TBase, extra: TExtra): readonly [...TBase, ...TExtra]; export declare function parseProviderOhlcvTimeframe(providerName: string, supportedTimeframes: readonly T[], value: string): T; export interface DataProvider { readonly name: string; readonly supportedOhlcvTimeframes: readonly TTimeframe[]; readonly defaultOhlcvTimeframe: TTimeframe; resolveOhlcvTimeframe(value?: string): TTimeframe; getSpotPools(): Promise; getMarginPools(request?: MarginPoolsRequest): Promise; getPools(): Promise; getOrderbook(poolInput: string, depth: number): Promise; normalizeOrderbook(raw: unknown): NormalizedOrderbook; getTrades(poolInput: string, limit: number): Promise; getOhlcv(poolInput: string, timeframe: TTimeframe, limit: number): Promise; subscribeTrades(request: TradesStreamRequest, onEvent: (event: TradesStreamEvent) => void, options?: TradesStreamOptions): TradesSubscription; }