import { IDeviceService } from "../interfaces";
import { IConnection, IDevice } from "../types";
export declare abstract class DeviceService implements IDeviceService {
    deviceId: string;
    propertyId: string;
    name: string;
    hubId: string[];
    deviceType: {
        id: string;
        type: string;
    };
    status: {
        online: boolean;
        error?: {
            type?: string;
            message?: string;
        };
        lastUpdated?: string;
    };
    state?: Record<string, any>;
    metaData?: Record<string, any>;
    zone?: {
        id: string;
        name: string;
        zoneType: string;
        parentZone?: {
            id: string;
            name: string;
            zoneType: string;
        };
    };
    connection: IConnection;
    constructor(device: IDevice);
    abstract getDevices(connection: IConnection): Promise<Record<string, any>[]>;
    abstract getDevice(connectionId: string, deviceId: string): Promise<any>;
    abstract getBattery(deviceId: string): Promise<number | string>;
    abstract getStatus(connectionId: string, deviceId: string): Promise<string>;
    abstract getState(deviceId: string): Promise<string>;
}
