import { EventEmitter, PubSubPublishParams } from '@signalwire/core';
import { BaseNamespace } from '../BaseNamespace';
export interface BaseChatListenOptions {
    channels: string[];
}
export declare class BaseChat<T extends BaseChatListenOptions, EventTypes extends EventEmitter.ValidEventTypes> extends BaseNamespace<T, EventTypes> {
    protected onSessionReconnect(): void;
    listen(listenOptions: T): Promise<() => Promise<void>>;
    protected subscribe(listenOptions: T): Promise<() => Promise<void>>;
    private addChannels;
    private removeChannels;
    publish(params: PubSubPublishParams): Promise<unknown>;
}
//# sourceMappingURL=BaseChat.d.ts.map