import { BaseComponentOptions, JSONRPCSubscribeMethod } from '..';
import { BasePubSubConsumer } from '../pubSub';
import type { ChatMemberEventNames, ChatMessageEventName } from '../types/chat';
import { ChatMember } from './ChatMember';
import { ChatMessage } from './ChatMessage';
export type BaseChatApiEventsHandlerMapping = Record<ChatMessageEventName, (message: ChatMessage) => void> & Record<ChatMemberEventNames, (member: ChatMember) => void>;
/**
 * @privateRemarks
 *
 * Each package will have the option to either extend this
 * type or provide their own event mapping.
 */
export type BaseChatApiEvents<T = BaseChatApiEventsHandlerMapping> = {
    [k in keyof T]: T[k];
};
export declare class BaseChatConsumer extends BasePubSubConsumer<BaseChatApiEvents> {
    protected subscribeMethod: JSONRPCSubscribeMethod;
    constructor(options: BaseComponentOptions);
    protected initWorker(): void;
}
export declare const BaseChatAPI: import("..").ConstructableType<BaseChatConsumer>;
export declare const createBaseChatObject: <ChatType>(params: BaseComponentOptions) => ChatType;
//# sourceMappingURL=BaseChat.d.ts.map