import type { RequestInit } from 'node-fetch';
import { ConfigManager } from '../config/config-manager.js';
interface BaseClientOptions {
    baseURL?: string;
    timeout?: number;
}
interface RequestOptions extends Omit<RequestInit, 'body'> {
    body?: any;
    headers?: Record<string, string>;
}
interface HealthCheckResult {
    status: 'healthy' | 'unhealthy';
    timestamp: string;
    error?: string;
}
interface APIResponse {
    base_resp?: {
        status_code: number;
        status_msg?: string;
    };
    [key: string]: any;
}
export declare class MinimaxBaseClient {
    protected config: ConfigManager;
    protected baseURL: string;
    protected timeout: number;
    protected retryConfig: {
        attempts: number;
        delay: number;
    };
    constructor(options?: BaseClientOptions);
    makeRequest(endpoint: string, options?: RequestOptions): Promise<APIResponse>;
    private executeWithRetry;
    private processResponse;
    private shouldRetry;
    private delay;
    get(endpoint: string, options?: RequestOptions): Promise<APIResponse>;
    post(endpoint: string, body?: any, options?: RequestOptions): Promise<APIResponse>;
    healthCheck(): Promise<HealthCheckResult>;
}
export {};
//# sourceMappingURL=base-client.d.ts.map