import { Status } from 'lavva.exalushome/build/js/DataFrame';
import { IDevice } from 'lavva.exalushome/build/js/Services/Devices/IDevice';
import { IDeviceConfigService } from 'lavva.exalushome/build/js/Services/Devices/IDeviceConfigService';
import { ResponseResult } from 'lavva.exalushome/build/js/Services/FieldChangeResult';
import { CalibrationStatusData, FacadeDetection, FacadeLockTime, LamelaTiltCalibration } from './ZfBidiConfigParams';
import { FacadeConfigurationErrorCode } from './ZfBidiConfigService';
export interface IZfBidiConfigService extends IDeviceConfigService {
    ChangeMovementDirectionAsync(device: IDevice, channel: number): Promise<Status>;
    GetCalibrationStatusAsync(device: IDevice, channel: number): Promise<CalibrationStatusData | ResponseResult<FacadeConfigurationErrorCode>>;
    RunAutomaticLamelaPositionCalibrationAsync(device: IDevice, channel: number): Promise<CalibrationStatusData | ResponseResult<FacadeConfigurationErrorCode>>;
    StopCalibrationAsync(device: IDevice, channel: number): Promise<Status>;
    LamelaTiltCalibration(device: IDevice, channel: number): LamelaTiltCalibration | ResponseResult<FacadeConfigurationErrorCode>;
    IsWindSensorsPairedAsync(device: IDevice, channel: number): Promise<boolean | ResponseResult<FacadeConfigurationErrorCode>>;
    GetWindSensorActiveAsync(device: IDevice, channel: number): Promise<boolean | ResponseResult<FacadeConfigurationErrorCode>>;
    SetWindSensorActiveAsync(device: IDevice, channel: number, windDetectionLockActive: boolean): Promise<Status>;
    GetWindSensorLockTimeAsync(device: IDevice, channel: number): Promise<number | ResponseResult<FacadeConfigurationErrorCode>>;
    SetWindSensorLockTimeAsync(device: IDevice, channel: number, lockTime: FacadeLockTime): Promise<Status>;
    IsBlindLockedByWindSensorAsync(device: IDevice, channel: number): Promise<boolean | ResponseResult<FacadeConfigurationErrorCode>>;
    ClearBlindLockByWindSensorAsync(device: IDevice, channel: number): Promise<Status>;
    GetFacadeTypeDetectionAsync(device: IDevice, channel: number): Promise<FacadeDetection | ResponseResult<FacadeConfigurationErrorCode>>;
    SetFacadeTypeDetectionAsync(device: IDevice, channel: number, detectionType: FacadeDetection): Promise<Status>;
}
