# IMessageQueueConstructor type · @imqueue/core

Source: https://imqueue.org/api/core/latest/core.imessagequeueconstructor/
Published: 2026-08-04
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/core 3.3.2 — generated reference, not hand-written

Constructor contract every queue adapter must satisfy: it takes the queue name, optional partial options and an optional [IMQMode](https://imqueue.org/api/core/latest/core.imqmode/), and yields an [IMessageQueue](https://imqueue.org/api/core/latest/core.imessagequeue/).

[IMQ.create()](https://imqueue.org/api/core/latest/core.imq.create/) resolves an adapter of this shape from the registered vendor adapters and instantiates it.

**Signature:**

```typescript
export type IMessageQueueConstructor = new (name: string, options?: Partial<IMQOptions>, mode?: IMQMode) => IMessageQueue;
```
**References:** [IMQOptions](https://imqueue.org/api/core/latest/core.imqoptions/), [IMQMode](https://imqueue.org/api/core/latest/core.imqmode/), [IMessageQueue](https://imqueue.org/api/core/latest/core.imessagequeue/)

## Remarks

The built-in adapters are registered through an explicit cast rather than structural assignment, so do not expect a clean assignment from a concrete queue class to this type.

