import { KubeMQClient } from '../client/KubeMQClient';
import { PubSubChannel } from '../common/channel_stats';
import { EventsMessage, EventsSendResult, EventsSubscriptionRequest, EventsStoreMessage, EventsStoreSubscriptionRequest } from './eventTypes';
import { Config } from '../client/config';
export declare class PubsubClient extends KubeMQClient {
    private eventStreamHelper;
    constructor(Options: Config);
    sendEventsMessage(msg: EventsMessage): Promise<void>;
    sendEventStoreMessage(msg: EventsStoreMessage): Promise<EventsSendResult>;
    subscribeToEvents(request: EventsSubscriptionRequest): Promise<void>;
    subscribeToEventsStore(request: EventsStoreSubscriptionRequest): Promise<void>;
    /**
      * Create channel
      * @param channelName
      * @return Promise<void>
      */
    createEventsChannel(channelName: string): Promise<void>;
    /**
    * Create events store channel
    * @param channelName
    * @return Promise<void>
    */
    createEventsStoreChannel(channelName: string): Promise<void>;
    /**
     * Delete commands channel
     * @param channelName
     * @return Promise<void>
     */
    deleteEventsChannel(channelName: string): Promise<void>;
    /**
     * Delete events store channel
     * @param channelName
     * @return Promise<void>
     */
    deleteEventsStoreChannel(channelName: string): Promise<void>;
    /**
     * List events channels
     * @param search
     * @return Promise<PubSubChannel[]>
     */
    listEventsChannels(search: string): Promise<PubSubChannel[]>;
    /**
     * List events store channels
     * @param search
     * @return Promise<PubSubChannel[]>
     */
    listEventsStoreChannels(search: string): Promise<PubSubChannel[]>;
}
//# sourceMappingURL=PubsubClient.d.ts.map