/** * @push.rocks/devicemanager * A comprehensive device manager for discovering and communicating with network devices * Supports: Scanners, Printers, SNMP devices, UPS, DLNA, Sonos, AirPlay, Chromecast */ // Main exports from DeviceManager export { DeviceManager, MdnsDiscovery, NetworkScanner, SsdpDiscovery, Scanner, Printer, SnmpDevice, UpsDevice, DlnaRenderer, DlnaServer, Speaker, SonosSpeaker, AirPlaySpeaker, ChromecastSpeaker, SERVICE_TYPES, SSDP_SERVICE_TYPES, } from './devicemanager.classes.devicemanager.js'; // Abstract/base classes export { Device } from './abstract/device.abstract.js'; // Universal Device & Features (new architecture) export { UniversalDevice } from './device/device.classes.device.js'; export { Feature, ScanFeature, PrintFeature, PlaybackFeature, VolumeFeature, PowerFeature, SnmpFeature, type TDeviceReference, type IScanFeatureOptions, type IPrintFeatureOptions, type IPlaybackFeatureOptions, type IVolumeFeatureOptions, type IVolumeController, type IPowerFeatureOptions, type ISnmpFeatureOptions, } from './features/index.js'; // Scanner protocol implementations export { EsclProtocol } from './scanner/scanner.classes.esclprotocol.js'; export { SaneProtocol } from './scanner/scanner.classes.saneprotocol.js'; // Printer protocol export { IppProtocol } from './printer/printer.classes.ippprotocol.js'; // SNMP protocol export { SnmpProtocol, SNMP_OIDS } from './snmp/snmp.classes.snmpprotocol.js'; // UPS protocols export { NutProtocol, NUT_COMMANDS, NUT_VARIABLES } from './ups/ups.classes.nutprotocol.js'; export { UpsSnmpHandler, UPS_SNMP_OIDS } from './ups/ups.classes.upssnmp.js'; // DLNA/UPnP protocol export { UpnpSoapClient, UPNP_SERVICE_TYPES, UPNP_DEVICE_TYPES, } from './dlna/dlna.classes.upnp.js'; // Chromecast app IDs export { CHROMECAST_APPS } from './speaker/speaker.classes.chromecast.js'; // AirPlay features export { AIRPLAY_FEATURES } from './speaker/speaker.classes.airplay.js'; // Helpers export { withRetry, createRetryable, defaultRetryOptions } from './helpers/helpers.retry.js'; export { isValidIp, ipToNumber, numberToIp, ipRangeToIps, cidrToIps, getLocalSubnet, countIpsInCidr, } from './helpers/helpers.iprange.js'; // All interfaces and types export * from './interfaces/index.js'; // SNMP types export type { ISnmpOptions, ISnmpVarbind, TSnmpValueType, } from './snmp/snmp.classes.snmpprotocol.js'; export type { ISnmpDeviceInfo } from './snmp/snmp.classes.snmpdevice.js'; // UPS types export type { TNutStatusFlag, INutUpsInfo, INutVariable, } from './ups/ups.classes.nutprotocol.js'; export type { TUpsBatteryStatus, TUpsOutputSource, IUpsSnmpStatus, } from './ups/ups.classes.upssnmp.js'; export type { TUpsStatus, TUpsProtocol, IUpsDeviceInfo, IUpsBatteryInfo, IUpsPowerInfo, IUpsFullStatus, } from './ups/ups.classes.upsdevice.js'; // DLNA types export type { TDlnaTransportState, TDlnaTransportStatus, IDlnaPositionInfo, IDlnaTransportInfo, IDlnaMediaInfo, IDlnaContentItem, IDlnaBrowseResult, } from './dlna/dlna.classes.upnp.js'; export type { IDlnaRendererInfo, IDlnaPlaybackState, } from './dlna/dlna.classes.renderer.js'; export type { IDlnaServerInfo, IDlnaServerStats, } from './dlna/dlna.classes.server.js'; // SSDP types export type { ISsdpDevice, ISsdpDeviceDescription, ISsdpService, ISsdpIcon, } from './discovery/discovery.classes.ssdp.js'; // Speaker types export type { TSpeakerProtocol, TPlaybackState, ITrackInfo, IPlaybackStatus, ISpeakerInfo, } from './speaker/speaker.classes.speaker.js'; export type { ISonosZoneInfo, ISonosSpeakerInfo, } from './speaker/speaker.classes.sonos.js'; export type { IAirPlaySpeakerInfo, IAirPlayPlaybackInfo, } from './speaker/speaker.classes.airplay.js'; export type { TChromecastType, IChromecastSpeakerInfo, IChromecastMediaMetadata, IChromecastMediaStatus, } from './speaker/speaker.classes.chromecast.js';