/amqplib/amqplib.d.ts

https://gitlab.com/CatchLabs/DefinitelyTyped · TypeScript Typings · 219 lines · 171 code · 42 blank · 6 comment · 5 complexity · c16981abaf3766796aac6bcffe9d3333 MD5 · raw file

  1. // Type definitions for amqplib 0.3.x
  2. // Project: https://github.com/squaremo/amqp.node
  3. // Definitions by: Michael Nahkies <https://github.com/mnahkies>, Ab Reitsma <https://github.com/abreits>
  4. // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
  5. /// <reference path="../when/when.d.ts" />
  6. /// <reference path="../node/node.d.ts" />
  7. declare module "amqplib/properties" {
  8. namespace Replies {
  9. interface Empty {
  10. }
  11. interface AssertQueue {
  12. queue: string;
  13. messageCount: number;
  14. consumerCount: number;
  15. }
  16. interface PurgeQueue {
  17. messageCount: number;
  18. }
  19. interface DeleteQueue {
  20. messageCount: number;
  21. }
  22. interface AssertExchange {
  23. exchange: string;
  24. }
  25. interface Consume {
  26. consumerTag: string;
  27. }
  28. }
  29. namespace Options {
  30. interface AssertQueue {
  31. exclusive?: boolean;
  32. durable?: boolean;
  33. autoDelete?: boolean;
  34. arguments?: any;
  35. messageTtl?: number;
  36. expires?: number;
  37. deadLetterExchange?: string;
  38. deadLetterRoutingKey?: string;
  39. maxLength?: number;
  40. }
  41. interface DeleteQueue {
  42. ifUnused?: boolean;
  43. ifEmpty?: boolean;
  44. }
  45. interface AssertExchange {
  46. durable?: boolean;
  47. internal?: boolean;
  48. autoDelete?: boolean;
  49. alternateExchange?: string;
  50. arguments?: any;
  51. }
  52. interface DeleteExchange {
  53. ifUnused?: boolean;
  54. }
  55. interface Publish {
  56. expiration?: string;
  57. userId?: string;
  58. CC?: string | string[];
  59. mandatory?: boolean;
  60. persistent?: boolean;
  61. deliveryMode?: boolean | number;
  62. BCC?: string | string[];
  63. contentType?: string;
  64. contentEncoding?: string;
  65. headers?: any;
  66. priority?: number;
  67. correlationId?: string;
  68. replyTo?: string;
  69. messageId?: string;
  70. timestamp?: number;
  71. type?: string;
  72. appId?: string;
  73. }
  74. interface Consume {
  75. consumerTag?: string;
  76. noLocal?: boolean;
  77. noAck?: boolean;
  78. exclusive?: boolean;
  79. priority?: number;
  80. arguments?: any;
  81. }
  82. interface Get {
  83. noAck?: boolean;
  84. }
  85. }
  86. interface Message {
  87. content: Buffer;
  88. fields: any;
  89. properties: any;
  90. }
  91. }
  92. declare module "amqplib" {
  93. import events = require("events");
  94. import when = require("when");
  95. import shared = require("amqplib/properties")
  96. export import Replies = shared.Replies;
  97. export import Options = shared.Options;
  98. export import Message = shared.Message;
  99. interface Connection extends events.EventEmitter {
  100. close(): when.Promise<void>;
  101. createChannel(): when.Promise<Channel>;
  102. createConfirmChannel(): when.Promise<Channel>;
  103. }
  104. interface Channel extends events.EventEmitter {
  105. close(): when.Promise<void>;
  106. assertQueue(queue: string, options?: Options.AssertQueue): when.Promise<Replies.AssertQueue>;
  107. checkQueue(queue: string): when.Promise<Replies.AssertQueue>;
  108. deleteQueue(queue: string, options?: Options.DeleteQueue): when.Promise<Replies.DeleteQueue>;
  109. purgeQueue(queue: string): when.Promise<Replies.PurgeQueue>;
  110. bindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise<Replies.Empty>;
  111. unbindQueue(queue: string, source: string, pattern: string, args?: any): when.Promise<Replies.Empty>;
  112. assertExchange(exchange: string, type: string, options?: Options.AssertExchange): when.Promise<Replies.AssertExchange>;
  113. checkExchange(exchange: string): when.Promise<Replies.Empty>;
  114. deleteExchange(exchange: string, options?: Options.DeleteExchange): when.Promise<Replies.Empty>;
  115. bindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise<Replies.Empty>;
  116. unbindExchange(destination: string, source: string, pattern: string, args?: any): when.Promise<Replies.Empty>;
  117. publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean;
  118. sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean;
  119. consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume): when.Promise<Replies.Consume>;
  120. cancel(consumerTag: string): when.Promise<Replies.Empty>;
  121. get(queue: string, options?: Options.Get): when.Promise<Message | boolean>;
  122. ack(message: Message, allUpTo?: boolean): void;
  123. ackAll(): void;
  124. nack(message: Message, allUpTo?: boolean, requeue?: boolean): void;
  125. nackAll(requeue?: boolean): void;
  126. reject(message: Message, requeue?: boolean): void;
  127. prefetch(count: number, global?: boolean): when.Promise<Replies.Empty>;
  128. recover(): when.Promise<Replies.Empty>;
  129. }
  130. function connect(url: string, socketOptions?: any): when.Promise<Connection>;
  131. }
  132. declare module "amqplib/callback_api" {
  133. import events = require("events");
  134. import shared = require("amqplib/properties")
  135. export import Replies = shared.Replies;
  136. export import Options = shared.Options;
  137. export import Message = shared.Message;
  138. interface Connection extends events.EventEmitter {
  139. close(callback?: (err: any) => void): void;
  140. createChannel(callback: (err: any, channel: Channel) => void): void;
  141. createConfirmChannel(callback: (err: any, confirmChannel: ConfirmChannel) => void): void;
  142. }
  143. interface Channel extends events.EventEmitter {
  144. close(callback: (err: any) => void): void;
  145. assertQueue(queue?: string, options?: Options.AssertQueue, callback?: (err:any, ok: Replies.AssertQueue) => void): void;
  146. checkQueue(queue: string, callback?: (err: any, ok: Replies.AssertQueue) => void): void;
  147. deleteQueue(queue: string, options?: Options.DeleteQueue, callback?: (err:any, ok: Replies.DeleteQueue) => void): void;
  148. purgeQueue(queue: string, callback?: (err:any, ok: Replies.PurgeQueue) => void): void;
  149. bindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void;
  150. unbindQueue(queue: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void;
  151. assertExchange(exchange: string, type: string, options?: Options.AssertExchange, callback?: (err: any, ok: Replies.AssertExchange) => void): void;
  152. checkExchange(exchange: string, callback?: (err: any, ok: Replies.Empty) => void): void;
  153. deleteExchange(exchange: string, options?: Options.DeleteExchange, callback?: (err: any, ok: Replies.Empty) => void): void;
  154. bindExchange(destination: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void;
  155. unbindExchange(destination: string, source: string, pattern: string, args?: any, callback?: (err: any, ok: Replies.Empty) => void): void;
  156. publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish): boolean;
  157. sendToQueue(queue: string, content: Buffer, options?: Options.Publish): boolean;
  158. consume(queue: string, onMessage: (msg: Message) => any, options?: Options.Consume, callback?: (err: any, ok: Replies.Consume) => void): void;
  159. cancel(consumerTag: string, callback?: (err: any, ok: Replies.Empty) => void): void;
  160. get(queue: string, options?: Options.Get, callback?: (err: any, ok: Message | boolean) => void): void;
  161. ack(message: Message, allUpTo?: boolean): void;
  162. ackAll(): void;
  163. nack(message: Message, allUpTo?: boolean, requeue?: boolean): void;
  164. nackAll(requeue?: boolean): void;
  165. reject(message: Message, requeue?: boolean): void;
  166. prefetch(count: number, global?: boolean): void;
  167. recover(callback?: (err: any, ok: Replies.Empty) => void): void;
  168. }
  169. interface ConfirmChannel extends Channel {
  170. publish(exchange: string, routingKey: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean;
  171. sendToQueue(queue: string, content: Buffer, options?: Options.Publish, callback?: (err: any, ok: Replies.Empty) => void): boolean;
  172. waitForConfirms(callback?: (err: any) => void): void;
  173. }
  174. function connect(callback: (err: any, connection: Connection) => void): void;
  175. function connect(url: string, callback: (err: any, connection: Connection) => void): void;
  176. function connect(url: string, socketOptions: any, callback: (err: any, connection: Connection) => void): void;
  177. }