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, IInputOutputSwitchParameters, InputModeSwitchParams, InputOutputSwitchParameters, ReactionToInputSwitchParams, StateOfTurnOnSwitchDeviceParameters } from "../Common/OnOffSwitchConfigurations/OnOffSwitchParameters";
import { SwitchConfigurationErrorCode } from "../Common/OnOffSwitchConfigurations/OnOffSwitchService";
export interface IRopConfigService 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>;
    GetSwitchInputOutputParamAsync(device: IDevice, channel: number): Promise<IInputOutputSwitchParameters[] | ResponseResult<SwitchConfigurationErrorCode>>;
    SetSwitchInputOutputParamAsync(device: IDevice, params: InputOutputSwitchParameters): Promise<Status>;
    SetSwitchInputOutputInputModeParamAsync(device: IDevice, params: InputModeSwitchParams): Promise<Status>;
    SetSwitchInputOutputReactionToInputParamAsync(device: IDevice, params: ReactionToInputSwitchParams): Promise<Status>;
}
