import { IDevice, IQueryDevice, IStatus, IStatusQuery } from "../interfaces";
import { Source } from "../../../../constants/Service";
import { IAuditProperties } from "../../../../audit/IAuditProperties";
export declare class LocalDeviceService {
    private readonly eventHandler;
    private readonly deviceRepository;
    private readonly issueService;
    private readonly localPropertyService;
    private readonly monitoringRepository;
    constructor();
    createDevice(body: IDevice): Promise<IDevice>;
    getDevice(deviceId: string, withHubDetails?: boolean): Promise<IDevice>;
    getDevices(deviceIds: string[], withHubDetails?: boolean): Promise<IDevice[]>;
    getPropertyDevices(propertyId: string, selectDeviceId?: boolean, type?: string, withHubDetails?: boolean): Promise<IDevice[]>;
    updateDevice(deviceId: string, body: Partial<IDevice>, auditBody: IAuditProperties): Promise<any>;
    updateDevices(query: any, updateData: any): Promise<any>;
    deleteDevice(deviceId: string, auditBody: IAuditProperties): Promise<any>;
    getState(deviceId: string): Promise<any>;
    setState(deviceId: string, newState: any, auditProperties: IAuditProperties, eventType?: string): Promise<void>;
    getStatus(deviceId: string): Promise<Record<string, any>>;
    setStatus(deviceId: string, newStatus: IStatus, source: Source, auditBody: IAuditProperties, reason?: string): Promise<void>;
    setStatusMany(query: IStatusQuery, newStatus: IStatus, source: Source, auditBody: IAuditProperties): Promise<void>;
    private handleOfflineStatus;
    private handleOnlineStatus;
    private getDeviceBaseline;
    getBatteryLevel(deviceId: string): Promise<Record<string, any>>;
    setBatteryLevel(deviceId: string, batteryLevel: number, source: Source, auditBody: IAuditProperties): Promise<void>;
    private shouldUpdateBatteryLevel;
    updateBatteryState(deviceId: string, batteryState: any): Promise<void>;
    private getPropertyBatteryThreshold;
    getMetaData(deviceId: string): Promise<any>;
    setMetaData(deviceId: string, metaData: Record<string, any>, auditBody: IAuditProperties): Promise<any>;
    getDevicesByZone(zoneId: string): Promise<import("../interfaces").IDtDevice[]>;
    getDevicesByAccessGroup(accessGroupId: string): Promise<import("../interfaces").IDtDevice[]>;
    querySelect(query: any, fields: string[]): Promise<any>;
    queryCount(query: any): Promise<number>;
    deleteDevices(query: any): Promise<any>;
    queryDevices(query: IQueryDevice): Promise<any>;
}
