import BaseClient from '../../base'; import { DeleteAllMessagesApi } from './delete-all'; import { DeleteConversationApi } from './delete-conversation'; import { DeleteMessageOlderThanApi } from './delete-older-than'; import { DeleteMessageApi } from './delete'; import { MessageListApi } from './list'; import { MessageListRecentChatsApi } from './list-recent-chats'; import { MessageListSingleChatApi } from './list-single-chat'; import { SendMessageApi } from './send'; import { SendButtonApi } from './send-button'; import { SendImageCaptionApi } from './send-image-caption'; import { SendCardsApi } from './send-cards'; import { SendListApi } from './send-list'; import { MarkMessageDeliveredApi } from './mark-as-delivered'; import { MarkMessageReadApi } from './mark-as-red'; export interface MessagesApi { /** * Delete all chats * * https://docs.applozic.com/reference/messages#delete-all-chats * * Sample usage: * ```typescript * const result = await applozicClient.messages.deleteAll(); * console.log({ result }); */ deleteAll: DeleteAllMessagesApi; /** * Delete a conversation * * https://docs.applozic.com/reference/messages#delete-conversation-1 * * Sample usage: * * #### Delete conversation with a user * ```typescript * const result = await applozicClient.messages.delete('message-key'); * ``` * * #### Delete group conversation * ```typescript * const result = await applozicClient.messages.delete('message-key', true); * ``` */ deleteConversation: DeleteConversationApi; /** * Delete messages older than a given timestamp * * https://docs.applozic.com/reference/messages#delete-user-messages-older-than-x-days * * Sample usage: * * ```typescript * // Delete messages older than 30 days * const result = await applozicClient.messages.deleteOlderThan(30); * ``` */ deleteOlderThan: DeleteMessageOlderThanApi; /** * Delete a messsage * * https://docs.applozic.com/reference/messages#delete-user-messages-older-than-x-days * * Sample usage: * * #### Delete only for logged in user * ```typescript * const result = await applozicClient.messages.delete('message-key'); * ``` * * #### Delete message for all * ```typescript * const result = await applozicClient.messages.delete('message-key', true); * ``` */ delete: DeleteMessageApi; /** * Get message details from message key * * https://docs.applozic.com/reference/messages#message-info * * * Sample usage: * * ```typescript * const result = await applozicClient.messages.info('message-key'); * ``` */ /** * Wrapper to list messages for * 1. Recent 1-1 chat previews - See {@link MessagesApi.listRecentChats} * 3. User Chats -See {@link MessagesApi.listSingleChat} * 2. Group Chats - See {@link MessagesApi.listSingleChat} * * https://docs.applozic.com/reference/message-list * * * Sample usage: * * #### Get last message from recent conversations * * ```typescript * const page1 = await applozicClient.messages.list({ * endTime: Date.now(), * mainPageSize: 50, // Number of recent chats to load * }); * * const page2 = await applozicClient.messages.list({ * endTime: page1.message[0].createdAtTime, * mainPageSize: 50, // Number of recent chats to load * }); * ``` * * * #### Get conversation with a user * * ```typescript * const page1 = await applozicClient.messages.list({ * userId: 'contact-user-id', * endTime: Date.now(), * pageSize: 50 * }); * * const page2 = await applozicClient.messages.list({ * userId: 'contact-user-id', * endTime: page1.message[0].createdAtTime, * pageSize: 50 * }); * ``` * * * #### Get conversation with a group * * ```typescript * const page1 = await applozicClient.messages.list({ * groupId: 'group-id', * endTime: Date.now(), * pageSize: 50 * }); * * const page2 = await applozicClient.messages.list({ * groupId: 'group-id', * endTime: page1.message[0].createdAtTime, * pageSize: 50 * }); * ``` * */ list: MessageListApi; /** * Wrapper to list messages for get recent users and groups * with conversations and the latest message from each conversation * * Sample usage: * * ```typescript * const page1 = await applozicClient.messages.listRecentChats({ * endTime: Date.now(), * mainPageSize: 50, // Number of recent chats to load * }); * * const page2 = await applozicClient.messages.listRecentChats({ * endTime: page1.message[0].createdAtTime, * mainPageSize: 50, // Number of recent chats to load * }); * ``` */ listRecentChats: MessageListRecentChatsApi; /** * Wrapper to list messages for a single user or group * * Sample usage: * * #### Get conversation with a user * * ```typescript * const page1 = await applozicClient.messages.listSingleChat({ * userId: 'contact-user-id', * endTime: Date.now(), * pageSize: 50 * }); * * const page2 = await applozicClient.messages.listSingleChat({ * userId: 'contact-user-id', * endTime: page1.message[0].createdAtTime, * pageSize: 50 * }); * ``` * * * #### Get conversation with a group * * ```typescript * const page1 = await applozicClient.messages.listSingleChat({ * groupId: 'group-id', * endTime: Date.now(), * pageSize: 50 * }); * * const page2 = await applozicClient.messages.listSingleChat({ * groupId: 'group-id', * endTime: page1.message[0].createdAtTime, * pageSize: 50 * }); * ``` * */ listSingleChat: MessageListSingleChatApi; /** * Mark a message as delivered. This sends an update to the sender that * the message was delivered. * * Usage: * ``` * await applozicClient.messages.markAsDelivered('message-key'); * ``` */ markAsDelivered: MarkMessageDeliveredApi; /** * Mark a message as read. This sends an update to the sender that * the message was read. * * Usage: * ``` * await applozicClient.messages.markAsRead('message-key'); * ``` */ markAsRead: MarkMessageReadApi; /** * This a single wrapper over the send message API. * * ### Send message to a user * * https://docs.applozic.com/reference/messages#send-message-to-user * * Sample usage: * ```typescript * const messageResult = await applozicClient.messages.send({ * to: 'userId', * message: 'Hello world', * }); * console.log({ messageResult }); * ``` * * ### Send message to a group * * https://docs.applozic.com/reference/messages#send-message-to-group * * Sample usage: * ```typescript * const messageResult = await applozicClient.messages.send({ * clientGroupId: 'client-group-id', * message: 'Hello world', * }); * console.log({ messageResult }); * ``` * ### Send message with attachment * * https://docs.applozic.com/reference/messages#send-message-with-attachment * * Get file meta from after uploading the file to Applozic server. * Use this file meta when sending the message. * * To upload a file, see {@link FilesApi.upload} * * Sample usage: * ```typescript * const fileMeta = await applozicClient.files.upload(file); * const messageResult = await applozicClient.messages.send({ * clientGroupId: 'client-group-id', * message: 'Hello world', * fileMeta: fileMeta, * type: 5 * }); * console.log({ messageResult }); * ``` * * ### Send message with metadata * * https://docs.applozic.com/reference/messages#send-message-with-metadata * * Sample usage: * ```typescript * const messageResult = await applozicClient.messages.send({ * to: 'userId', * message: 'Hello world', * metadata: { * "key1" : "value1", * "key2" : "value2" * } * }); * console.log({ messageResult }); */ send: SendMessageApi; sendButtons: SendButtonApi; sendImageWithCaption: SendImageCaptionApi; sendList: SendListApi; sendCards: SendCardsApi; } declare const messagesApiBuilder: (client: BaseClient) => MessagesApi; export default messagesApiBuilder;