diff --git a/sqs-consumer/sqs-consumer-tests.ts b/sqs-consumer/sqs-consumer-tests.ts
new file mode 100644
index 0000000000..516aeb6adf
--- /dev/null
+++ b/sqs-consumer/sqs-consumer-tests.ts
@@ -0,0 +1,28 @@
+///
+
+import * as Consumer from "sqs-consumer";
+
+var app = Consumer.create({
+ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
+ handleMessage: function (message, done) {
+ // do some work with `message`
+ done();
+ }
+});
+
+var app2 = Consumer.create({
+ queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name',
+ handleMessage: function(message, done){
+ done();
+ },
+ region: "us-west-1",
+ batchSize: 15,
+ visibilityTimeout: 50,
+ waitTimeSeconds: 50
+});
+
+app.on('error', function (err: any) {
+ console.log(err.message);
+});
+
+app.start();
diff --git a/sqs-consumer/sqs-consumer.d.ts b/sqs-consumer/sqs-consumer.d.ts
new file mode 100644
index 0000000000..8c2315d083
--- /dev/null
+++ b/sqs-consumer/sqs-consumer.d.ts
@@ -0,0 +1,43 @@
+// Type definitions for sqs-consumer
+// Project: https://github.com/BBC/sqs-consumer
+// Definitions by: Daniel Chao
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+
+declare module "sqs-consumer" {
+
+ import { SQS } from "aws-sdk";
+
+ module SQSConsumer {
+
+ interface MessageHandler {
+ (message: SQS.Message, done: Function): any;
+ }
+
+ interface ConsumerOpts {
+ queueUrl: string;
+ handleMessage: MessageHandler;
+ region?: string;
+ attributeNames?: string[];
+ messageAttributeNames?: string[];
+ batchSize?: number;
+ visibilityTimeout?: number;
+ waitTimeSeconds?: number;
+ authenticationErrorTimeout?: number;
+ sqs?: SQS;
+ }
+
+ interface Consumer extends NodeJS.EventEmitter {
+ start (): void;
+ stop (): void;
+ }
+
+ interface ConsumerFactory {
+ create(opts: ConsumerOpts): Consumer;
+ }
+ }
+ const Consumer: SQSConsumer.ConsumerFactory;
+ export = Consumer;
+
+}