import FileMeta from './FileMeta'; export declare enum MESSAGE_CATEGORY { HIDDEN = "HIDDEN", PUSHNOTIFICATION = "PUSHNOTIFICATION", ARCHIVE = "ARCHIVE" } export declare enum MessageContentType { TEXT = 0, FILE = 1, LOCATION = 2 } export declare enum MessageType { OTHERS = 4, MINE = 5 } export interface Message { /** if present, this is a group message */ clientGroupId?: string; /** if message is in a group, it specifies from which user **/ contactIds: string; contentType: MessageContentType; createdAtTime: number; delivered: boolean; groupId?: number; key: string; message: string; metadata?: { [key: string]: string | number | boolean; category?: MESSAGE_CATEGORY; }; pairedMessageKey?: string; read: boolean; sent: boolean; source: number; status: number; to: string; type: MessageType | number; userKey: string; fileMeta?: FileMeta; } export interface IncomingMessage { id: string; message: MessageData | string; messageMetaData: MessageMetaData; notifyUser: boolean; sendAlert: boolean; totalUnreadCount: number; type: string; } export interface MessageData extends Message { alert: boolean; applicationKey: string; createdAt: string; deliveredValue: number; sendToDevice: boolean; senderName: string; shared: boolean; skipUpdationForAdmin: boolean; unicodePresent: boolean; } interface MessageMetaData { notifyUser: boolean; sendAlert: boolean; totalUnreadCount: number; type: string; } export declare enum MESSAGE_TYPE_CODES { MESSAGE_DELIVERED_1 = "04", MESSAGE_DELIVERED_2 = "MESSAGE_DELIVERED", MESSAGE_DELIVERED_3 = "DELIVERED", MT_MESSAGE_DELIVERED_READ_1 = "08", MT_MESSAGE_DELIVERED_READ_2 = "MT_MESSAGE_DELIVERED_READ", MT_MESSAGE_DELIVERED_READ_3 = "MESSAGE_DELIVERED_READ", MESSAGE_READ = "29", MESSAGE_DELETED = "05", CONVERSATION_DELETED = "27", USER_CONNECT = "11", USER_ONLINE_STATUS = "25", USER_DISCONNECT = "12", CONVERSATION_DELIVERED_AND_READ = "10", CONVERSATION_READ = "28", USER_BLOCKED = "16", USER_UNBLOCKED = "17", USER_ACTIVATED = "18", USER_DEACTIVATED = "19", MESSAGE_RECEIVED_1 = "01", MESSAGE_RECEIVED_2 = "MESSAGE_RECEIVED", MESSAGE_RECEIVED_3 = "RECEIVED", MESSAGE_SENT = "02", MESSAGE_SENT_UPDATE = "03" } export interface SendMessageRes { messageKey: string; createdAt: number; } export interface BaseSendMessageReq { message: string; metadata?: { [key: string]: string; }; contentType?: MessageContentType; fileMeta?: FileMeta; type?: MessageType; } export interface BaseBroadcastMessageReq { messageObject: { message: string; }; } export interface SendMessageUserReq extends BaseSendMessageReq { /** userId of receiver */ to: string; } export interface SendMetaDataUserReq { /** userId of receiver */ to: string; metadata: T; } export interface SendMessageGroupReq extends BaseSendMessageReq { /** Id of group to send message to */ clientGroupId: string; } export interface SendMetaDataGroupReq { /** Id of group to send metadata to */ clientGroupId: string; metadata: T; } export interface SendMessageUserBroadcastReq extends BaseBroadcastMessageReq { /** Id of group to send message to */ userNames: string[]; } export interface SendMessageGroupBroadcastReq extends BaseBroadcastMessageReq { /** Id of group to send message to */ clientGroupIds: string[]; } export declare type SendMetaDataReq = SendMetaDataUserReq | SendMetaDataGroupReq; export declare type SendMessageReq = SendMessageUserReq | SendMessageGroupReq | SendMessageUserBroadcastReq | SendMessageGroupBroadcastReq; export {};