import { type IReportError, type ReportErrorFn } from '../../shared/services/instrumentation/repositories';
import type { Result } from '../shared.constants';
type SerializablePrimitive = string | number | bigint | boolean | null;
type BodyInit = SerializablePrimitive | Record<string, SerializablePrimitive> | Array<SerializablePrimitive>;
export declare class HttpFetcher implements IReportError {
    private baseUrl;
    private body;
    private headers;
    constructor();
    reportError: ReportErrorFn;
    setAccessToken(accessToken: string): HttpFetcher;
    setBaseUrl(baseUrl: string): HttpFetcher;
    setBody<TBody extends BodyInit>(body: TBody): HttpFetcher;
    setContentTypeJson(): HttpFetcher;
    setContentTypeText(): HttpFetcher;
    setHeaders(headers: HeadersInit): HttpFetcher;
    setPublicKey(publicKey: string): HttpFetcher;
    setSdkVersion(): HttpFetcher;
    execute<S = unknown, E = unknown>(method: 'DELETE' | 'GET' | 'POST' | 'PUT' | 'PATCH', path: string): Promise<Result<{
        statusCode: number;
        body: S;
    }, {
        statusCode: number;
        body: E;
    }>>;
    value(): Record<string, unknown>;
}
export {};
//# sourceMappingURL=http-fetcher.d.ts.map