import { type AxiosRequestConfig } from "axios";
import type { Readable } from "node:stream";
export interface GetOptions {
    pathPrefix?: string;
    params?: AxiosRequestConfig["params"];
}
export interface PostOptions {
    pathPrefix?: string;
}
export declare class APIClient {
    private readonly instance;
    private readonly refreshAuth;
    constructor(baseURL: string, cookie: string, refreshAuth: () => Promise<string>);
    private updateCookie;
    private withRetry;
    get<T = unknown>(path: string, options?: GetOptions): Promise<T>;
    post<T = unknown>(path: string, body?: unknown, options?: PostOptions): Promise<T>;
    postStream(path: string, body?: unknown, options?: PostOptions): Promise<Readable>;
    request<T = unknown>(method: string, path: string, options?: {
        params?: Record<string, unknown>;
        body?: unknown;
    }): Promise<T>;
}
//# sourceMappingURL=http.d.ts.map