import { ChatMessage } from "../../websocket/incoming/chat-message.event";
import { ChatModule } from "./chat";
export declare class PubbyMessage {
    private readonly chat;
    id: string;
    text: string;
    timestamp: number;
    replyId?: string;
    fromId?: string;
    get user(): import("../../models/user").User;
    constructor(message: Partial<ChatMessage>, chat: ChatModule);
    send(): Promise<PubbyMessage>;
    reply(text: string): Promise<PubbyMessage>;
    onReply(...listeners: ((message: PubbyMessage) => void)[]): {
        off: () => ChatModule;
    };
    onceReply(callback: (message: PubbyMessage) => void, fromId?: string): {
        off: () => ChatModule;
    };
}
