import { Status } from "lavva.exalushome/build/js/DataFrame";
import { IDevice } from "lavva.exalushome/build/js/Services/Devices/IDevice";
import { ResponseResult } from "lavva.exalushome/build/js/Services/FieldChangeResult";
import { IExalusConnectionService } from "lavva.exalushome/build/js/Services/IExalusConnectionService";
import { ILoggerService } from "lavva.exalushome/build/js/Services/Logging/ILoggerService";
import { GlobalTimeParameters, IInputOutputSwitchParameters, InputModeSwitchParams, InputOutputSwitchParameters, ReactionToInputSwitchParams, StateOfTurnOnSwitchDeviceParameters, Time as TimeParam } from "./OnOffSwitchParameters";
export declare class OnOffSwitchService {
    protected _connection: IExalusConnectionService | null;
    protected _logger: ILoggerService;
    static readonly ServiceName: string;
    constructor();
    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>;
    protected ParseNumberToTime(data: number): Time;
}
export declare enum SwitchConfigurationErrorCode {
    InvalidChannelNumber = "InvalidChannelNumber",
    OtherError = "OtherError",
    NoData = "NoData"
}
declare class Time extends TimeParam {
    set Raw(value: number);
}
export {};
