import { HTTPConfig } from "../config/HTTPConfig";
import { MQTTConfig } from "../config/MQTTConfig";
import { IHttpRequester } from "../core/http/IHttpRequester";
import { IMQTTClient } from "../core/mqtt/IMQTTClient";
import { ISDKLogger } from "../util/ISDKLogger";
import { ControllerDeviceType } from "../vo/device/ControllerDeviceType";
import { ControllerManager } from "./ControllerManager";
import { IControllerCallback } from "./IControllerCallback";
export declare class Builder {
    private readonly controllerManager;
    private readonly device;
    private guid;
    constructor();
    initControllerDeviceId(guid: string): Builder;
    initControllerType(type: ControllerDeviceType): Builder;
    initNetwork(ip: string, gateway: string, mask: string): Builder;
    /**
    * 设置显示终端事件回调，用于接收并响应与UI相关的事件
    * @param callback 显示终端事件回调
    * @return 构造器实体
    */
    setCallback(callbak: IControllerCallback): Builder;
    /**
    * SDK未提供http请求实现，app需要封装自身的实现，并可以选择对url做自己的配置，不提供则使用sdk内部默认的配置
    * @param requestImpl http请求实现，比如在实现类中封装fetch api
    * @param config http服务器配置项实现，用于配置符合条件的各项参数
    * @param isTestServer 是否使用测试服，默认为false即使用正式服
    * @return 构造器实体
    */
    setHttpRequestImpl(requestImpl: IHttpRequester, config: HTTPConfig, isTestServer: boolean): Builder;
    /**
    * SDK目前未提供mqtt实现，需app进行设置，否则无法完成mqtt请求
    * 请务必在initControllerDeviceId函数之后调用
    * @param clientImpl mqtt实现的封装，比如在实现类中封装Paho mqtt库
    * @param config mqtt服务器配置项实现，用于配置符合条件的各项参数
    * @param isTestServer 是否使用测试服，默认为false即使用正式服
    * @return 构造器实体
    */
    setMQTTClientImpl(clientImpl: IMQTTClient, config: MQTTConfig, isTestServer: boolean): Builder;
    setSDKLogger(logger: ISDKLogger): Builder;
    build(): ControllerManager;
}
//# sourceMappingURL=Builder.d.ts.map