+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.
+ *
+ * @internal
+ */
+export interface WorkerInfo {
+ /**
+ * Worker id.
+ */
+ readonly id: number | undefined
+ /**
+ * Worker type.
+ */
+ type: WorkerType
+ /**
+ * Dynamic flag.
+ */
+ dynamic: boolean
+ /**
+ * Ready flag.
+ */
+ ready: boolean
+ /**
+ * Message channel.
+ */
+ messageChannel?: MessageChannel
+}
+
+/**
+ * Worker usage statistics.
+ *
+ * @internal
+ */
+export interface WorkerUsage {
+ /**
+ * Tasks statistics.
+ */
+ readonly tasks: TaskStatistics
+ /**
+ * Tasks runtime statistics.
+ */
+ readonly runTime: MeasurementStatistics
+ /**
+ * Tasks wait time statistics.
+ */
+ readonly waitTime: MeasurementStatistics
+ /**
+ * Tasks event loop utilization statistics.
+ */
+ readonly elu: EventLoopUtilizationMeasurementStatistics