// Type definitions for systeminformation // Project: https://github.com/sebhildebrandt/systeminformation // Definitions by: sebhildebrandt export namespace Systeminformation { // 1. General interface TimeData { current: string; uptime: string; timezone: string; timezoneName: string; } // 2. System (HW) interface RaspberryRevisionData { manufacturer: string; processor: string; type: string; revision: string; } interface SystemData { manufacturer: string; model: string; version: string; serial: string; uuid: string; sku: string; virtual: boolean; virtualHost?: string; raspberry?: RaspberryRevisionData; } interface BiosData { vendor: string; version: string; releaseDate: string; revision: string; serial?: string; language?: string; features?: string[]; } interface BaseboardData { manufacturer: string; model: string; version: string; serial: string; assetTag: string; memMax: number | null; memSlots: number | null; } interface ChassisData { manufacturer: string; model: string; type: string; version: string; serial: string; assetTag: string; sku: string; } // 3. CPU, Memory, Disks, Battery, Graphics interface CpuData { manufacturer: string; brand: string; vendor: string; family: string; model: string; stepping: string; revision: string; voltage: string; speed: number; speedMin: number; speedMax: number; governor: string; cores: number; physicalCores: number; efficiencyCores?: number; performanceCores?: number; processors: number; socket: string; flags: string; virtualization: boolean; cache: CpuCacheData; } interface CpuCacheData { l1d: number; l1i: number; l2: number; l3: number; } interface CpuCurrentSpeedData { min: number; max: number; avg: number; cores: number[]; } interface CpuTemperatureData { main: number; cores: number[]; max: number; socket?: number[]; chipset?: number; } interface MemData { total: number; free: number; used: number; active: number; available: number; buffcache: number; buffers: number; cached: number; slab: number; swaptotal: number; swapused: number; swapfree: number; } interface MemLayoutData { size: number; bank: string; type: string; ecc?: boolean | null; clockSpeed: number | null; formFactor: string; manufacturer?: string; partNum: string; serialNum: string; voltageConfigured: number | null; voltageMin: number | null; voltageMax: number | null; } interface SmartData { json_format_version: number[]; smartctl: { version: number[]; platform_info: string; build_info: string; argv: string[]; exit_status: number; }; device: { name: string; info_name: string; type: string; protocol: string; }; model_family?: string, model_name?: string, serial_number?: string, firmware_version?: string, smart_status: { passed: boolean; }; trim?: { supported: boolean; }, ata_smart_attributes?: { revision: number; table: { id: number; name: string; value: number; worst: number; thresh: number; when_failed: string; flags: { value: number; string: string; prefailure: boolean; updated_online: boolean; performance: boolean; error_rate: boolean; event_count: boolean; auto_keep: boolean; }; raw: { value: number; string: string; }; }[]; }; ata_smart_error_log?: { summary: { revision: number; count: number; }; }; ata_smart_self_test_log?: { standard: { revision: number; table: { type: { value: number; string: string; }, status: { value: number; string: string; passed: boolean; }, lifetime_hours: number; }[]; count: number; error_count_total: number; error_count_outdated: number; }; }; nvme_pci_vendor?: { id: number, subsystem_id: number; }, nvme_smart_health_information_log?: { critical_warning?: number, temperature?: number, available_spare?: number, available_spare_threshold?: number, percentage_used?: number, data_units_read?: number, data_units_written?: number, host_reads?: number, host_writes?: number, controller_busy_time?: number, power_cycles?: number, power_on_hours?: number, unsafe_shutdowns?: number, media_errors?: number, num_err_log_entries?: number, warning_temp_time?: number, critical_comp_time?: number, temperature_sensors?: number[]; }, user_capacity?: { blocks: number, bytes: number; }, logical_block_size?: number, temperature: { current: number; }; power_cycle_count: number; power_on_time: { hours: number; }; } interface DiskLayoutData { device: string; type: string; name: string; vendor: string; size: number; bytesPerSector: number; totalCylinders: number; totalHeads: number; totalSectors: number; totalTracks: number; tracksPerCylinder: number; sectorsPerTrack: number; firmwareRevision: string; serialNum: string; interfaceType: string; smartStatus: string; temperature: null | number; smartData?: SmartData; } interface BatteryData { hasBattery: boolean; cycleCount: number; isCharging: boolean; voltage: number; designedCapacity: number; maxCapacity: number; currentCapacity: number; capacityUnit: string; percent: number; timeRemaining: number, acConnected: boolean; type: string; model: string; manufacturer: string; serial: string; additionalBatteries?: BatteryData[]; } interface GraphicsData { controllers: GraphicsControllerData[]; displays: GraphicsDisplayData[]; } interface GraphicsControllerData { vendor: string; vendorId?: string; model: string; deviceId?: string; bus: string; busAddress?: string; vram: number | null; vramDynamic: boolean; external?: boolean; cores?: number; metalVersion?: string; subDeviceId?: string; driverVersion?: string; name?: string; pciBus?: string; pciID?: string; fanSpeed?: number; memoryTotal?: number; memoryUsed?: number; memoryFree?: number; utilizationGpu?: number; utilizationMemory?: number; temperatureGpu?: number; temperatureMemory?: number; powerDraw?: number; powerLimit?: number; clockCore?: number; clockMemory?: number; } interface GraphicsDisplayData { vendor: string; vendorId: string | null; model: string; productionYear: number | null; serial: string | null; deviceName: string | null; displayId: string | null; main: boolean; builtin: boolean; connection: string | null; sizeX: number | null; sizeY: number | null; pixelDepth: number | null; resolutionX: number | null; resolutionY: number | null; currentResX: number | null; currentResY: number | null; positionX: number; positionY: number; currentRefreshRate: number | null; } // 4. Operating System interface OsData { platform: string; distro: string; release: string; codename: string; kernel: string; arch: string; hostname: string; fqdn: string; codepage: string; logofile: string; serial: string; build: string; servicepack: string; uefi: boolean; hypervizor?: boolean; remoteSession?: boolean; hypervisor?: boolean; } interface UuidData { os: string; hardware: string; macs: string[]; } interface VersionData { kernel?: string; openssl?: string; systemOpenssl?: string; systemOpensslLib?: string; node?: string; v8?: string; npm?: string; yarn?: string; pm2?: string; gulp?: string; grunt?: string; git?: string; tsc?: string; mysql?: string; redis?: string; mongodb?: string; nginx?: string; php?: string; docker?: string; postfix?: string; postgresql?: string; perl?: string; python?: string; python3?: string; pip?: string; pip3?: string; java?: string; gcc?: string; virtualbox?: string; dotnet?: string; } interface UserData { user: string; tty: string; date: string; time: string; ip: string; command: string; } // 5. File System interface FsSizeData { fs: string; type: string; size: number; used: number; available: number; use: number; mount: string; } interface FsOpenFilesData { max: number; allocated: number; available: number; } interface BlockDevicesData { name: string; identifier: string; type: string; fsType: string; mount: string; size: number; physical: string; uuid: string; label: string; model: string; serial: string; removable: boolean; protocol: string; } interface FsStatsData { rx: number; wx: number; tx: number; rx_sec: number | null; wx_sec: number | null; tx_sec: number | null; ms: number; } interface DisksIoData { rIO: number; wIO: number; tIO: number; rIO_sec: number | null; wIO_sec: number | null; tIO_sec: number | null; rWaitTime: number; wWaitTime: number; tWaitTime: number; rWaitPercent: number | null; wWaitPercent: number | null; tWaitPercent: number | null; ms: number; } // 6. Network related functions interface NetworkInterfacesData { iface: string; ifaceName: string; ip4: string; ip4subnet: string; ip6: string; ip6subnet: string; mac: string; internal: boolean; virtual: boolean; operstate: string; type: string; duplex: string; mtu: number; speed: number; dhcp: boolean; dnsSuffix: string; ieee8021xAuth: string; ieee8021xState: string; carrierChanges: number; } interface NetworkStatsData { iface: string; operstate: string; rx_bytes: number; rx_dropped: number; rx_errors: number; tx_bytes: number; tx_dropped: number; tx_errors: number; rx_sec: number; tx_sec: number; ms: number; } interface NetworkConnectionsData { protocol: string; localAddress: string; localPort: string; peerAddress: string; peerPort: string; state: string; pid: number; process: string; } interface InetChecksiteData { url: string; ok: boolean; status: number; ms: number; } interface WifiNetworkData { ssid: string; bssid: string; mode: string; channel: number; frequency: number; signalLevel: number; quality: number; security: string[]; wpaFlags: string[]; rsnFlags: string[]; } interface WifiInterfaceData { id: string; iface: string; model: string; vendor: string; mac: string; } interface WifiConnectionData { id: string; iface: string; model: string; ssid: string; bssid: string; channel: number; type: string; security: string; frequency: number; signalLevel: number; txRate: number; } // 7. Current Load, Processes & Services interface CurrentLoadData { avgLoad: number; currentLoad: number; currentLoadUser: number; currentLoadSystem: number; currentLoadNice: number; currentLoadIdle: number; currentLoadIrq: number; rawCurrentLoad: number; rawCurrentLoadUser: number; rawCurrentLoadSystem: number; rawCurrentLoadNice: number; rawCurrentLoadIdle: number; rawCurrentLoadIrq: number; cpus: CurrentLoadCpuData[]; } interface CurrentLoadCpuData { load: number; loadUser: number; loadSystem: number; loadNice: number; loadIdle: number; loadIrq: number; rawLoad: number; rawLoadUser: number; rawLoadSystem: number; rawLoadNice: number; rawLoadIdle: number; rawLoadIrq: number; } interface ProcessesData { all: number; running: number; blocked: number; sleeping: number; unknown: number; list: ProcessesProcessData[]; } interface ProcessesProcessData { pid: number; parentPid: number; name: string, cpu: number; cpuu: number; cpus: number; mem: number; priority: number; memVsz: number; memRss: number; nice: number; started: string, state: string; tty: string; user: string; command: string; params: string; path: string; } interface ProcessesProcessLoadData { proc: string; pid: number; pids: number[]; cpu: number; mem: number; } interface ServicesData { name: string; running: boolean; startmode: string; pids: number[]; cpu: number; mem: number; } // 8. Docker interface DockerInfoData { id: string; containers: number; containersRunning: number; containersPaused: number; containersStopped: number; images: number; driver: string; memoryLimit: boolean; swapLimit: boolean; kernelMemory: boolean; cpuCfsPeriod: boolean; cpuCfsQuota: boolean; cpuShares: boolean; cpuSet: boolean; ipv4Forwarding: boolean; bridgeNfIptables: boolean; bridgeNfIp6tables: boolean; debug: boolean; nfd: number; oomKillDisable: boolean; ngoroutines: number; systemTime: string; loggingDriver: string; cgroupDriver: string; nEventsListener: number; kernelVersion: string; operatingSystem: string; osType: string; architecture: string; ncpu: number; memTotal: number; dockerRootDir: string; httpProxy: string; httpsProxy: string; noProxy: string; name: string; labels: string[]; experimentalBuild: boolean; serverVersion: string; clusterStore: string; clusterAdvertise: string; defaultRuntime: string; liveRestoreEnabled: boolean; isolation: string; initBinary: string; productLicense: string; } interface DockerImageData { id: string; container: string; comment: string; os: string; architecture: string; parent: string; dockerVersion: string; size: number; sharedSize: number; virtualSize: number; author: string; created: number; containerConfig: any; graphDriver: any; repoDigests: any; repoTags: any; config: any; rootFS: any; } interface DockerContainerData { id: string; name: string; image: string; imageID: string; command: string; created: number; started: number; finished: number; createdAt: string; startedAt: string; finishedAt: string; state: string; restartCount: number; platform: string; driver: string; ports: number[]; mounts: DockerContainerMountData[]; } interface DockerContainerMountData { Type: string; Source: string; Destination: string; Mode: string; RW: boolean; Propagation: string; } interface DockerContainerStatsData { id: string; memUsage: number; memLimit: number; memPercent: number; cpuPercent: number; pids: number; netIO: { rx: number; wx: number; }; blockIO: { r: number; w: number; }; restartCount: number; cpuStats: any; precpuStats: any; memoryStats: any, networks: any; } interface DockerContainerProcessData { pidHost: string; ppid: string; pgid: string; user: string; ruser: string; group: string; rgroup: string; stat: string; time: string; elapsed: string; nice: string; rss: string; vsz: string; command: string; } interface DockerVolumeData { name: string; driver: string; labels: any; mountpoint: string; options: any; scope: string; created: number; } // 9. Virtual Box interface VboxInfoData { id: string; name: string; running: boolean; started: string; runningSince: number; stopped: string; stoppedSince: number; guestOS: string; hardwareUUID: string; memory: number; vram: number; cpus: number; cpuExepCap: string; cpuProfile: string; chipset: string; firmware: string; pageFusion: boolean; configFile: string; snapshotFolder: string; logFolder: string; hpet: boolean; pae: boolean; longMode: boolean; tripleFaultReset: boolean; apic: boolean; x2Apic: boolean; acpi: boolean; ioApic: boolean; biosApicMode: string; bootMenuMode: string; bootDevice1: string; bootDevice2: string; bootDevice3: string; bootDevice4: string; timeOffset: string; rtc: string; } interface PrinterData { id: number; name: string; model: string; uri: string; uuid: string; local: boolean; status: string; default: boolean; shared: boolean; } interface UsbData { id: number | string; bus: number; deviceId: number; name: string; type: string; removable: boolean; vendor: string; manufacturer: string; maxPower: string; serialNumber: string; } interface AudioData { id: number | string; name: string; manufacturer: string; default: boolean; revision: string; driver: string; channel: string; in: boolean; out: boolean; type: string; status: string; } interface BluetoothDeviceData { device: string; name: string; macDevice: string; macHost: string; batteryPercent: number; manufacturer: string; type: string; connected: boolean; } // 10. "Get All at once" - functions interface StaticData { version: string; system: SystemData; bios: BiosData; baseboard: BaseboardData; chassis: ChassisData; os: OsData; uuid: UuidData; versions: VersionData; cpu: CpuData; graphics: GraphicsData; net: NetworkInterfacesData[]; memLayout: MemLayoutData[]; diskLayout: DiskLayoutData[]; } } export function version(): string; export function system(cb?: (data: Systeminformation.SystemData) => any): Promise; export function bios(cb?: (data: Systeminformation.BiosData) => any): Promise; export function baseboard(cb?: (data: Systeminformation.BaseboardData) => any): Promise; export function chassis(cb?: (data: Systeminformation.ChassisData) => any): Promise; export function time(): Systeminformation.TimeData; export function osInfo(cb?: (data: Systeminformation.OsData) => any): Promise; export function versions(apps?: string, cb?: (data: Systeminformation.VersionData) => any): Promise; export function shell(cb?: (data: string) => any): Promise; export function uuid(cb?: (data: Systeminformation.UuidData) => any): Promise; export function cpu(cb?: (data: Systeminformation.CpuData) => any): Promise; export function cpuFlags(cb?: (data: string) => any): Promise; export function cpuCache(cb?: (data: Systeminformation.CpuCacheData) => any): Promise; export function cpuCurrentSpeed(cb?: (data: Systeminformation.CpuCurrentSpeedData) => any): Promise; export function cpuTemperature(cb?: (data: Systeminformation.CpuTemperatureData) => any): Promise; export function currentLoad(cb?: (data: Systeminformation.CurrentLoadData) => any): Promise; export function fullLoad(cb?: (data: number) => any): Promise; export function mem(cb?: (data: Systeminformation.MemData) => any): Promise; export function memLayout(cb?: (data: Systeminformation.MemLayoutData[]) => any): Promise; export function battery(cb?: (data: Systeminformation.BatteryData) => any): Promise; export function graphics(cb?: (data: Systeminformation.GraphicsData) => any): Promise; export function fsSize(cb?: (data: Systeminformation.FsSizeData[]) => any): Promise; export function fsOpenFiles(cb?: (data: Systeminformation.FsOpenFilesData[]) => any): Promise; export function blockDevices(cb?: (data: Systeminformation.BlockDevicesData[]) => any): Promise; export function fsStats(cb?: (data: Systeminformation.FsStatsData) => any): Promise; export function disksIO(cb?: (data: Systeminformation.DisksIoData) => any): Promise; export function diskLayout(cb?: (data: Systeminformation.DiskLayoutData[]) => any): Promise; export function networkInterfaceDefault(cb?: (data: string) => any): Promise; export function networkGatewayDefault(cb?: (data: string) => any): Promise; export function networkInterfaces(cb?: (data: Systeminformation.NetworkInterfacesData[]) => any): Promise; export function networkStats(ifaces?: string, cb?: (data: Systeminformation.NetworkStatsData[]) => any): Promise; export function networkConnections(cb?: (data: Systeminformation.NetworkConnectionsData[]) => any): Promise; export function inetChecksite(url: string, cb?: (data: Systeminformation.InetChecksiteData) => any): Promise; export function inetLatency(host?: string, cb?: (data: number) => any): Promise; export function wifiNetworks(cb?: (data: Systeminformation.WifiNetworkData[]) => any): Promise; export function wifiInterfaces(cb?: (data: Systeminformation.WifiInterfaceData[]) => any): Promise; export function wifiConnections(cb?: (data: Systeminformation.WifiConnectionData[]) => any): Promise; export function users(cb?: (data: Systeminformation.UserData[]) => any): Promise; export function processes(cb?: (data: Systeminformation.ProcessesData) => any): Promise; export function processLoad(processNames: string, cb?: (data: Systeminformation.ProcessesProcessLoadData[]) => any): Promise; export function services(serviceName: string, cb?: (data: Systeminformation.ServicesData[]) => any): Promise; export function dockerInfo(cb?: (data: Systeminformation.DockerInfoData) => any): Promise; export function dockerImages(all?: boolean, cb?: (data: Systeminformation.DockerImageData[]) => any): Promise; export function dockerContainers(all?: boolean, cb?: (data: Systeminformation.DockerContainerData[]) => any): Promise; export function dockerContainerStats(id?: string, cb?: (data: Systeminformation.DockerContainerStatsData[]) => any): Promise; export function dockerContainerProcesses(id?: string, cb?: (data: any) => any): Promise; export function dockerVolumes(cb?: (data: Systeminformation.DockerVolumeData[]) => any): Promise; export function dockerAll(cb?: (data: any) => any): Promise; export function vboxInfo(cb?: (data: Systeminformation.VboxInfoData[]) => any): Promise; export function printer(cb?: (data: Systeminformation.PrinterData[]) => any): Promise; export function usb(cb?: (data: Systeminformation.UsbData[]) => any): Promise; export function audio(cb?: (data: Systeminformation.AudioData[]) => any): Promise; export function bluetoothDevices(cb?: (data: Systeminformation.BluetoothDeviceData[]) => any): Promise; export function getStaticData(cb?: (data: Systeminformation.StaticData) => any): Promise; export function getDynamicData(srv?: string, iface?: string, cb?: (data: any) => any): Promise; export function getAllData(srv?: string, iface?: string, cb?: (data: any) => any): Promise; export function get(valuesObject: any, cb?: (data: any) => any): Promise; export function observe(valuesObject: any, interval: number, cb?: (data: any) => any): number;