- * Message object that is passed between worker and main worker.
- *
- * @typeParam Data - Type of data sent to the worker. This can only be serializable data.
- * @typeParam MainWorker - Type of main worker.
+ * Task performance.
+ * @internal
+ */
+export interface TaskPerformance {
+ /**
+ * Task event loop utilization.
+ */
+ readonly elu?: EventLoopUtilization
+ /**
+ * Task name.
+ */
+ readonly name: string
+ /**
+ * Task runtime.
+ */
+ readonly runTime?: number
+ /**
+ * Task performance timestamp.
+ */
+ readonly timestamp: number
+}
+
+/**
+ * Worker task performance statistics computation settings.
+ * @internal
+ */
+export interface WorkerStatistics {
+ /**
+ * Whether the worker computes the task event loop utilization (ELU) or not.
+ */
+ readonly elu: boolean
+ /**
+ * Whether the worker computes the task runtime or not.
+ */
+ readonly runTime: boolean
+}
+
+/**
+ * Task function properties.
+ */
+export interface TaskFunctionProperties {
+ /**
+ * Task function name.
+ */
+ readonly name: string
+ /**
+ * Task function priority. Lower values have higher priority.
+ */
+ readonly priority?: number
+ /**
+ * Task function worker choice strategy.
+ */
+ readonly strategy?: WorkerChoiceStrategy
+}
+
+/**
+ * Message object that is passed as a task between main worker and worker.
+ * @typeParam Data - Type of data sent to the worker. This can only be structured-cloneable data.
+ * @internal