import { HTTPOptions } from 'aws-sdk';
import { AWSConfig } from '../aws/config';
import { MessageType } from '../model/message';
import { HasSubscribers, Publisher, Subscriber, Subscription } from './publisher';
export interface SNSOption {
    protocol?: Protocols;
    endpointSubscriber?: string;
    endpointUrl?: string;
    maxRetries?: number;
    httpOptions?: HTTPOptions;
}
export declare enum Protocols {
    HTTP = "http",
    HTTPS = "https"
}
/**
 * A Publisher that use SQS to message communications.
 */
export declare class SNSPublisher implements Publisher, HasSubscribers {
    private url;
    private sns;
    private snsOption;
    constructor(url: string, awsconfig: AWSConfig, snsOptions?: SNSOption);
    publish(message: MessageType): Promise<string>;
    subscribe(_: string, __: Subscriber): Promise<Subscription>;
}
