import { AbortSignal as ABsmartlyAbortSignal } from "./abort-controller-shim";
import { ContextOptions, ContextParams } from "./context";
import { PublishParams } from "./publisher";
export type FetchResponse = {
    status: number;
    ok: boolean;
    text: () => Promise<string>;
    statusText: string;
    json: () => Promise<string>;
};
export type ClientRequestOptions = {
    query?: Record<string, string | number | boolean>;
    path: string;
    method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "HEAD" | "OPTIONS";
    body?: Record<string, unknown>;
    auth?: boolean;
    signal?: AbortSignal | ABsmartlyAbortSignal;
    timeout?: number;
};
export type ClientOptions = {
    agent?: "javascript-client";
    apiKey: string;
    application: string | {
        name: string;
        version: number;
    };
    endpoint: string;
    environment: string;
    retries?: number;
    timeout?: number;
    keepalive?: boolean;
};
export default class Client {
    private readonly _opts;
    private readonly _delay;
    constructor(opts: ClientOptions);
    getContext(options?: Partial<ClientRequestOptions>): any;
    createContext(params: ContextParams, options: ContextOptions): any;
    publish(params: PublishParams, options?: ClientRequestOptions): any;
    request(options: ClientRequestOptions): any;
    post(options: ClientRequestOptions): any;
    put(options: ClientRequestOptions): any;
    getUnauthed(options: ClientRequestOptions): any;
}
//# sourceMappingURL=client.d.ts.map