import { LeanIXConfig, ApiResponse } from './types.js';
interface RequestConfig {
    headers?: Record<string, string>;
    body?: any;
}
interface ApiResponseType<T = any> {
    data: ApiResponse<T>;
    status: number;
    headers: Record<string, string>;
}
export declare class LeanIXClient {
    private config;
    private token;
    constructor(config: LeanIXConfig);
    private ensureValidToken;
    private isTokenValid;
    private makeRequest;
    get<T = any>(url: string, config?: RequestConfig): Promise<ApiResponseType<T>>;
    post<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponseType<T>>;
    put<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponseType<T>>;
    patch<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponseType<T>>;
    delete<T = any>(url: string, config?: RequestConfig): Promise<ApiResponseType<T>>;
    postMultipart<T = any>(url: string, formData: FormData, config?: RequestConfig): Promise<ApiResponseType<T>>;
    downloadFile(url: string, config?: RequestConfig): Promise<Response>;
    setWorkspaceId(workspaceId: string): void;
    getWorkspaceId(): string | undefined;
    buildQueryParams(params: Record<string, any>): string;
}
export {};
//# sourceMappingURL=client.d.ts.map