import { IDevice, IStatus, IStatusQuery } from "../interfaces";
import { Source } from "../../../constants/Service";
import { AuditProperties } from "../../../audit/AuditProperties";
export declare class LocalDeviceService {
    private readonly eventHandler;
    private readonly deviceRepository;
    private readonly alertService;
    private readonly issueService;
    private readonly logger;
    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[]>;
    getPropertyDeviceIds(propertyId: string, selectDeviceId: boolean | undefined, type: string): Promise<any>;
    updateDevice(deviceId: string, body: any, auditBody: AuditProperties): Promise<any>;
    deleteDevice(deviceId: string, auditBody: AuditProperties): Promise<any>;
    getState(deviceId: string): Promise<any>;
    setState(deviceId: string, newState: any, auditProperties: AuditProperties): Promise<void>;
    getStatus(deviceId: string): Promise<Record<string, any>>;
    setStatus(deviceId: string, newStatus: IStatus, source: Source, auditBody: AuditProperties, reason?: string): Promise<void>;
    setStatusMany(query: IStatusQuery, newStatus: IStatus, source: Source, auditBody: AuditProperties): Promise<void>;
    private handleOfflineStatus;
    private handleOnlineStatus;
    private getDeviceBaseline;
    getBatteryLevel(deviceId: string): Promise<Record<string, any>>;
    setBatteryLevel(deviceId: string, batteryLevel: number, source: Source, auditBody: AuditProperties): Promise<void>;
    private shouldUpdateBatteryLevel;
    private getPropertyBatteryThreshold;
    private checkForDeviceMalfunctions;
    getMetaData(deviceId: string): Promise<any>;
    setMetaData(deviceId: string, metaData: Record<string, any>, auditBody: AuditProperties): 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: any): Promise<any>;
}
