import { MonkServerOptions } from './MonkServer.js';
import { Readable } from 'stream';
export interface MonkClientOptions extends MonkServerOptions {
    servers?: string[];
    retries?: number;
    backoffFactor?: number;
    retryInterval?: number;
    path?: string;
    errorTrace?: boolean;
}
export declare class MonkClient {
    private servers;
    private serverMap;
    private activeServers;
    private inactiveServers;
    private currentIndex;
    private readonly retries;
    private readonly backoffFactor;
    private readonly retryInterval;
    readonly path: string;
    constructor(options?: MonkClientOptions);
    private rotate;
    sql(stmt: string, args?: any[], bulkArgs?: any[][]): Promise<any>;
    request(method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD', path: string, body?: Buffer | Readable, headers?: Record<string, string>): Promise<{
        status: number;
        data: any;
        headers: Record<string, string | string[] | undefined>;
        body?: Readable;
    }>;
    private requestWithRetries;
    private dropCurrentServer;
    private restoreInactiveServers;
    private isRedirect;
    private sleep;
    close(): void;
    toString(): string;
}
//# sourceMappingURL=MonkClient.d.ts.map