import * as fetch from 'node-fetch'; import * as request from 'request'; import { RequestCallback, Options as RequestOptions } from 'request'; import { Tracer } from './Tracer'; export declare type RequesterModule = 'request' | 'fetch'; export interface FetchRequesterOptions extends fetch.Request { remoteServiceName?: string; } export declare type FetchRequester = (url: string, fetchOptions: FetchRequesterOptions) => Promise; export interface CreateFetchOptions { tracer: Tracer; } export declare function createFetch({ tracer }: CreateFetchOptions): FetchRequester; export declare type RequestRequester = (remoteServiceName: string, url: string, requestOptionsOrCallback: RequestOptions | RequestCallback, callback: RequestCallback) => request.Request; export interface CreateRequestOptions { tracer: Tracer; } export declare function createRequest({ tracer }: CreateRequestOptions): RequestRequester;