import { DeviceResponseType } from "./IDevice";
import { DeviceStateChangedObject } from "./DevicesService";
export declare class DeviceState<T extends IDeviceStateData> implements IDeviceState<T> {
    _type: string;
    _data: T | null;
    _typeAsEnum: DeviceResponseType;
    _serializedDataWithoutTime: string;
    get Data(): T;
    set Data(value: T);
    get Type(): string;
    set Type(value: string);
    get TypeAsEnum(): DeviceResponseType;
    set TypeAsEnum(value: DeviceResponseType);
    get StatesComparisonData(): string;
}
export interface IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Time: string;
}
export interface IDeviceState<T extends IDeviceStateData> {
    get Type(): string;
    get TypeAsEnum(): DeviceResponseType;
    get Data(): T;
    set Data(value: T);
    get StatesComparisonData(): string;
}
export declare enum StateReliability {
    Confident = 0,
    Unconfident = 1
}
export declare class ChannelOnOffDeviceState extends DeviceState<ChannelOnOffState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class ChannelOnOffState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: ChannelOnOffStateEnum;
    Time: string;
}
export declare enum ChannelOnOffStateEnum {
    On = 0,
    Off = 1,
    Unknown = 2
}
export declare class IntercomDeviceState extends DeviceState<IntercomState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class IntercomState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: IntercomStateEnum;
    Time: string;
}
export declare enum IntercomStateEnum {
    Idle = 0,
    IncomingCall = 1,
    AnsweringCall = 2,
    Busy = 3,
    NoAnswerToCall = 4,
    Unknown = 5
}
export declare class OnlineCameraState extends DeviceState<ChannelOnOffState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class DoorBellDeviceState extends DeviceState<DoorBellState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class DoorBellState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: DoorBellStateEnum;
    Time: string;
}
export declare enum DoorBellStateEnum {
    Pressed = 0,
    Relased = 1,
    PressedAndRelased = 2
}
export declare class ReedStateDeviceState extends DeviceState<ReedState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class ReedState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: boolean;
    Time: string;
}
export declare class BlindPositionDeviceState extends DeviceState<BlindPostionState> {
    constructor(state: DeviceStateChangedObject);
    GetBlindStatus(): BlindStatusCode;
}
export declare enum BlindStatusCode {
    Unknown = 0,
    Working = 1,
    UnableToMove = 200,
    MotorOverheatedPleaseWait = 201
}
export declare class BlindPostionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Position: number;
    RawPosition: number;
    Time: string;
}
export declare class RemoteButtonDeviceState extends DeviceState<RemoteButtonState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class RemoteButtonState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: RemoteButtonStateEnum;
    Time: string;
}
export declare enum RemoteButtonStateEnum {
    Pressed = 1,
    Relased = 2,
    PressedAndRelased = 3
}
export declare class LightColorDeviceState extends DeviceState<LightColorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class LightColorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    R: number;
    G: number;
    B: number;
    Time: string;
}
export declare class LightWarmthDeviceState extends DeviceState<LightWarmthState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class LightWarmthState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Temperature: number;
    Time: string;
}
export declare class LightBrightnessDeviceState extends DeviceState<LightBrightnessState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class LightBrightnessState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Brightness: number;
    Time: string;
}
export declare class MeasuredTemperatureDeviceState extends DeviceState<MeasuredTemperatureState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class MeasuredTemperatureState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Temperature: number;
    Type: MeasuredTemperatureTypeEnum;
    Time: string;
}
declare enum MeasuredTemperatureTypeEnum {
    AirTemperature = 0,
    InsideTemperature = 1,
    OutsideTemperature = 2,
    FloorTemperature = 3,
    SafetyTemperature = 4,
    SetTemperature = 5
}
export declare class BatteryDeviceState extends DeviceState<BatteryState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BatteryState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: BatteryStateEnum;
    Percentage: number;
    Time: string;
}
export declare enum BatteryStateEnum {
    Unknown = -1,
    Full = 0,
    Empty = 1,
    Half = 2,
    Percentage = 3,
    Low = 4,
    ExternalPower = 5
}
export declare class MeasuredBrightnessDeviceState extends DeviceState<MeasuredBrightnessState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class MeasuredBrightnessState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Brightness: number;
    Time: string;
}
export declare class MeasuredEnergyDeviceState extends DeviceState<MeasuredEnergyState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class MeasuredEnergyState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Time: string;
    MeasurementParameters: Map<EnergyMeasurementParameter, number>;
}
export declare enum EnergyMeasurementParameter {
    Voltage = "Voltage",
    Current = "Current",
    PhaseShift = "PhaseShift",
    ActivePower = "ActivePower",
    ReactivePower = "ReactivePower",
    ApparentPower = "ApparentPower",
    PowerFactor = "PowerFactor",
    ActiveForwardEnergy = "ActiveForwardEnergy",
    ActiveReverseEnergy = "ActiveReverseEnergy",
    ApparentEnergy = "ApparentEnergy",
    ReactiveForwardEnergy = "ReactiveForwardEnergy",
    ReactiveReverseEnergy = "ReactiveReverseEnergy",
    Frequency = "Frequency",
    SPIErrorRate = "SPIErrorRate",
    CRCErrorRate = "CRCErrorRate",
    Timestamp = "Timestamp",
    FailedMeasurementsRate = "FailedMeasurementsRate",
    FundamentalActivePower = "FundamentalActivePower",
    HarmonicActivePower = "HarmonicActivePower"
}
export declare class MeasuredDistanceDeviceState extends DeviceState<MeasuredDistanceState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class MeasuredDistanceState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Distance: number;
    DetectedObject: DetectedObjectStateEnum;
    Time: string;
}
export declare enum DetectedObjectStateEnum {
    No = 0,
    Yes = 1
}
export declare class MovementSensorDeviceState extends DeviceState<MovementSensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class MovementSensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Intensity: number;
    Movement: MovementStateEnum;
    Time: string;
}
export declare enum MovementStateEnum {
    No = 0,
    Yes = 1
}
export declare class BlindRemoteButtonDeviceState extends DeviceState<BlindRemoteButtonState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BlindRemoteButtonState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: BlindRemoteButtonStateEnum;
    Time: string;
}
export declare enum BlindRemoteButtonStateEnum {
    OpenPressed = 1,
    OpenReleased = 2,
    StopPressed = 3,
    StopReleased = 4,
    ClosePressed = 5,
    CloseReleased = 6
}
export declare class FacadeRemoteButtonDeviceState extends DeviceState<FacadeRemoteButtonState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class FacadeRemoteButtonState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: FacadeRemoteButtonStateEnum;
    Time: string;
}
export declare enum FacadeRemoteButtonStateEnum {
    OpenPressed = 1,
    OpenReleased = 2,
    StopPressed = 3,
    StopReleased = 4,
    ClosePressed = 5,
    CloseReleased = 6
}
export declare class SignalStrenghtDeviceState extends DeviceState<SignalStrenghtState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class SignalStrenghtState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Quality: LinkQualityEnum;
    MeasurementTime: string;
    DidLastTaskSucceded: boolean;
    Percentage: number;
    SuccededExecutionsPercentage: number;
    SuccededTransmissionsPercentage: number;
    Time: string;
}
export declare enum LinkQualityEnum {
    Unknown = 0,
    Excellent = 1,
    Good = 2,
    Acceptable = 3,
    Low = 4,
    Terrible = 5,
    NoLink = 6
}
export declare class GatePositionDeviceState extends DeviceState<GatePositionState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class GatePositionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    PositionType: GatePositionTypeEnum;
    Position: number;
    Time: string;
}
export declare enum GatePositionTypeEnum {
    Unknown = 0,
    Open = 1,
    PartiallyOpen = 2,
    Close = 3,
    On = 4,
    Off = 5,
    Percentage = 6
}
export declare class GatewayPositionDeviceState extends DeviceState<GatewayPositionState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class GatewayPositionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    PositionType: GatewayPositionTypeEnum;
    Position: number;
    Time: string;
}
export declare enum GatewayPositionTypeEnum {
    Unknown = 0,
    Open = 1,
    PartiallyOpen = 2,
    Close = 3,
    On = 4,
    Off = 5
}
export declare class GateControllerHealthDeviceState extends DeviceState<GateControllerHealthState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class GateControllerHealthState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Time: string;
    ResistanceOrOpticBarStatus: ResistanceOrOpticBarStatusEnum;
    PhotoCellsActive: boolean;
    LastAutotestFailed: boolean;
    AutotestSwitchOn: boolean;
    ExternalLimitSwitchAActive: boolean;
    ExternalLimitSwitchBActive: boolean;
    InertionBreaksOk: boolean;
    ObstacleDetected: boolean;
}
export declare enum ResistanceOrOpticBarStatusEnum {
    Unknown = -1,
    Inactive = 0,
    Active = 1,
    UnconnectedOrMalfunction = 2
}
export declare class BlindCalibrationDeviceState extends DeviceState<BlindCalibrationState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BlindCalibrationState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    CalibrationStatus: BlindCalibrationStatusEnum;
    Time: string;
}
export declare enum BlindCalibrationStatusEnum {
    AutoLernIdle = 0,
    AutoLernInProgress = 1,
    AutoLernSuccessfull = 2,
    AutoLernCancelled = 4
}
export declare class HumiditySensorDeviceState extends DeviceState<HumiditySensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class HumiditySensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Type: HumidityTypeEnum;
    Humidity: number;
    Time: string;
}
export declare enum HumidityTypeEnum {
    AirHumidity = 0,
    InsideHumidity = 1,
    OutsideHumidity = 2,
    SafetyHumidity = 3,
    SetHumidity = 4
}
export declare class VibrationSensorDeviceState extends DeviceState<VibrationSensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class VibrationSensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Vibration: VibrationTypeEnum;
    Acceleration_X: number;
    Acceleration_Y: number;
    Acceleration_Z: number;
    AccelerationModule: number;
    Time: string;
}
export declare enum VibrationTypeEnum {
    No = 0,
    Yes = 1
}
export declare class BinarySensorStateDeviceState extends DeviceState<BinarySensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BinarySensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: BinarySensorStateEnum;
    Time: string;
}
export declare enum BinarySensorStateEnum {
    High = 1,
    Low = 0
}
export declare class ConfigurationDeviceState extends DeviceState<ConfigurationState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class ConfigurationState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Configuration: ConfigurationStateEnum;
    Time: string;
}
export declare enum ConfigurationStateEnum {
    Unknown = 0,
    OngoingConfiguration = 1,
    NotConfigured = 2,
    Configured = 3,
    PartiallyConfigured = 4
}
export declare class BlindOpenCloseTimeDeviceState extends DeviceState<BlindOpenCloseTimeState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BlindOpenCloseTimeState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Vibration: VibrationTypeEnum;
    CloseTime: number;
    OpenTime: number;
    HallCounter: number;
    Time: string;
}
export declare class OvercurrentProtectionDeviceState extends DeviceState<OvercurrentProtectionState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class OvercurrentProtectionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    OverrcurrentDetected: boolean;
    Time: string;
}
export declare class OvercurrentProtectionThresholdDeviceState extends DeviceState<OvercurrentProtectionThresholdState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class OvercurrentProtectionThresholdState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Current: number;
    Time: string;
}
export declare class FacadePositionDeviceState extends DeviceState<FacadePositionState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class FacadePositionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Position: number;
    Tilt: number;
    Time: string;
}
export declare class FacadeTypeDeviceState extends DeviceState<FacadeTypeState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class FacadeTypeState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Time: string;
    FType: FacadeType;
}
export declare class CurrentWindThresholdDeviceState extends DeviceState<CurrentWindThresholdState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class CurrentWindThresholdState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    WindThreshold: WindThresholdStateEnum;
    Time: string;
}
export declare enum WindThresholdStateEnum {
    Unknown = 0,
    Below = 1,
    Exceeded = 2,
    Inactive = 3
}
export declare class CurrentLightThresholdDeviceState extends DeviceState<CurrentLightThresholdState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class CurrentLightThresholdState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    LightThreshold: LightThresholdStateEnum;
    Value: number;
    Time: string;
}
export declare enum LightThresholdStateEnum {
    Unknown = 0,
    Below = 1,
    Exceeded = 2
}
export declare class WindSpeedDeviceState extends DeviceState<WindSpeedState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class WindSpeedState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Value: number;
    Time: string;
}
export declare class FloodSensorDeviceState extends DeviceState<FloodSensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class FloodSensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: FloodSensorStates;
    Time: string;
}
export declare enum FloodSensorStates {
    FloodDetected = 1,
    NoFloodDetected = 0
}
export declare enum HumidityType {
    AirHumidity = 0,
    InsideHumidity = 1,
    OutsideHumidity = 2,
    SafetyHumidity = 3,
    SetHumidity = 4
}
export declare class PressureSensorDeviceState extends DeviceState<PressureSensorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class PressureSensorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    Pressure: number;
    Time: string;
    PressureType: PressureType;
}
export declare enum PressureType {
    InsidePressure = 0,
    OutsidePressure = 1,
    SetPressure = 2
}
export declare enum FacadeType {
    Facade90 = 0,
    Facade180 = 1
}
export declare class TamperProtectionDeviceState extends DeviceState<TamperProtectionState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class TamperProtectionState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    State: TamperProtectionStatus;
    Time: string;
}
export declare enum TamperProtectionStatus {
    OK = 0,
    Breach = 1
}
export declare class LightRGBWDeviceState extends DeviceState<LightRGBWState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class LightRGBWState implements IDeviceStateData {
    StateReliability: StateReliability;
    Time: string;
    R: number;
    G: number;
    B: number;
    W: number;
    Channel: number;
    Brightness: number;
}
export declare class BlindErrorDeviceState extends DeviceState<BlindErrorState> {
    constructor(state: DeviceStateChangedObject);
}
export declare class BlindErrorState implements IDeviceStateData {
    Channel: number;
    StateReliability: StateReliability;
    ErrorCode: BlindErrorCode;
    ErrorData: Map<string, string>;
    Reset: boolean;
    Time: string;
}
export declare enum BlindErrorCode {
    Unknown = 0,
    ObstacleDetected = 1,
    MotorFailure = 2
}
export {};
