export {
  createQueue,
  createQueueClient,
  type QueueConfig,
  type QueueHandle,
  type QueueClient,
  type TaskPayload,
} from './queue.js';

export { type QueueAdapter, type QueueConfig as QueueAdapterConfig } from './types.js';
export { createQueueAdapter, registerQueueAdapter } from './factory.js';
export { createBullMQAdapter } from './adapters/bullmq.js';
export { createLocalAdapter } from './adapters/local.js';
export { registerQueueCommand } from './cli.js';

import { registerQueueAdapter } from './factory.js';
import { createBullMQAdapter } from './adapters/bullmq.js';
import { createLocalAdapter } from './adapters/local.js';

registerQueueAdapter('bullmq', createBullMQAdapter);
registerQueueAdapter('local', createLocalAdapter);
