// 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;
}