import { IDeviceConfigService } from "lavva.exalushome/build/js/Services/Devices/IDeviceConfigService";
import { GetParamsErrorCode } from "../../../ExtaLife";
import { FieldChangeResultType, ResponseResult } from "lavva.exalushome/build/js/Services/FieldChangeResult";
import { IDeviceChannel } from '../../../../../exalushome-library/build/js/Services/Devices/IDeviceChannel';
export interface ISbrConfigService extends IDeviceConfigService {
    /**
     * This method allows to set auto close time in device
     * @param deviceChannel channel of device
     * @param timeInMiliseconds must by in range from 60_000 to 3_600_000 ms
     * @param resetOnCrossToOn Set to true if you want to reset timer when device is turned on, false otherwise
     */
    SetAutoCloseTimeAsync(deviceChannel: IDeviceChannel, timeInMiliseconds: number, resetOnCrossToOn: boolean): Promise<ResponseResult<FieldChangeResultType>>;
    /**
     * This method allows to get auto close time set in device
     * @param deviceChannel channel of device
     */
    GetAutoCloseTimeAsync(deviceChannel: IDeviceChannel): Promise<SbrAutoCloseTime | ResponseResult<GetParamsErrorCode>>;
    /**
     * This methods allows to set alarm light delay in device
     * @param deviceChannel channel of device
     * @param lightDelayInMiliseconds light delay must be in range of 0 up to 120_000 ms
     */
    SetAlarmLightDelayAsync(deviceChannel: IDeviceChannel, lightDelayInMiliseconds: number): Promise<ResponseResult<FieldChangeResultType>>;
    /**
     * This method allows to get alarm light delay set in device
     * @param deviceChannel channel of device
     */
    GetAlarmLightDelayAsync(deviceChannel: IDeviceChannel): Promise<number | ResponseResult<GetParamsErrorCode>>;
    /**
     * This method allows to set alarm light duration in device
     * @param deviceChannel channel of device
     * @param lightDurationInMiliseconds light duration must br in range of 0 up to 3_600_00 ms
     */
    SetAlarmLightDurationAsync(deviceChannel: IDeviceChannel, lightDurationInMiliseconds: number): Promise<ResponseResult<FieldChangeResultType>>;
    /**
     * This method allows to get alarm light duration set in device
     * @param deviceChannel channel of device
     */
    GetAlarmLightDurationAsync(deviceChannel: IDeviceChannel): Promise<number | ResponseResult<GetParamsErrorCode>>;
    /**
     * This method allows to get service info statistics from device, method can be called only by user with support privilages
     * @param deviceChannel channel of device
     */
    GetServiceInfoAsync(deviceChannel: IDeviceChannel): Promise<SbrServiceInfo | ResponseResult<GetParamsErrorCode>>;
}
export declare class SbrAutoCloseTime {
    DeviceGuid: string;
    TimeInMiliseconds: number;
    ResetOnCrossToOn: boolean;
}
export declare class SbrAlarmLightDelay {
    DeviceGuid: string;
    LightDelayInMiliseconds: number;
}
export declare class SbrAlarmLightDuration {
    DeviceGuid: string;
    LightDurationInMiliseconds: number;
}
export declare class SbrServiceInfo {
    StartsCount: number;
    SafetyBarTrgCount: number;
    PhotocelTrgCount: number;
    InertionBreaksTrgCount: number;
}
