import { IntRange } from "lavva.exalushome/build/js/Helpers";
export type Minutes = IntRange<0, 60>;
export type Seconds = IntRange<0, 60>;
export type Hours = IntRange<0, 24>;
export interface ITime {
    get Seconds(): Seconds;
    set Seconds(value: Seconds);
    get Hours(): number;
    set Hours(value: number);
    get Minutes(): Minutes;
    set Minutes(value: Minutes);
    get Raw(): number;
}
export declare class Time {
    private _hours;
    private _minutes;
    private _seconds;
    protected _raw: number;
    get Raw(): number;
    get Hours(): Hours;
    set Hours(value: Hours);
    get Minutes(): Minutes;
    set Minutes(value: Minutes);
    get Seconds(): Seconds;
    set Seconds(value: Seconds);
}
export declare class StateOfTurnOnSwitchDeviceParameters {
    Channel: number;
    State: SwitchTurnOnState;
}
export declare enum SwitchTurnOnState {
    Disabled = 0,
    Enabled = 1,
    PreviousState = 2
}
export declare class GlobalTimeParameters {
    Channel: number;
    Time: ITime;
}
export interface IInputOutputSwitchParameters {
    get Channel(): number;
    get InputsNumber(): number;
    get InputMode(): InputModeSwitch;
    get ReactionToInput(): ReactionToInput;
    get InputChannel(): number;
}
export declare class InputModeSwitchParams {
    Channel: number;
    InputChannel: number;
    InputMode: InputModeSwitch;
}
export declare class ReactionToInputSwitchParams {
    Channel: number;
    InputChannel: number;
    ReactionToInput: ReactionToInput;
}
export declare enum InputModeSwitch {
    Monostable = 0,
    Bistable = 1
}
export declare class InputOutputSwitchParameters implements IInputOutputSwitchParameters {
    private _channel;
    private _inputsNumber;
    private _inputMode;
    private _reactionToInput;
    private _inputChannel;
    get Channel(): number;
    set Channel(value: number);
    get InputsNumber(): number;
    get InputMode(): InputModeSwitch;
    set InputMode(value: InputModeSwitch);
    get ReactionToInput(): ReactionToInput;
    set ReactionToInput(value: ReactionToInput);
    get InputChannel(): number;
    set InputChannel(value: number);
}
export declare enum ReactionToInput {
    None = 0,
    Off = 1,
    On = 2,
    Time = 3,
    Mono = 4,
    Bi = 5,
    OnOff = 6
}
