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 { MultisensorDetectionThresholdParams, MultisensorIntervalParams, Rcm21Channels } from './Rcm21ConfigParams';
import { GetParamsErrorCode } from "../../../ExtaLife";
import { Status } from 'lavva.exalushome/build/js/DataFrame';
import { VersionedOptions } from './Rcm21ConfigService';
export interface IRcm21ConfigService extends IDeviceConfigService {
    GetDetectionThresholdDataAsync(device: IDevice, channel: Rcm21Channels): Promise<MultisensorDetectionThresholdParams | ResponseResult<GetParamsErrorCode>>;
    /**
     * Function to set hysteresis thresholds - if threshold is out of ragne method returns Status.WrongData
     * @param device
     * @param channel
     * @param threshold
     * Allowed values for thresholds:
     *
     * TemperatureChannel: 0.3 - 30 step 0.1
     * HuminidityChannel: 1 - 99 step 1
     * PressureChannel: 1 - 100 step 1
     * BrightnessChannel: 1 - 100 step 1
     *
     */
    SetDetectionThresholdAsync(device: IDevice, channel: Rcm21Channels, threshold: number): Promise<Status>;
    GetFramesIntervalAsync(device: IDevice, channel: Rcm21Channels): Promise<MultisensorIntervalParams | ResponseResult<GetParamsErrorCode>>;
    /**
     * Function to set frames interval (value define how often device sends measurments) - if interval is out of ragne method returns Status.WrongData
     * @param device
     * @param interval - range 10 - 6480 secounds
     *
     */
    SetFramesIntervalAsync(device: IDevice, channel: Rcm21Channels, interval: number): Promise<Status>;
    /**
     * Configuration services with features avaliable for a specific version of device frimware
     * Key is in the format of the sensor fw. version - [Major].[Minor].[Build].[Revision]
     *
     * @returns key-value pair with service for specific fw. version
     */
    VersionedConfigurationOptions(): VersionedOptions;
}
