UNPKG

@dima_aryze/reforge

Version:

TypeScript/JavaScript SDK for Reforge - Cross-chain token operations

57 lines 1.92 kB
/** * Base HTTP client implementation for the Reforge SDK */ import { AxiosInstance } from 'axios'; import type { ApiResponse, EventCallback, EventType, HttpMethod, ILogger, ReforgeClientOptions, RequestOptions } from '../types'; import { ErrorTransformer } from './errors'; import { RetryHandler } from './retry'; /** * Base HTTP client with comprehensive error handling and retry logic */ export declare class BaseHttpClient { protected readonly httpClient: AxiosInstance; protected readonly config: Required<Omit<ReforgeClientOptions, 'apiKey' | 'httpClient'>>; protected readonly logger: ILogger; protected readonly eventListeners: Map<EventType, EventCallback[]>; protected readonly errorTransformer: ErrorTransformer; protected readonly retryHandler: RetryHandler; protected apiKey?: string; constructor(options: ReforgeClientOptions); /** * Validate constructor options */ private validateOptions; /** * Create and configure the Axios instance */ protected createHttpClient(): AxiosInstance; /** * Emit an event to all registered listeners */ protected emitEvent(type: EventType, data?: any): void; /** * Make HTTP request with comprehensive error handling and retry logic */ protected makeRequest<T = any>(method: HttpMethod, path: string, data?: any, options?: RequestOptions): Promise<ApiResponse<T>>; /** * Update the API key */ setApiKey(apiKey: string): void; /** * Get the current API key */ getApiKey(): string | undefined; /** * Add event listener */ on(event: EventType, callback: EventCallback): void; /** * Remove event listener */ off(event: EventType, callback: EventCallback): void; /** * Remove all event listeners */ removeAllListeners(event?: EventType): void; } //# sourceMappingURL=base.d.ts.map