import { OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
import { Socket } from 'socket.io-client';
import { CoHostResponsibility, EventType, Message, Participant, ShowAlert } from '../../@types/types';
import { SendMessage, SendMessageOptions } from '../../methods/message-methods/send-message.service';
import { ModernRenderMode } from '../utils/render-mode.utils';
import * as i0 from "@angular/core";
export declare class ModernMessagesModalComponent implements OnInit, OnChanges {
    private readonly sendMessageService;
    isMessagesModalVisible: boolean;
    onMessagesClose: () => void;
    onSendMessagePress?: (options: SendMessageOptions) => Promise<void>;
    messages: Message[];
    position: string;
    backgroundColor: string;
    activeTabBackgroundColor: string;
    eventType: EventType;
    member: string;
    islevel: string;
    coHostResponsibility: CoHostResponsibility[];
    coHost: string;
    startDirectMessage: boolean;
    directMessageDetails: Participant | null;
    updateStartDirectMessage: (_start: boolean) => void;
    updateDirectMessageDetails: (_participant: Participant | null) => void;
    showAlert?: ShowAlert;
    roomName: string;
    socket: Socket;
    chatSetting: string;
    overlayStyle?: Partial<CSSStyleDeclaration>;
    contentStyle?: Partial<CSSStyleDeclaration>;
    customTemplate?: TemplateRef<unknown>;
    renderMode: ModernRenderMode;
    showHeader: boolean;
    faTimes: import("@fortawesome/fontawesome-common-types").IconDefinition;
    activeTab: 'group' | 'direct';
    focusedInput: boolean;
    directMessages: Message[];
    groupMessages: Message[];
    constructor(sendMessageService: SendMessage);
    ngOnInit(): void;
    ngOnChanges(_changes: SimpleChanges): void;
    isVisible(): boolean;
    isEmbedded(): boolean;
    supportsDirectMessages(): boolean;
    switchToDirectTab(): void;
    switchToGroupTab(): void;
    closeMessagesModal(): void;
    handleOverlayClick(): void;
    resolvedSendMessageHandler(): (options: SendMessageOptions) => Promise<void>;
    resolvedOverlayStyle(): Record<string, string | number>;
    resolvedContentStyle(): Record<string, string | number>;
    private ensureSendMessageHandler;
    private syncState;
    private populateMessages;
    private normalizeStyle;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModernMessagesModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModernMessagesModalComponent, "app-messages-modal", never, { "isMessagesModalVisible": { "alias": "isMessagesModalVisible"; "required": false; }; "onMessagesClose": { "alias": "onMessagesClose"; "required": false; }; "onSendMessagePress": { "alias": "onSendMessagePress"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "position": { "alias": "position"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "activeTabBackgroundColor": { "alias": "activeTabBackgroundColor"; "required": false; }; "eventType": { "alias": "eventType"; "required": false; }; "member": { "alias": "member"; "required": false; }; "islevel": { "alias": "islevel"; "required": false; }; "coHostResponsibility": { "alias": "coHostResponsibility"; "required": false; }; "coHost": { "alias": "coHost"; "required": false; }; "startDirectMessage": { "alias": "startDirectMessage"; "required": false; }; "directMessageDetails": { "alias": "directMessageDetails"; "required": false; }; "updateStartDirectMessage": { "alias": "updateStartDirectMessage"; "required": false; }; "updateDirectMessageDetails": { "alias": "updateDirectMessageDetails"; "required": false; }; "showAlert": { "alias": "showAlert"; "required": false; }; "roomName": { "alias": "roomName"; "required": false; }; "socket": { "alias": "socket"; "required": false; }; "chatSetting": { "alias": "chatSetting"; "required": false; }; "overlayStyle": { "alias": "overlayStyle"; "required": false; }; "contentStyle": { "alias": "contentStyle"; "required": false; }; "customTemplate": { "alias": "customTemplate"; "required": false; }; "renderMode": { "alias": "renderMode"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; }, {}, never, never, true, never>;
}
