import { Transaction } from "@mysten/sui/transactions";
import { ApiEventsBody, ApiIndexerEventsBody, EventsWithCursor, IndexerEventsWithCursor, SuiNetwork, Url } from "../../types";
export declare class Caller {
    readonly network?: SuiNetwork | undefined;
    private readonly apiUrlPrefix;
    protected readonly apiBaseUrl?: Url;
    constructor(network?: SuiNetwork | undefined, apiUrlPrefix?: Url);
    private static fetchResponseToType;
    private static apiBaseUrlForNetwork;
    private urlForApiCall;
    protected fetchApi<Output, BodyType = undefined>(url: Url, body?: BodyType, signal?: AbortSignal, options?: {
        disableBigIntJsonParsing?: boolean;
    }): Promise<Output>;
    protected fetchApiTransaction<BodyType = undefined>(url: Url, body?: BodyType, signal?: AbortSignal, options?: {
        disableBigIntJsonParsing?: boolean;
    }): Promise<Transaction>;
    protected fetchApiTransactionV0<BodyType = undefined>(url: Url, body?: BodyType, signal?: AbortSignal, options?: {
        disableBigIntJsonParsing?: boolean;
    }): Promise<any>;
    protected fetchApiEvents<EventType, BodyType = ApiEventsBody>(url: Url, body: BodyType, signal?: AbortSignal, options?: {
        disableBigIntJsonParsing?: boolean;
    }): Promise<EventsWithCursor<EventType>>;
    protected fetchApiIndexerEvents<EventType, BodyType = ApiIndexerEventsBody>(url: Url, body: BodyType, signal?: AbortSignal, options?: {
        disableBigIntJsonParsing?: boolean;
    }): Promise<IndexerEventsWithCursor<EventType>>;
}
//# sourceMappingURL=caller.d.ts.map