import { OnModuleInit } from '@nestjs/common';
import { FeatureFlagsService } from '../../config/feature-flags.service';
import { LkvService } from '../store/lkv.service';
import { CreateDeviceDto, DeviceRecord } from '../../dto/device/device.dto';
export interface CatalogItem {
    id: string;
    cat: string;
    name: string;
    vendor: string;
    proto: string[];
    unit: string;
    scale?: number;
    minNorm?: number;
    maxNorm?: number;
    model?: string;
    widget: string;
    custom?: boolean;
}
export declare class DeviceService implements OnModuleInit {
    private readonly features;
    private readonly lkv;
    private readonly logger;
    private readonly modbusClients;
    private readonly opcuaSessions;
    constructor(features: FeatureFlagsService, lkv: LkvService);
    onModuleInit(): void;
    private initExistingDevices;
    getAll(): DeviceRecord[];
    create(dto: CreateDeviceDto): Promise<{
        ok: boolean;
        id: string;
    }>;
    update(id: string, dto: Partial<CreateDeviceDto>): Promise<void>;
    remove(id: string): Promise<void>;
    getCatalog(q?: string, cat?: string): CatalogItem[];
    addToCatalog(item: Partial<CatalogItem>): Promise<{
        ok: boolean;
        id: string;
    }>;
    private pollAllDevices;
    private pollDevice;
    private initModbus;
    private pollModbus;
    private initOpcua;
    private pollOpcua;
    private applyToLkv;
    private initDevice;
    private disconnectDevice;
    private updateDeviceStatus;
    private get dataDir();
    private readJson;
    private writeJson;
    private readDevices;
    private writeDevices;
    private readCatalog;
    private writeCatalog;
}
