+ * 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 stolen tasks.
+ */
+ stolen: 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.
+ *
+ * @internal
+ */
+export interface WorkerInfo {
+ /**
+ * Worker id.
+ */
+ readonly id: number | undefined
+ /**
+ * Worker type.
+ */
+ readonly type: WorkerType
+ /**
+ * Dynamic flag.
+ */
+ dynamic: boolean
+ /**
+ * Ready flag.
+ */
+ ready: boolean
+ /**
+ * Task function names.
+ */
+ taskFunctionNames?: string[]
+}
+
+/**
+ * Worker usage statistics.