export interface AstraSDKConfig { apiKey: string; baseURL?: string; timeout?: number; headers?: Record; retries?: number; retryDelay?: number; } export interface RequestOptions { method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; headers?: Record; body?: unknown; params?: Record; timeout?: number; } export interface ApiResponse { data: T; status: number; statusText: string; headers: Record; } export interface ApiError { message: string; status?: number; code?: string; details?: unknown; } export class AstraSDKError extends Error { status?: number; code?: string; details?: unknown; constructor(message: string, status?: number, code?: string, details?: unknown) { super(message); this.name = 'AstraSDKError'; this.status = status; this.code = code; this.details = details; Object.setPrototypeOf(this, AstraSDKError.prototype); } }