import { ServiceClient } from './ServiceClient';
import { AuthType } from "./enums/AuthType";
import { HttpMethodType } from "./enums/HttpMethodType";
import { RequestBodyType } from "./enums/RequestBodyType";
import { IHttpResponse } from "./utils/http/IHttpResponse";
import { MsFile } from "./model/MsFile";
import { ServiceClientConfig } from "../core/config/ServiceClientConfig";
import { StcHttpRequestObj } from "./model/StcHttpRequestObj";
/**
 * 微服务客户端使用接口
 * 微服务主地址、appId、appKey -> 配置文件中设置
 * traceId -> 客户端内部处理，从当前request的header获取，不可为空，如果当前request无值，那么客户端生成一个uuid填入本次调用的header
 * @author WuFenglin
 **/
export declare class ServiceClientImpl implements ServiceClient {
    private gatewayConfig;
    private serviceClientConfig;
    private simpleHttpUtil;
    constructor(serviceClientConfig: ServiceClientConfig);
    beforeMsCall(sid: string, version: string, requestObj: StcHttpRequestObj): void;
    afterMsCall(sid: string, version: string, requestObj?: StcHttpRequestObj, result?: IHttpResponse): void;
    addCallLog(beginTime: number, requestObj?: StcHttpRequestObj, result?: IHttpResponse): void;
    call<T = any, R = IHttpResponse<T>>(httpMethod: HttpMethodType, sid: string, version: string, tags: string, header: object, params: object, bodyObj: object, authType: AuthType, bodyType: RequestBodyType): Promise<R>;
    get<T = any, R = IHttpResponse<T>>(sid: string, version: string, tags: string, header: object, params: object, authType: AuthType): Promise<R>;
    postFiles<T = any, R = IHttpResponse<T>>(sid: string, version: string, tags: string, header: object, params: object, files: Array<MsFile>, authType: AuthType): Promise<R>;
    private sendRequest;
    private currentTimeMillis;
}
