+ * Measurement statistics.
+ *
+ * @internal
+ */
+export interface MeasurementStatistics {
+ /**
+ * Measurement aggregate.
+ */
+ aggregate?: number
+ /**
+ * Measurement minimum.
+ */
+ minimum?: number
+ /**
+ * Measurement maximum.
+ */
+ maximum?: number
+ /**
+ * Measurement average.
+ */
+ average?: number
+ /**
+ * Measurement median.
+ */
+ median?: number
+ /**
+ * Measurement history.
+ */
+ readonly history: CircularArray<number>
+}
+
+/**
+ * Event loop utilization measurement statistics.
+ *
+ * @internal
+ */
+export interface EventLoopUtilizationMeasurementStatistics {
+ readonly idle: MeasurementStatistics
+ readonly active: MeasurementStatistics
+ utilization?: number
+}
+
+/**
+ * Task statistics.
+ *
+ * @internal
+ */
+export interface TaskStatistics {
+ /**
+ * Number of executed tasks.
+ */
+ executed: number
+ /**
+ * Number of executing tasks.
+ */
+ executing: number
+ /**
+ * Number of queued tasks.
+ */
+ readonly queued: number
+ /**
+ * Maximum number of queued tasks.
+ */
+ readonly maxQueued?: number
+ /**
+ * Number of failed tasks.
+ */
+ failed: number
+}
+
+/**
+ * Enumeration of worker types.
+ */
+export const WorkerTypes = Object.freeze({
+ thread: 'thread',
+ cluster: 'cluster'
+} as const)
+
+/**
+ * Worker type.
+ */
+export type WorkerType = keyof typeof WorkerTypes
+
+/**
+ * Worker information.