import { TAGS } from './constants';
import { ISOXMLManager } from '../ISOXMLManager';
import { XMLElement } from '../types';
import { DeviceElement } from './DeviceElement';
import { DeviceProperty } from './DeviceProperty';
import { DeviceProcessData } from './DeviceProcessData';
import { DeviceValuePresentation } from './DeviceValuePresentation';
import { Entity, EntityConstructor } from '../types';
export type DeviceAttributes = {
    DeviceDesignator?: string;
    DeviceSoftwareVersion?: string;
    ClientNAME: string;
    DeviceSerialNumber?: string;
    DeviceStructureLabel: string;
    DeviceLocalizationLabel: string;
    DeviceElement?: DeviceElement[];
    DeviceProperty?: DeviceProperty[];
    DeviceProcessData?: DeviceProcessData[];
    DeviceValuePresentation?: DeviceValuePresentation[];
    ProprietaryAttributes?: {
        [name: string]: string;
    };
    ProprietaryTags?: {
        [tag: string]: XMLElement[];
    };
};
export declare class Device implements Entity {
    attributes: DeviceAttributes;
    isoxmlManager: ISOXMLManager;
    tag: TAGS;
    constructor(attributes: DeviceAttributes, isoxmlManager: ISOXMLManager);
    static fromXML(xml: XMLElement, isoxmlManager: ISOXMLManager, internalId?: string, targetClass?: EntityConstructor): Promise<Entity>;
    toXML(): XMLElement;
}
