import { Message } from '@aws-sdk/client-sqs';
import { Span } from '@opentelemetry/api';
import { IMessage } from '@vtexlab/planner-contracts/build/types/utils/types';
export interface MessageContext<TMessage extends IMessage> extends Message {
    Content?: TMessage;
}
export type TagsResourceInput = {
    Key: string;
    Value: string;
};
export declare class ConsumerParams<TMessage extends IMessage> {
    endpoint: string;
    handle: (message: MessageContext<TMessage>, traceSpan: Span | undefined) => Promise<void>;
    maxRetryCount: number;
    delaySeconds: number;
    batchSize: number;
}
export type ScheduleParams<TMessage> = {
    id: string;
    message: TMessage;
    scheduleDate: Date;
    topicName: string;
};
export interface Config {
    region: string;
    account: string;
    credentials: {
        accessKeyId: string;
        secretAccessKey: string;
    };
    environment: 'local' | 'development' | 'staging' | 'production';
}
