export interface ClientOptions { /** Override API base URL */ baseUrl?: string; /** Request timeout in milliseconds (default: 30000) */ timeout?: number; } export interface RateLimitInfo { limit: number | null; remaining: number | null; reset: number | null; } export interface RequestOptions { /** Request body for POST/PUT/PATCH */ body?: Record; /** Query parameters */ query?: Record; } /** * HTTP client with authentication and error handling */ export class Client { apiKey: string; baseUrl: string; timeout: number; rateLimit: RateLimitInfo; constructor(apiKey: string, options?: ClientOptions); /** * Make an HTTP request to the API */ request>(method: string, path: string, options?: RequestOptions): Promise; /** * GET request */ get>(path: string, query?: Record): Promise; /** * POST request */ post>(path: string, body?: Record): Promise; /** * PUT request */ put>(path: string, body?: Record): Promise; /** * PATCH request */ patch>(path: string, body?: Record): Promise; /** * DELETE request */ delete>(path: string): Promise; }