import { DeviceResponseType } from "../Devices/IDevice";
import { EnergyMeasurementParameter, FloodSensorStates, MovementStateEnum } from "../Devices/IDeviceState";
export interface IAvailableState {
    get StateObjectType(): string;
    get StateInterfaceType(): string;
    get StateResponseType(): DeviceResponseType;
}
export interface IAvailableStatePerChannel {
    get DeviceGuid(): string;
    get Channel(): number;
    get AvailableStates(): IAvailableState[];
}
export declare enum StateInterval {
    None = 0,
    DataRange = 1,
    Hour = 2,
    Day = 3,
    Week = 4,
    Month = 5,
    Year = 6
}
export declare enum AggregateDataType {
    Min = "Min",
    Max = "Max",
    Avg = "Avg"
}
export declare class AvailableState implements IAvailableState {
    private _objectType;
    private _stateInterfaceType;
    get StateObjectType(): string;
    get StateInterfaceType(): string;
    get StateResponseType(): DeviceResponseType;
    set StateObjectType(value: string);
    set StateInterfaceType(value: string);
}
export declare class StateDataResponse<T> {
    DeviceGuid: string;
    DeviceChannel: number;
    Count: number;
    IsNextPageAvailable: boolean;
    Limit: number;
    Offset: number;
    Data: StateData<T>[];
    AggregateDataList: AggregateDataEntry[];
}
export declare class AggregateDataEntry {
    DataEntryIdentity: string;
    AggregateData: Map<AggregateDataType, any>;
}
export declare class StateData<T> {
    Time: string;
    Values: T | null;
    AggregatedBy: string;
}
export interface AveragingStateValues {
    get LastValue(): number;
    get Average(): number;
    get Mode(): number;
    get Min(): number;
    get Max(): number;
}
export interface BrightnessHistory {
    get LuxValue(): number;
    get LuxToLinearScale(): number;
    get LightCondition(): LightCondition;
}
export declare enum LightCondition {
    Unknown = -1,
    PitchBlack = 0,
    VeryDark = 1,
    DarkIndoors = 2,
    DimIndoors = 3,
    NormalIndoors = 4,
    BrightIndoors = 5,
    DimOutdoors = 6,
    CloudyOutdoors = 7,
    DirectSunlight = 8
}
export interface ReedStateHistory {
    get State(): boolean;
}
export interface FloodStateHistory {
    get State(): FloodSensorStates;
}
export interface MovementStateHistory {
    get Movement(): MovementStateEnum;
    get Intensity(): number;
}
export interface EnergyHistory {
    get MeasurementAveragingParameters(): Map<EnergyMeasurementParameter, AveragingStateValues>;
    get MeasurementNonAveragingParmeters(): Map<EnergyMeasurementParameter, number>;
}
