import { IExalusConnectionService } from "lavva.exalushome/build/js/Services/IExalusConnectionService";
import { IDevice } from "lavva.exalushome/build/js/Services/Devices/IDevice";
import { ILoggerService } from "lavva.exalushome/build/js/Services/Logging/ILoggerService";
import { ResponseResult } from "lavva.exalushome/build/js/Services/FieldChangeResult";
import { IControllerConfigurationService } from "lavva.exalushome/build/js/Services/Controller/IControllerConfigurationService";
import { Status } from "lavva.exalushome/build/js/DataFrame";
import { BlindCalibrationState } from "lavva.exalushome/build/js/Services/Devices/IDeviceState";
import { ComfortPositionParameters, CorrectionSteps, CorrectionType, InputOutputBlindParameters, ManualCalibration, StateOfTurnOnBlindDeviceParameters } from "./BlindConfigParameters";
export declare class BlindConfigService {
    protected _connection: IExalusConnectionService | null;
    protected _controllerConfigurationService: IControllerConfigurationService | null;
    protected _logger: ILoggerService;
    protected _manualCalibrationContext: ManualCalibrationContext;
    static readonly ServiceName: string;
    constructor();
    static Init(): void;
    GetServiceName(): string;
    ManualCalibration(device: IDevice, channel: number): ManualCalibration | ResponseResult<BlindConfigurationErrorCode>;
    RunAutomaticCalibrationAsync(device: IDevice, channel: number): Promise<BlindCalibrationState | ResponseResult<BlindConfigurationErrorCode>>;
    StopAutomaticCalibrationAsync(device: IDevice): Promise<Status>;
    GetCorrectionStepAsync(device: IDevice, channel: number, correctionType: CorrectionType): Promise<CorrectionSteps | ResponseResult<BlindConfigurationErrorCode>>;
    SetCorrectionStepAsync(device: IDevice, channel: number, correction: number, correctionType: CorrectionType): Promise<Status>;
    GetComfortPositionsAsync(device: IDevice, channel: number): Promise<ComfortPositionParameters | ResponseResult<BlindConfigurationErrorCode>>;
    SetComfortPositionAsync(device: IDevice, params: ComfortPositionParameters): Promise<Status>;
    SwapRelaysAsync(device: IDevice, channel: number): Promise<Status>;
    GetBlindInputOutputParamAsync(device: IDevice, channel: number): Promise<InputOutputBlindParameters | ResponseResult<BlindConfigurationErrorCode>>;
    SetBlindInputOutputParamAsync(device: IDevice, params: InputOutputBlindParameters): Promise<Status>;
    GetTurnOnBehaviourAsync(device: IDevice, channel: number): Promise<StateOfTurnOnBlindDeviceParameters | ResponseResult<BlindConfigurationErrorCode>>;
    SetTurnOnBehaviourAsync(device: IDevice, params: StateOfTurnOnBlindDeviceParameters): Promise<Status>;
    private IsCalibrationRunningAsync;
}
export declare enum BlindConfigurationErrorCode {
    OtherError = "OtherError",
    InvalidChannelNumber = "InvalidChannelNumber",
    DeviceNotResponding = "DeviceNotResponding",
    CalibrationCancelled = "CalibrationCancelled",
    Timeout = "Timeout",
    IncorrectResponse = "IncorrectResponse",
    CannotCheckIfCalibrationsIsRunning = "CannotCheckIfCalibrationsIsRunning",
    CalibrationsIsCurrentlyRunning = "CalibrationsIsCurrentlyRunning",
    InputOutputNotFound = "InputOutputNotFound",
    NoData = "NoData",
    WrongStepOfOperation = "WrongStepOfOperation"
}
declare class ManualCalibrationContext {
    StepAFinished: boolean;
    StepBFinished: boolean;
    StepCFinished: boolean;
    StepBAFinished: boolean;
    StepCAFinished: boolean;
    OpeningStartTime: number;
    OpeningEndTime: number;
    ClosingStartTime: number;
    ClosingEndTime: number;
}
export {};
