import { BasicInfoResponse, ControlInfo, SensorInfoResponse } from 'daikin-controller';
import { DaikinAcPlatform } from './platform.js';
import { DaikinAcMode } from './models/DaikinAcMode.js';
import { DaikinAcState } from './models/DaikinAcState.js';
declare class DaikinAcDevice {
    private ip;
    private connectionPromise;
    private platform;
    private daikinDevice;
    private isConnected;
    currentState: DaikinAcState | undefined;
    name: string;
    private powerUpdatedCallback;
    private indoorTempUpdatedCallback;
    private targetTempUpdatedCallback;
    private modeUpdatedCallback;
    constructor(platform: DaikinAcPlatform, ip: string, options?: {
        useGetToPost?: boolean;
    });
    connect(): Promise<void>;
    startUpdates(powerUpdatedCallback: (power: boolean) => void, modeUpdatedCallback: (power: boolean, mode: number) => void, indoorTempUpdatedCallback: (indoorTemp: number) => void, targetTempUpdatedCallback: (targetTemp: number) => void): void;
    private calculateDelta;
    private updateCurrentState;
    getCommonBasicInfoAsync(): Promise<BasicInfoResponse>;
    getACControlInfo(): Promise<ControlInfo>;
    setACControlInfo(obj: Partial<ControlInfo>): Promise<ControlInfo>;
    getACSensorInfo(): Promise<SensorInfoResponse>;
    setMode(mode: DaikinAcMode): Promise<void>;
    switchOn(): Promise<void>;
    switchOff(): Promise<void>;
    setTargetTemperature(newValue: number): Promise<void>;
}
export { DaikinAcDevice };
//# sourceMappingURL=DaikinAcDevice.d.ts.map