/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ViewContainerRef, ElementRef, NgZone } from '@angular/core';
import { SpeechToTextButtonSettings } from '@progress/kendo-angular-buttons';
import { MessageWidthMode } from '../api/message-width-mode';
import { FileAction, FileActionEvent, FileDownloadEvent, FilesLayoutMode, Message, MessageAction, MessageActionEvent, MessageSettings, QuickActionsLayoutMode, ResendMessageEvent, SendButtonSettings, SuggestionsLayoutMode } from '../api';
import { FileSelectButtonSettings } from '../../promptbox/common/models';
import { MessageBoxSettings } from '../api/message-box';
import { ContextMenuComponent } from '@progress/kendo-angular-menu';
import { TimestampVisibilityMode } from '../api/timestamp-visibility';
import * as i0 from "@angular/core";
/**
 * @hidden
 */
export declare class ChatService {
    private zone;
    authorId: string | number;
    messageWidthMode: MessageWidthMode;
    messageContextMenuActions: MessageAction[];
    calculatedContextMenuActions: MessageAction[];
    fileActions: FileAction[];
    toggleMessageState: boolean;
    layoutChangeInProgress: boolean;
    reply: Message;
    messages: Message[];
    repliedToMessages: Message[];
    chatElement: ViewContainerRef;
    messageElementsMap: Map<string | number, ElementRef>;
    messagesContextMenu: ContextMenuComponent;
    activeMessage: Message;
    activeMessageElement: any;
    selectOnMenuClose: boolean;
    active: boolean;
    messageFilesLayout: FilesLayoutMode;
    timestampVisibility: TimestampVisibilityMode;
    showUsername: boolean;
    showAvatar: boolean;
    private _speechToTextButton;
    private _fileSelectButton;
    private _sendButtonSettings;
    private _messageBoxSettings;
    private _suggestionsLayout;
    private _quickActionsLayout;
    private _messageToolbarActions;
    _authorMessageSettings: MessageSettings;
    _receiverMessageSettings: MessageSettings;
    private _allowMessageCollapse;
    private subjects;
    toolbarAction$: import("rxjs").Observable<MessageActionEvent>;
    contextMenuAction$: import("rxjs").Observable<MessageActionEvent>;
    fileAction$: import("rxjs").Observable<FileActionEvent>;
    fileDownload$: import("rxjs").Observable<FileDownloadEvent>;
    resendMessage$: import("rxjs").Observable<ResendMessageEvent>;
    replyReferenceClick$: import("rxjs").Observable<string | number>;
    inputValueChange$: import("rxjs").Observable<string>;
    contextMenuVisibilityChange$: import("rxjs").Observable<boolean>;
    suggestionsLayoutChange$: import("rxjs").Observable<SuggestionsLayoutMode>;
    quickActionsLayoutChange$: import("rxjs").Observable<SuggestionsLayoutMode>;
    authorMessageSettingsChange$: import("rxjs").Observable<MessageSettings>;
    receiverMessageSettingsChange$: import("rxjs").Observable<MessageSettings>;
    allowMessageCollapseChange$: import("rxjs").Observable<boolean>;
    messageToolbarActionsChange$: import("rxjs").Observable<MessageAction[]>;
    constructor(zone: NgZone);
    set authorMessageSettings(settings: MessageSettings);
    get authorMessageSettings(): MessageSettings;
    set receiverMessageSettings(settings: MessageSettings);
    get receiverMessageSettings(): MessageSettings;
    set speechToTextButton(settings: boolean | SpeechToTextButtonSettings);
    get speechToTextButton(): SpeechToTextButtonSettings | null;
    set fileSelectButton(settings: boolean | FileSelectButtonSettings);
    get fileSelectButton(): FileSelectButtonSettings | null;
    set sendButton(settings: boolean | SendButtonSettings);
    get sendButton(): SendButtonSettings | null;
    set messageBoxSettings(settings: MessageBoxSettings);
    get messageBoxSettings(): MessageBoxSettings;
    set suggestionsLayout(layoutMode: SuggestionsLayoutMode);
    get suggestionsLayout(): SuggestionsLayoutMode;
    set quickActionsLayout(layoutMode: QuickActionsLayoutMode);
    get quickActionsLayout(): QuickActionsLayoutMode;
    set messageToolbarActions(value: MessageAction[]);
    get messageToolbarActions(): MessageAction[];
    set allowMessageCollapse(value: boolean);
    get allowMessageCollapse(): boolean;
    calculateContextMenuActions(isOwn: boolean): void;
    emit(subjectKey: string, value?: any): void;
    getMessageById(id: string | number): Message | undefined;
    registerMessageElement(messageId: string | number, elementRef: ElementRef): void;
    unregisterMessageElement(messageId: string | number): void;
    scrollToMessage(messageId: string | number, behavior?: ScrollBehavior): void;
    focusActiveMessageElement(): void;
    isOwnMessage(message: Message): boolean;
    private getScrollContainer;
    private computeScrollTarget;
    private updateComponentSettings;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChatService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ChatService>;
}
