import * as React from "react"; import { TaskChannelApplicableCb, TaskChannelDefinition } from "../TaskChannelDefinition"; /** * Interface to define an object with the parameters needed to configure a Chat Task Channel * @interface ChatTaskChannelConfiguration * @property {string} name name of the task channel definition * @property {TaskChannelDefinition.TaskChannelApplicableCb} isApplicable Callback to determine whether this task channel is applicable for a given task. * @property {string | React.ReactNode} [icon] main icon to render for the task channel * @property {string | React.ReactNode} [iconActive] active icon to render for the task channel * @property {string} [color] main color to be used * @property {string} [reservedTemplate] template string for pending chat request * @property {number} [charLimit] message character limit for task channel with chat capabilities * @property {string} [taskHeaderAcceptedTemplate] template string for chat task in accepted state * @property {string} [taskLineChatAssignedTemplate] template string for an assigned chat task * @property {string} [taskLineChatWrapupTemplate] template string for an wrapping up chat task * @property {string} [notificationTitleTemplate] template string for in-app notification title of chat task * @property {string} [browserNotificationTitleTemplate] template string for browser notification title of chat task * @property {string} [browserNotificationBodyTemplate] template string for browser notification body of chat task * @property {string} [contentTabHeaderTemplate] template string for header of content tab for chat tasks * @property {Record} [endButtonTemplates] template strings for button to end chat task */ export interface ChatTaskChannelConfiguration { name: string; isApplicable: TaskChannelApplicableCb; icon?: string | React.ReactNode; iconActive?: string | React.ReactNode; color?: string; reservedTemplate?: string; charLimit?: number; maxEmailContentSize?: number; taskHeaderAcceptedTemplate?: string; taskLineChatAssignedTemplate?: string; taskLineChatWrapupTemplate?: string; notificationTitleTemplate?: string; browserNotificationTitleTemplate?: string; browserNotificationBodyTemplate?: string; contentTabHeaderTemplate?: string; endButtonTemplates?: Record; reservedTransferTemplate?: string; } /** * The arguments that make up the old createChatTaskChannel() signature, * with `name` property omitted. This type array ensures that arguments are * of correct types when TaskChannelConfiguration is not used in the signature. * @typedef ChatTaskChannelArgs */ type ChatTaskChannelArgs = Partial<[ TaskChannelApplicableCb, string | React.ReactNode, string | React.ReactNode, string, string, number, string, string, string, string, string, string, Record, Record ]>; export declare const Chat: TaskChannelDefinition; export declare const ChatWeb: TaskChannelDefinition; export declare const ChatMessengerOld: TaskChannelDefinition; export declare const ChatMessenger: TaskChannelDefinition; export declare const ChatGoogleBusinessMessagesOld: TaskChannelDefinition; export declare const ChatGoogleBusinessMessages: TaskChannelDefinition; export declare const ChatWhatsApp: TaskChannelDefinition; export declare const ChatAppleMessagesForBusiness: TaskChannelDefinition; export declare const ChatSms: TaskChannelDefinition; export declare const ChatEmail: TaskChannelDefinition; export declare function createChatTaskChannel(chatTaskChannelConfiguration: ChatTaskChannelConfiguration | string, ...args: ChatTaskChannelArgs): TaskChannelDefinition; export {};