import { SQSMessage } from '@cumulus/aws-client/SQS';
export declare type MessageConsumerFunction = (queueUrl: string, message: SQSMessage) => Promise<void>;
export interface ConsumerConstructorParams {
    queueUrl: string;
    messageLimit?: number;
    timeLimit?: number;
    visibilityTimeout: number;
    deleteProcessedMessage?: boolean;
}
export declare class Consumer {
    private readonly deleteProcessedMessage;
    private readonly messageLimit;
    private readonly now;
    private readonly queueUrl;
    private timeLapsed;
    private readonly timeLimit;
    private readonly visibilityTimeout;
    constructor({ queueUrl, messageLimit, timeLimit, visibilityTimeout, deleteProcessedMessage, }: ConsumerConstructorParams);
    private processMessage;
    private processMessages;
    consume(fn: MessageConsumerFunction): Promise<number>;
}
//# sourceMappingURL=consumer.d.ts.map