import { PnButton } from "../../../globals/types";
export type MessageCategory = 'Bot' | 'Link' | 'Button' | 'Card' | 'User' | 'ButtonResponse' | 'Agent' | 'System';
export interface BaseMessage {
    customerSegment: CustomerSegment;
    category: MessageCategory;
    content: string;
    messageId: string;
}
export interface BotMessage extends BaseMessage {
    category: 'Bot';
}
export interface AgentMessage extends BaseMessage {
    category: 'Agent';
    agentName: string;
}
export interface SystemMessage extends BaseMessage {
    category: 'System';
}
export interface ButtonMessage extends BaseMessage {
    category: 'Button';
    class?: string;
    props?: string;
}
export interface ButtonResponseMessage extends BaseMessage {
    category: 'ButtonResponse';
    optionResponses: string[];
}
export interface LinkMessage extends BaseMessage {
    category: 'Link';
    href: string;
}
export interface CardMessage extends Omit<BaseMessage, 'content'> {
    category: 'Card';
    heading: string;
    content: string;
    buttons: PnButton[];
}
export interface UserMessage extends BaseMessage {
    category: 'User';
    class?: string;
}
export type ChatMessage = BotMessage | ButtonMessage | LinkMessage | CardMessage | UserMessage | ButtonResponseMessage | AgentMessage | SystemMessage;
interface ChatMessagesHeader {
    body?: string;
    button?: PnButton;
}
export interface ChatMessages {
    header: ChatMessagesHeader;
    messages: ChatMessage[];
}
export type CustomerSegment = 'Private' | 'Business' | string;
export type MessageType = 'Text' | 'Choice';
export interface Translationsi18n {
    relatedContentAriaLabel: string;
    chatMinimizedAriaLabel: string;
    chatOpenedAriaLabel: string;
    minimizeChatAriaLabel: string;
    closeChatAriaLabel: string;
    openChatAriaLabel: string;
    chatControlsAriaLabel: string;
    chatMessagesAriaLabel: string;
    sentMessageAriaLabel: string;
    writeChatMessagePlaceholder: string;
    waitingForAnswerLabel: string;
    sendButtonText: string;
    loadingText: string;
}
export {};
