/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ChangeDetectorRef, ElementRef, NgZone, OnDestroy, OnInit } from '@angular/core';
import { Message } from './api/message.interface';
import { MessageStatus } from './api/message-status.interface';
import { ChatItem } from './chat-item';
import { MessageContentTemplateDirective } from './templates/message-content-template.directive';
import { IntlService } from '@progress/kendo-angular-intl';
import { ChatFile } from './api/chat-file-interface';
import { ContextMenuPopupEvent } from '@progress/kendo-angular-menu';
import { SVGIcon } from '@progress/kendo-svg-icons';
import { ChatService } from './common/chat.service';
import { MessageAction } from './api';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { ChatStatusTemplateDirective } from './templates/status-template.directive';
import { FormattedTextPart } from './common/models/formatted-text-parts';
import { MessageTemplateDirective } from './templates/message-template.directive';
import { AuthorMessageContentTemplateDirective } from './templates/author-message-content-template.directive';
import { ReceiverMessageContentTemplateDirective } from './templates/receiver-message-content-template.directive';
import { ReceiverMessageTemplateDirective } from './templates/receiver-message-template.directive';
import { AuthorMessageTemplateDirective } from './templates/author-message-template.directive';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare class MessageComponent extends ChatItem implements OnInit, OnDestroy {
    element: ElementRef;
    private intl;
    chatService: ChatService;
    private localization;
    private cdr;
    private zone;
    set message(value: Message);
    get message(): Message;
    tabbable: boolean;
    authorMessageContentTemplate: AuthorMessageContentTemplateDirective;
    receiverMessageContentTemplate: ReceiverMessageContentTemplateDirective;
    messageContentTemplate: MessageContentTemplateDirective;
    authorMessageTemplate: AuthorMessageTemplateDirective;
    receiverMessageTemplate: ReceiverMessageTemplateDirective;
    messageTemplate: MessageTemplateDirective;
    statusTemplate: ChatStatusTemplateDirective;
    showMessageTime: boolean;
    authorId: string | number;
    cssClass: boolean;
    get failedClass(): boolean;
    get removedClass(): boolean;
    onKeyDown(event: KeyboardEvent): void;
    selected: boolean;
    get tabIndex(): string;
    expandIcon: SVGIcon;
    collapseIcon: SVGIcon;
    downloadIcon: SVGIcon;
    resendIcon: SVGIcon;
    messageFailedIcon: SVGIcon;
    isMessageExpanded: boolean;
    showExpandCollapseIcon: boolean;
    fileActions: any;
    toolbarActions: MessageAction[];
    parts: FormattedTextPart[];
    get useCustomBubbleTemplate(): boolean;
    get useCustomContentTemplate(): boolean;
    get hasMessageContent(): boolean;
    get hasFiles(): boolean;
    get hasMultipleFiles(): boolean;
    get isStatusString(): boolean;
    get statusObject(): MessageStatus | null;
    get isActiveMessage(): boolean;
    get isMessageExpandable(): boolean;
    get showToolbar(): boolean;
    private subs;
    private _message;
    constructor(element: ElementRef, intl: IntlService, chatService: ChatService, localization: LocalizationService, cdr: ChangeDetectorRef, zone: NgZone);
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    calculateExpandCollapseIconVisibility(): boolean;
    getActiveBubbleTemplate(): MessageTemplateDirective | AuthorMessageTemplateDirective | ReceiverMessageTemplateDirective | null;
    getActiveContentTemplate(): MessageContentTemplateDirective | AuthorMessageContentTemplateDirective | ReceiverMessageContentTemplateDirective | null;
    getDeletedMessageText(): string;
    textFor(key: string): string;
    formatTimeStamp(date: any): string;
    focus(): void;
    onDownloadAll(): void;
    toggleMessageState(event: Event): void;
    onExpandableKeydown(event: KeyboardEvent): void;
    onToolbarAction(event: Event, action: MessageAction, message: Message): void;
    onFileAction(action: any, file: ChatFile): void;
    getMessageById(id: string | number): Message | undefined;
    onReplyReferenceClick(event: Event, replyToId: string | number): void;
    onResendMessage(event: Event): void;
    handleMenuClose(event?: ContextMenuPopupEvent): void;
    onActionButtonClick(event: MouseEvent): void;
    handleMenuOpen(): void;
    onActionPopupChange(expanded: boolean): void;
    isOwnMessage(msg: Message): boolean;
    private getFormattedTextParts;
    private getMessageSettings;
    private getToolbarActions;
    private getFileActions;
    private updateExpandCollapseIconAfterStable;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MessageComponent, "kendo-chat-message", never, { "message": { "alias": "message"; "required": false; }; "tabbable": { "alias": "tabbable"; "required": false; }; "authorMessageContentTemplate": { "alias": "authorMessageContentTemplate"; "required": false; }; "receiverMessageContentTemplate": { "alias": "receiverMessageContentTemplate"; "required": false; }; "messageContentTemplate": { "alias": "messageContentTemplate"; "required": false; }; "authorMessageTemplate": { "alias": "authorMessageTemplate"; "required": false; }; "receiverMessageTemplate": { "alias": "receiverMessageTemplate"; "required": false; }; "messageTemplate": { "alias": "messageTemplate"; "required": false; }; "statusTemplate": { "alias": "statusTemplate"; "required": false; }; "showMessageTime": { "alias": "showMessageTime"; "required": false; }; "authorId": { "alias": "authorId"; "required": false; }; }, {}, never, never, true, never>;
}
