import type { AxiosResponse, Method } from 'axios'; import { Readable } from 'stream'; import type { Client } from 'openapi-fetch'; import type { paths } from '../types/api.types'; import { Routes } from '../types/routes.types'; import type { ObjectToSnake, ObjectToCamel } from 'ts-case-convert'; type ValidatedSnakeCase = ObjectToSnake extends TTarget ? TTarget : never; type ValidatedCamelCase = ObjectToCamel extends TTarget ? TTarget : never; export declare enum RequestMethod { GET = "GET", PATCH = "PATCH", POST = "POST", PUT = "PUT", DELETE = "DELETE" } export declare const GENERIC_ERROR_MESSAGE = "This error has been automatically tracked. Please try again."; export declare class BaseClient { private _apiUrl; protected token: string; protected client: Client | undefined; protected get apiUrl(): string; protected set apiUrl(url: string); /** * Make an HTTP request to the Galileo API and return the raw Axios response. */ makeRequestRaw(request_method: Method, endpoint: Routes, data?: string | Record | null, params?: Record, extraHeaders?: Record): Promise>; makeRequestWithConversion(request_method: Method, endpoint: Routes, data: SourceCamelType, params?: Record): Promise>; makeRequest(request_method: Method, endpoint: Routes, data?: string | Record | null, params?: Record, extraHeaders?: Record): Promise; makeStreamingRequest(request_method: Method, endpoint: Routes, data?: string | Record | null, params?: Record, extraHeaders?: Record): Promise; convertToSnakeCase(obj: T): ValidatedSnakeCase; convertToCamelCase(obj: T): ValidatedCamelCase; protected initializeClient(): void; protected getApiUrl(projectType: string): string; protected healthCheck(): Promise; protected getAuthHeader(token: string): { Authorization: string; }; protected validateAxiosResponse(response: AxiosResponse): void; protected refreshTokenIfNeeded(endpoint: Routes): Promise; private readStreamToString; private validateError; private generateApiError; } export {};