[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Worker](https://evolu.dev/docs/api-reference/common/Worker) › NativeMessagePort

```ts
type NativeMessagePort<Input, Output> = Brand<"NativeMessagePort"> & {
  [nativeMessagePortInput]?: Input;
  [nativeMessagePortOutput]?: Output;
};
```

Defined in: [packages/common/src/Worker.ts:91](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Worker.ts#L91)

Opaque type for platform-specific native MessagePort.

Exists because `postMessage` transfer requires the native object itself, not
a wrapper. Ensures type-safe wiring between [MessagePort.native](https://evolu.dev/docs/api-reference/common/Worker/interfaces/MessagePort#native) and
[CreateMessagePort](https://evolu.dev/docs/api-reference/common/Worker/type-aliases/CreateMessagePort) without exposing platform details.

## Type Declaration

| Name                         | Type     | Defined in                                                                                                                                           |
| ---------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `[nativeMessagePortInput]?`  | `Input`  | [packages/common/src/Worker.ts:95](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Worker.ts#L95) |
| `[nativeMessagePortOutput]?` | `Output` | [packages/common/src/Worker.ts:96](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Worker.ts#L96) |