@letsparky/api-v2-client
Version:
TypeScript client for the LetsParky API V2
37 lines (36 loc) • 1.4 kB
TypeScript
import { ClientConfig, ApiResponse, Environment, LogLevel, PaginationParams, PaginatedResponse, RateLimitInfo } from './types';
/**
* Simplified API client for LetsParky API v2
*/
export declare class ApiClient {
private baseUrl;
private apiKey?;
private email?;
private password?;
private authToken?;
private logger;
private environment;
private rateLimitInfo;
private timeout;
constructor(config?: ClientConfig);
private getDefaultBaseUrl;
private buildUrl;
private createHeaders;
private makeRequest;
private extractErrorMessage;
private handleAuthResponse;
private refreshToken;
setApiKey(apiKey: string): void;
setToken(token: string, expiresIn?: number): void;
getToken(): string | null;
isAuthenticated(): boolean;
setEnvironment(environment: Environment): void;
setLogLevel(level: LogLevel): void;
authenticate(): Promise<void>;
getRateLimitInfo(): RateLimitInfo | null;
get<T>(path: string, params?: Record<string, any>): Promise<ApiResponse<T>>;
getPaginated<T>(path: string, paginationParams?: PaginationParams, queryParams?: Record<string, any>): Promise<PaginatedResponse<T>>;
post<T>(path: string, data?: any): Promise<ApiResponse<T>>;
put<T>(path: string, data?: any): Promise<ApiResponse<T>>;
delete<T>(path: string, data?: any): Promise<ApiResponse<T>>;
}