import { ConversationState, MessageState, ParticipantState } from "./state/ConversationState"; /** * @classdesc Helper class for chat conversations * @category Helpers */ export declare class ConversationHelper { private conversation; constructor(conversation: ConversationState); /** * Returns the last chat message object. * @readonly * @type {MessageState} * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const conversationHelper = new ConversationHelper(conversationState); * console.log(conversationHelper.lastMessage); */ get lastMessage(): MessageState; /** * Gets all conversation participants who are currently typing (except you). * @readonly * @type {Array} * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const conversationHelper = new ConversationHelper(conversationState); * console.log(conversationHelper.typers); */ get typers(): Array; /** * Returns true if the customer is online, false if not. * @readonly * @type {boolean} * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const conversationHelper = new ConversationHelper(conversationState); * console.log(conversationHelper.isCustomerOnline); */ get isCustomerOnline(): boolean; /** * Returns the conversation type. If not found, it returns the channel type. Otherwise, returns null. * @readonly * @type {null | string} * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const conversationHelper = new ConversationHelper(conversationState); * console.log(conversationHelper.conversationType); // Returns conversation type */ get conversationType(): null | string; /** * Checks whether the current user is participant of the conversation passed. * @static * @returns {boolean} true if the current user is participant of the conversation passed, false if not * @param {ConversationState} conversation The conversation state object * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * console.log(ConversationHelper.isUserParticipantOfConversation(conversationState)); */ static isUserParticipantOfConversation(conversation: ConversationState): boolean; /** * Returns the conversation's email participants. * @static * @returns {Array} The returned array has two items: * - at index 0 it's an array of strings with the "to" email participants. * - at index 1 it's an array of strings with the "cc" email participants. * @param {ConversationState} conversation The conversation state object * @since 2.0.0 * @example * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const [to, cc] = ConversationHelper.getEmailParticipants(conversationState); */ static getEmailParticipants(conversation: ConversationState): [string[], string[]]; } export declare class ChatChannelHelper extends ConversationHelper { /** * @deprecated * @deprecatedSince 2.0.0 * @altRecommendation Use `conversationType` instead * @altRecommendationExample * import { ConversationHelper, StateHelper } from "@twilio/flex-ui"; * const conversationState = StateHelper.getConversationStateForTask(task); * const conversationHelper = new ConversationHelper(conversationState); * console.log(conversationHelper.conversationType); // Returns conversation type * @altRecommendationLink https://assets.flex.twilio.com/docs/releases/flex-ui/latest/advanced/helpers/ConversationHelper/ * @private * */ get channelType(): string; }