import { Limit } from "./limit.js";
export declare class FetchClient {
    config: {
        headers: HeadersInit;
        baseUrl: string;
        timeout: number;
    };
    constructor(config: {
        headers: HeadersInit;
        baseUrl: string;
        timeout: number;
    });
    doReq<T>(endpoint: string, method: string, init?: RequestInit, searchParams?: {
        [key: string]: string;
    }, timeout?: number, useAbsoluteUrl?: boolean): Promise<T>;
    post<T>(url: string, init?: RequestInit, searchParams?: any, timeout?: number, useAbsoluteUrl?: boolean): Promise<T>;
    get<T>(url: string, init?: RequestInit, searchParams?: any, timeout?: number): Promise<T>;
    put<T>(url: string, init?: RequestInit, searchParams?: any, timeout?: number): Promise<T>;
    delete<T>(url: string, init?: RequestInit, searchParams?: any, timeout?: number): Promise<T>;
    _prepareSearchParams: (searchParams: {
        [key: string]: string;
    }) => URLSearchParams | null;
}
export declare class AxiomTooManyRequestsError extends Error {
    limit: Limit;
    shortcircuit: boolean;
    message: string;
    constructor(limit: Limit, shortcircuit?: boolean);
    static timeUntilReset(limit: Limit): {
        total: number;
        minutes: number;
        seconds: number;
    };
}
//# sourceMappingURL=fetchClient.d.ts.map