declare function httpClientTemplate(): "\n /* eslint-disable */\n /* tslint:disable */\n import { HttpHeaders, HttpRequest, HttpClient as NgHttpClient } from \"@angular/common/http\";\n import { Injectable,Inject } from \"@angular/core\";\n\n type IMethod = 'DELETE' | 'GET' | 'HEAD' | 'JSONP' | 'OPTIONS'\n\n @Injectable()\n export class HttpClient {\n constructor(\n private http: NgHttpClient,\n @Inject(String) public baseUrl: string,\n ) {\n }\n public request = (\n data: Omit<\n HttpRequest,\n | 'context'\n | 'reportProgress'\n | 'urlWithParams'\n | 'serializeBody'\n | 'detectContentTypeHeader'\n | 'clone'\n | 'withCredentials'\n >,\n ) => {\n\n return this.http.request(data.method.toUpperCase() as IMethod, this.baseUrl + data.url,{\n body: data.body ? data.body:null,\n params:data.params,\n headers:data.headers\n });\n };\n }\n" | "/* eslint-disable */\n/* tslint:disable */\nimport type { AxiosInstance, AxiosRequestConfig, AxiosResponse, HeadersDefaults, ResponseType } from 'axios'\nimport axios from 'axios'\n\nexport type QueryParamsType = Record\n\nexport interface FullRequestParams extends Omit {\n /** set parameter to `true` for call `securityWorker` for this request */\n secure?: boolean\n /** request path */\n path: string\n /** content type of request body */\n type?: ContentType\n /** query params */\n query?: QueryParamsType\n /** format of response (i.e. response.json() -> format: \"json\") */\n format?: ResponseType\n /** request body */\n body?: unknown\n}\n\nexport type RequestParams = Omit\nexport const getData = (data: undefined | unknown) => {\n if (data) {\n return data;\n } else {\n return {};\n }\n};\nexport interface ApiConfig extends Omit {\n securityWorker?: (\n securityData: SecurityDataType | null,\n ) => Promise | AxiosRequestConfig | void\n secure?: boolean\n format?: ResponseType\n instance?: AxiosInstance\n}\n\nexport enum ContentType {\n Json = 'application/json',\n FormData = 'multipart/form-data',\n UrlEncoded = 'application/x-www-form-urlencoded',\n Text = 'text/plain',\n}\nexport type AxiosOpt = Omit;\nexport class HttpClient {\n public instance: AxiosInstance\n private securityData: SecurityDataType | null = null\n private securityWorker?: ApiConfig['securityWorker']\n private secure?: boolean\n private format?: ResponseType\n\n constructor({ securityWorker, secure, format,instance, ...axiosConfig }: ApiConfig = {}) {\n this.instance = instance?instance:axios.create({ ...axiosConfig, baseURL: axiosConfig.baseURL || '' })\n this.secure = secure\n this.format = format\n this.securityWorker = securityWorker\n }\n\n public setSecurityData = (data: SecurityDataType | null) => {\n this.securityData = data\n }\n\n protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig {\n const method = params1.method || (params2 && params2.method)\n\n return {\n ...this.instance.defaults,\n ...params1,\n ...(params2 || {}),\n headers: {\n ...((method && this.instance.defaults.headers[method.toLowerCase() as keyof HeadersDefaults]) || {}),\n ...(params1.headers || {}),\n ...((params2 && params2.headers) || {}),\n },\n }\n }\n\n protected stringifyFormItem(formItem: unknown) {\n if (typeof formItem === 'object' && formItem !== null) {\n return JSON.stringify(formItem)\n } else {\n \n return `${formItem}`\n }\n }\n\n protected createFormData(input: Record): FormData {\n return Object.keys(input || {}).reduce((formData, key) => {\n const property = input[key]\n const propertyContent: any[] = property instanceof Array ? property : [property]\n\n for (const formItem of propertyContent) {\n const isFileType = formItem instanceof Blob || formItem instanceof File\n formData.append(key, isFileType ? formItem : this.stringifyFormItem(formItem))\n }\n\n return formData\n }, new FormData())\n }\n\n public request = async ({\n secure,\n path,\n type,\n query,\n format,\n body,\n ...params\n }: FullRequestParams): Promise> => {\n const secureParams =\n ((typeof secure === 'boolean' ? secure : this.secure) &&\n this.securityWorker &&\n (await this.securityWorker(this.securityData))) ||\n {}\n const requestParams = this.mergeRequestParams(params, secureParams)\n const responseFormat = format || this.format || undefined\n\n if (type === ContentType.FormData && body && body !== null && typeof body === 'object') {\n body = this.createFormData(body as Record)\n }\n\n if (type === ContentType.Text && body && body !== null && typeof body !== 'string') {\n body = JSON.stringify(body)\n }\n\n return this.instance.request({\n ...requestParams,\n headers: {\n ...(requestParams.headers || {}),\n ...(type && type !== ContentType.FormData ? { 'Content-Type': type } : {}),\n },\n params: query,\n responseType: responseFormat,\n data: body,\n url: path,\n })\n }\n}\n\n\n"; export { httpClientTemplate };