/// <reference types="bluebird" />
import * as Promise from 'bluebird';
import { ITopic } from './ITopic';
import { TopicMessageListener } from './TopicMessageListener';
import HazelcastClient from '../../HazelcastClient';
import { IRingbuffer } from '../IRingbuffer';
import { RawTopicMessage } from './RawTopicMessage';
export declare const RINGBUFFER_PREFIX = "_hz_rb_";
export declare const TOPIC_INITIAL_BACKOFF = 100;
export declare const TOPIC_MAX_BACKOFF = 2000;
export declare class ReliableTopicProxy<E> implements ITopic<E> {
    private ringbuffer;
    private localAddress;
    private batchSize;
    private runners;
    private serializationService;
    private overloadPolicy;
    private name;
    constructor(name: string, client: HazelcastClient);
    addMessageListener(listener: TopicMessageListener<E>): string;
    removeMessageListener(id: string): boolean;
    publish(message: E): Promise<void>;
    private addOrDiscard(reliableTopicMessage);
    private addWithError(reliableTopicMessage);
    private addOrOverwrite(reliableTopicMessage);
    private addWithBackoff(reliableTopicMessage);
    private trySendMessage(message, delay, resolve);
    getRingbuffer(): IRingbuffer<RawTopicMessage>;
    getName(): String;
    destroy(): Promise<void>;
}
