import { MessagingEventNames } from '@signalwire/core';
import { BaseNamespace } from '../BaseNamespace';
import { SWClient } from '../SWClient';
import { Message } from './Message';
interface MessageListenOptions {
    topics: string[];
    onMessageReceived?: (message: Message) => unknown;
    onMessageUpdated?: (message: Message) => unknown;
}
type MessageListenerKeys = keyof Omit<MessageListenOptions, 'topics'>;
type MessageEvents = Record<MessagingEventNames, (message: Message) => void>;
interface MessageSendMethodParams {
    context?: string;
    from: string;
    to: string;
    body?: string;
    tags?: string[];
    region?: string;
    media?: string[];
}
export declare class Messaging extends BaseNamespace<MessageListenOptions, MessageEvents> {
    protected _eventMap: Record<MessageListenerKeys, MessagingEventNames>;
    constructor(options: SWClient);
    send(params: MessageSendMethodParams): Promise<any>;
}
export * from './Message';
export type { MessagingMessageState } from '@signalwire/core';
//# sourceMappingURL=Messaging.d.ts.map