import { PubSubMessageEventName, PubSubNamespace, PubSubMessage } from '@signalwire/core';
import { SWClient } from '../SWClient';
import { BaseChat } from '../chat/BaseChat';
import { RealTimePubSubEvents } from '../types/pubSub';
interface PubSubListenOptions {
    channels: string[];
    onMessageReceived?: (message: PubSubMessage) => unknown;
}
type PubSubListenersKeys = keyof Omit<PubSubListenOptions, 'channels' | 'topics'>;
export declare class PubSub extends BaseChat<PubSubListenOptions, RealTimePubSubEvents> {
    protected _eventMap: Record<PubSubListenersKeys, `${PubSubNamespace}.${PubSubMessageEventName}`>;
    constructor(options: SWClient);
}
export type { PubSubMessageContract } from '@signalwire/core';
//# sourceMappingURL=PubSub.d.ts.map