import { SNS, SNSClientConfig, PublishResponse, PublishInput, SubscribeResponse, PublishBatchResponse, PublishBatchInput } from "@aws-sdk/client-sns";
import { ISNSMessage, Logger } from "../types";
export declare class SNSProducer {
    private readonly logger;
    private readonly sns;
    constructor(logger: Logger, config: SNSClientConfig);
    get client(): SNS;
    send: (topicArn: string, message: ISNSMessage) => Promise<PublishResponse>;
    getPublishInput(topicArn: string, message: ISNSMessage): PublishInput;
    private getMessageAttributesForPublish;
    sendBatch: (topicArn: string, messages: ISNSMessage[]) => Promise<PublishBatchResponse>;
    getBatchPublishInput(topicArn: string, messages: ISNSMessage[]): PublishBatchInput;
    createTopic: (topicName: string, attributes: Record<string, string>) => Promise<string | undefined>;
    subscribeToTopic: (topicArn: string, queueArn: string, filterPolicy?: object, deliverRawMessage?: boolean) => Promise<SubscribeResponse>;
    isFifoTopic: (topicArn: string) => boolean;
}
