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 { GlobalTimeParameters, StateOfTurnOnSwitchDeviceParameters } from "../Common/OnOffSwitchConfigurations/OnOffSwitchParameters";
import { SwitchConfigurationErrorCode } from "../Common/OnOffSwitchConfigurations/OnOffSwitchService";
import { InputOutputDimmerParameters, LightTransitionTime, MaxLightLevel, MinLightLevel } from "./Rdp21ConfigParameters";
export interface IRdp21ConfigService extends IDeviceConfigService {
    GetTurnOnBehaviourAsync(device: IDevice, channel: number): Promise<StateOfTurnOnSwitchDeviceParameters | ResponseResult<SwitchConfigurationErrorCode>>;
    SetTurnOnBehaviourAsync(device: IDevice, params: StateOfTurnOnSwitchDeviceParameters): Promise<Status>;
    GetGlobalTimeSettingsAsync(device: IDevice, channel: number): Promise<GlobalTimeParameters | ResponseResult<SwitchConfigurationErrorCode>>;
    SetGlobalTimeSettingsAsync(device: IDevice, params: GlobalTimeParameters): Promise<Status>;
    GetTurnOnTimeAsync(device: IDevice, channel: number): Promise<GlobalTimeParameters | ResponseResult<SwitchConfigurationErrorCode>>;
    SetTurnOnTimeAsync(device: IDevice, params: GlobalTimeParameters): Promise<Status>;
    GetDimmerInputOutputParamAsync(device: IDevice, channel: number): Promise<InputOutputDimmerParameters | ResponseResult<SwitchConfigurationErrorCode>>;
    SetDimmerInputOutputParamAsync(device: IDevice, params: InputOutputDimmerParameters): Promise<Status>;
    GetDimmingTimeAsync(device: IDevice, channel: number): Promise<ResponseResult<SwitchConfigurationErrorCode> | LightTransitionTime>;
    SetDimmingTimeAsync(device: IDevice, channel: number, time: LightTransitionTime): Promise<Status>;
    GetBrighteningTimeAsync(device: IDevice, channel: number): Promise<ResponseResult<SwitchConfigurationErrorCode> | LightTransitionTime>;
    SetBrighteningTimeAsync(device: IDevice, channel: number, time: LightTransitionTime): Promise<Status>;
    GetMinLevelAsync(device: IDevice, channel: number): Promise<ResponseResult<SwitchConfigurationErrorCode> | MinLightLevel>;
    SetMinLevelAsync(device: IDevice, channel: number, level: MinLightLevel): Promise<Status>;
    GetMaxLevelAsync(device: IDevice, channel: number): Promise<ResponseResult<SwitchConfigurationErrorCode> | MaxLightLevel>;
    SetMaxLevelAsync(device: IDevice, channel: number, level: MaxLightLevel): Promise<Status>;
}
