+export interface Task<Data = unknown> {
+ /**
+ * Worker id.
+ */
+ readonly workerId: number
+ /**
+ * Task name.
+ */
+ readonly name?: string
+ /**
+ * Task input data that will be passed to the worker.
+ */
+ readonly data?: Data
+ /**
+ * Array of transferable objects.
+ */
+ readonly transferList?: TransferListItem[]
+ /**
+ * Timestamp.
+ */
+ readonly timestamp?: number
+ /**
+ * Task UUID.
+ */
+ readonly taskId?: string
+}
+
+/**
+ * Message object that is passed between main worker and worker.
+ *
+ * @typeParam Data - Type of data sent to the worker or execution response. This can only be structured-cloneable data.
+ * @typeParam ErrorData - Type of data sent to the worker triggering an error. This can only be structured-cloneable data.
+ * @internal
+ */
+export interface MessageValue<Data = unknown, ErrorData = unknown>
+ extends Task<Data> {
+ /**
+ * Kill code.
+ */
+ readonly kill?: KillBehavior | true | 'success' | 'failure'
+ /**
+ * Task error.
+ */
+ readonly taskError?: TaskError<ErrorData>
+ /**
+ * Task performance.
+ */
+ readonly taskPerformance?: TaskPerformance
+ /**
+ * Task function names.
+ */
+ readonly taskFunctions?: string[]
+ /**
+ * Whether the worker computes the given statistics or not.
+ */
+ readonly statistics?: WorkerStatistics
+ /**
+ * Whether the worker is ready or not.
+ */
+ readonly ready?: boolean
+ /**
+ * Whether the worker starts or stops its activity check.
+ */
+ readonly checkActive?: boolean
+ /**
+ * Message port.
+ */
+ readonly port?: MessagePort
+}
+
+/**
+ * An object holding the task execution response promise resolve/reject callbacks.
+ *
+ * @typeParam Response - Type of execution response. This can only be structured-cloneable data.
+ * @internal
+ */
+export interface PromiseResponseWrapper<Response = unknown> {