import { HTTPConfig } from '../../config/HTTPConfig';
import { CastProtocol } from '../../vo/cast/CastProtocol';
import { CastType } from '../../vo/cast/CastType';
import { ControllerDeviceVO } from '../../vo/device/ControllerDeviceVO';
import { CastSessionResponse } from './response/CastSessionResponse';
import { ConnectDisplayResponse } from './response/ConnectDisplayResponse';
import { EmptyResponse } from './response/EmptyResponse';
import { Result } from './response/Result';
import { IHttpRequester } from './IHttpRequester';
import { VerifyCodeResponse } from './response/VerifyCodeResponse';
import { ControllerDeviceType } from '../../vo/device/ControllerDeviceType';
import { LoginUserResponse } from './response/LoginUserResponse';
import { AccountBindDeviceResponse } from './response/AccountBindDeviceResponse';
import { SessionDestroyReason } from '../mqtt/message/SessionDestroyReason';
export declare class HttpRequestExecutor {
    private readonly TAG;
    private httpConfig;
    private readonly jsonParser;
    private requesterImpl;
    constructor();
    setHttpRequester(requesterImpl: IHttpRequester): void;
    setHTTPConfig(config: HTTPConfig): void;
    connectDisplay(displayCode: number, controllerDevice: ControllerDeviceVO): Promise<Result<ConnectDisplayResponse>>;
    disconnectDisplay(displayCode: number, controllerDevice: ControllerDeviceVO): Promise<Result<EmptyResponse>>;
    createCastSession(displayCode: number, guid: string, castType: CastType, protocol: CastProtocol, accessToken?: string): Promise<Result<CastSessionResponse>>;
    destroyCastSession(castSessionId: number, reason?: SessionDestroyReason): Promise<Result<EmptyResponse>>;
    requireVerifyCode(phoneNumber: string): Promise<Result<VerifyCodeResponse>>;
    login(phoneNumber: string, verifyCode: string, deviceType: ControllerDeviceType, guid: string, loginType: string): Promise<Result<LoginUserResponse>>;
    refresh(guid: string, accessToken: string): Promise<Result<LoginUserResponse>>;
    logout(accessToken: string): Promise<Result<EmptyResponse>>;
    unRegister(accessToken: string): Promise<Result<EmptyResponse>>;
    getAllBoundDevices(accessToken: string): Promise<Result<AccountBindDeviceResponse>>;
    bindDisplay(displayDeviceId: string, alias: string, accessToken: string): Promise<Result<AccountBindDeviceResponse>>;
    updateBindDisplayAlias(displayDeviceId: string, alias: string, accessToken: string): Promise<Result<AccountBindDeviceResponse>>;
    unBindDisplay(displayDeviceId: string, accessToken: string): Promise<Result<EmptyResponse>>;
    private get;
    private post;
    private delete;
    private update;
}
//# sourceMappingURL=HttpRequestExecutor.d.ts.map