import { a as Connection } from './Broadcast-B71kuNea.js';
import { Reaction, ReadMessages, Prettify, SendMessageGenerics, Message, EditedMessage, Conversation, MediaType } from './types.js';
import { Emoticon } from './emoticon.type.js';
import 'isomorphic-ws';
import 'events';

declare class MessageClient {
    private static message_client;
    private connection;
    private screen;
    private idleTimers;
    constructor(connection: Connection, conversationId: string);
    static getInstace(connection: Connection, conversationId: string): MessageClient;
    private getPublicMethods;
    private getConversationType;
    private rotateAndInsertMessageList;
    private _createMessage;
    private editConversationListMetaMessage;
    private _editMessage;
    _updateMessageReactions(conversationId: string, messageId: string, reactions: Reaction[], config?: {
        ws: boolean;
        to: string;
    }): void;
    private storeEditedMessage;
    /**
     *
     * @param conversationId
     * @summary Updates the list of conversations with typing indicator flags
     */
    private showTypingIndicator;
    private _sendTypingNotification;
    private _sendStoppedTypingNotification;
    private addMessageToConversation;
    private sendReadNotification;
    private _clearActiveTypingIndicator;
    private _updateConversationListMetaMessages;
    readMessages(conversationId: string, data: ReadMessages): void;
    clearUserUnreadNotifications(conversationId: string, ids: string[]): void;
    private wsOnError;
    private deleteMessageFromConversationMeta;
    reactToMessage({ conversationId, messageId, reactions, to, }: {
        conversationId: string;
        messageId: string;
        reactions: Reaction[];
        to: string;
    }): void;
    sendMessage(newMessage: Prettify<SendMessageGenerics<Message>>): void;
    updateBroadcastList(payload: {
        broadcastListId: string;
        participants: string[];
        name: string;
    }): void;
    deleteBroadcastList(payload: {
        broadcastListId: string;
        participants: string[];
        name: string;
    }): void;
    broadcastMessage({ broadcastListId, participantsIds, newMessage }: {
        broadcastListId: string;
        participantsIds: string[];
        newMessage: Prettify<SendMessageGenerics<Message>>;
    }): void;
    editMessage(message: Omit<EditedMessage, "from">): void;
    sendTypingNotification(uid: string): void;
    sendStoppedTypingNotification(uid: string): void;
    deleteMessage(messageId: string, to: string, conversationId: string): void;
    getMessages(page?: number): Promise<Message[]>;
    getBroadcastListMessages(page?: number): Promise<Message[]>;
    getConversation(conversationId: string): Promise<Conversation | null>;
    getEmojiList(): Promise<Emoticon[]>;
    uploadAttachment({ base64, fileKey, }: {
        base64: string;
        fileKey: string;
    }): Promise<{
        success: boolean;
        data: {
            url: string;
        };
        message: string;
    } | undefined>;
    private isReadableStream;
    uploadFile(uri: string | NodeJS.ReadableStream | Buffer | File, meta: {
        filename: string;
        mimeType: string;
        ext: string;
    }): Promise<{
        link: string;
        success: boolean;
        fileSize: number;
    } | {
        link: string;
        success: boolean;
        fileSize: string;
    }>;
    uploadAttachmentV2({ base64, fileKey, mediaType, mimeType, }: {
        base64: string;
        fileKey: string;
        mediaType: MediaType;
        mimeType: string;
    }): Promise<{
        success: boolean;
        data: {
            uploadUrl: string;
            s3Link: string;
        };
        message: string;
    } | undefined>;
    setActiveConversation(): Promise<void>;
    unSetActiveConversation(): Promise<void>;
    messageEventHandler(event: MessageEvent): null | undefined;
}

export { MessageClient as default };
