import Headers, { RequestConfig } from './Headers'; import { BatchRequestResponse, HttpResponseConstructor, IRequest, IService, SpecificationRequestResponse, TransactionResponse } from '../Models'; import { DataRequestData, SpecificationRequestData, TransactionData } from './DataModels'; import { HttpMethods, RequestTypes } from '../Constants'; import { ICredentials } from '../Utils'; export default class Request extends Headers { protected _path?: string; protected _data?: object | object[] | undefined; protected _httpMethod: HttpMethods; protected _responseHandler?: HttpResponseConstructor; constructor(path?: string, method?: HttpMethods, data?: RequestData, responseHandler?: HttpResponse); get data(): RequestData; get httpMethod(): HttpMethods; get url(): URL; protected get responseHandler(): HttpResponse; static Transaction(payload?: IRequest): Request; static DataRequest(payload?: IRequest): Request; static Specification(type: RequestTypes.Data | RequestTypes.Transaction, data: T): T extends IService[] ? Request : Request; static BatchTransaction(payload?: IRequest[]): Request; static BatchDataRequest(data?: DataRequestData[]): Request; request(options?: RequestConfig): Promise>; protected setAuthorizationHeader(data?: object, credentials?: ICredentials): this; }