import { MessageStatus } from '../Enums/Enums';
import { Subject } from 'rxjs';
/**
 * Message event subjects for handling actions related to messages (e.g., message sent, edited, deleted, etc.)
 */
export declare class CometChatMessageEvents {
    static ccMessageSent: Subject<IMessages>;
    static ccMessageEdited: Subject<IMessages>;
    static ccMessageTranslated: Subject<IMessages>;
    static ccLiveReaction: Subject<string>;
    static ccMessageRead: Subject<CometChat.BaseMessage>;
    static ccMessageDeleted: Subject<CometChat.BaseMessage>;
    /**
     * Publishes a message event.
     * @param {Subject<any>} event - The event to publish.
     * @param {any} item - The item (message, etc.) associated with the event.
     */
    static publishEvent(event: any, item?: any): void;
    /**
    * message events wrapper of SDK listeners (e.g., media message, typing       indicator, read receipts, etc.)
    */
    static onTextMessageReceived: Subject<CometChat.TextMessage>;
    static onMediaMessageReceived: Subject<CometChat.MediaMessage>;
    static onCustomMessageReceived: Subject<CometChat.CustomMessage>;
    static onTypingStarted: Subject<CometChat.TypingIndicator>;
    static onTypingEnded: Subject<CometChat.TypingIndicator>;
    static onMessagesDelivered: Subject<CometChat.MessageReceipt>;
    static onMessagesRead: Subject<CometChat.MessageReceipt>;
    static onMessagesDeliveredToAll: Subject<CometChat.MessageReceipt>;
    static onMessagesReadByAll: Subject<CometChat.MessageReceipt>;
    static onMessageEdited: Subject<CometChat.BaseMessage>;
    static onMessageDeleted: Subject<CometChat.BaseMessage>;
    static onTransientMessageReceived: Subject<CometChat.TransientMessage>;
    static onMessageReactionAdded: Subject<CometChat.ReactionEvent>;
    static onMessageReactionRemoved: Subject<CometChat.ReactionEvent>;
    static onCustomInteractiveMessageReceived: Subject<CometChat.InteractiveMessage>;
    static onFormMessageReceived: Subject<CometChat.InteractiveMessage>;
    static onCardMessageReceived: Subject<CometChat.InteractiveMessage>;
    static onSchedulerMessageReceived: Subject<CometChat.InteractiveMessage>;
}
/**
* Interface for message-related events
*/
export interface IMessages {
    message: CometChat.BaseMessage;
    status: MessageStatus;
}
