import { EventEmitter, OnInit, OnChanges, SimpleChanges, ChangeDetectorRef, OnDestroy } from '@angular/core';
import { HiveMessageService, HiveMessage, HiveTemplate, HiveChannel } from '../services/hivemessage.service';
import * as i0 from "@angular/core";
export declare class HiveMessageModalComponent implements OnInit, OnChanges, OnDestroy {
    private hivemessageService;
    private cdr;
    private messagesContainer;
    phoneNumber: string;
    moduleType: string;
    moduleId: string;
    visible: boolean;
    close: EventEmitter<void>;
    messages: HiveMessage[];
    newMessage: string;
    loading: boolean;
    sending: boolean;
    templates: HiveTemplate[];
    channels: HiveChannel[];
    selectedChannel: HiveChannel | null;
    contactName: string;
    avatarGender: 'male' | 'female' | 'neutral';
    showTemplatePopup: boolean;
    isTemplateLocked: boolean;
    selectedTemplate: HiveTemplate | null;
    templateParameters: any[];
    replyToMessage: HiveMessage | null;
    uploadingFile: boolean;
    attachmentUrl: string;
    attachmentFilename: string;
    selectedMediaType: 'image' | 'document' | 'video' | 'audio';
    selectedFile: File | null;
    showInfoToast: boolean;
    showSuccessToast: boolean;
    private infoToastTimer;
    private successToastTimer;
    isWithin24HourWindow: boolean;
    private initialized;
    constructor(hivemessageService: HiveMessageService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    initData(): void;
    onUserTyping(): void;
    onEnterKey(event: Event): void;
    private check24HourWindow;
    loadChannels(): void;
    loadMessages(): void;
    loadContactDetails(): void;
    private resolveContactName;
    private resolveAvatarGender;
    loadTemplates(): void;
    toggleTemplatePopup(): void;
    replyToThisMessage(message: HiveMessage): void;
    cancelReply(): void;
    onFileSelected(event: any): void;
    clearAttachment(): void;
    onChannelChange(): void;
    selectTemplate(template: HiveTemplate): void;
    clearTemplate(): void;
    sendMessage(): void;
    closeModal(): void;
    shouldShowDateSeparator(index: number): boolean;
    getDateLabel(timestamp: Date): string;
    isFirstInGroup(index: number): boolean;
    scrollToBottom(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<HiveMessageModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<HiveMessageModalComponent, "lib-hivemessage-modal", never, { "phoneNumber": { "alias": "phoneNumber"; "required": false; }; "moduleType": { "alias": "moduleType"; "required": false; }; "moduleId": { "alias": "moduleId"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
}
//# sourceMappingURL=hivemessage-modal.component.d.ts.map