import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
import { FileUpload } from 'tn-custom-primeng/fileupload';
import { ComponentBase } from '../../../classes/base/component-base';
import { UserPickerControlSchema } from '../../../classes/form-schema';
import { TnUser } from '../../../models/tn-user';
import { CheckControlVisibleService } from '../../../services/check-control-visible.service';
import { CrudService } from '../../../services/crud.service';
import { ModuleConfigService } from '../../../services/module-config.service';
import { NotifierService } from '../../../services/notifier.service';
import { SignalRService } from '../../../services/signalr.service';
import { UserService } from '../../../services/user.service';
import { ServiceRequestModel } from '../../file-explorer/models/service-request-model';
import { FileExplorerService } from '../../file-explorer/services/file-explorer.service';
import { EditFormModel } from '../models/models';
import { ChatService } from '../services/chat.service';
import { MessageBoardService } from '../services/message-board.service';
export declare class ChatBoxComponent extends ComponentBase implements OnInit, OnDestroy {
    private _chatService;
    private _messageBoardService;
    private _userService;
    private _checkControlVisible;
    private _signalrService;
    private _fileService;
    _crudService: CrudService;
    private _notifierService;
    private _moduleConfigService;
    taskId: string;
    serviceCode: string;
    entity: string;
    users: any;
    showSendMessageBox: boolean;
    input: ElementRef;
    fileElement: FileUpload;
    private _moduleConfig;
    readonly defaultAvatar: any;
    readonly environment: any;
    userPickerForm: EditFormModel;
    userPickerControl: UserPickerControlSchema;
    fileViewerModel: {
        data: any;
        showEditForm: boolean;
    };
    topic: string;
    firstTime: boolean;
    multiple: boolean;
    showAddNoteForm: boolean;
    fileApi: string;
    peopleAll: any;
    correlationIds: any[];
    attachments: any[];
    image: string;
    peopleAllUsers: any[];
    peopleRelatedUsers: any[];
    editFormModel: {};
    serviceRequestModel: ServiceRequestModel;
    currentUser: TnUser;
    maxFileSize: number;
    assignee: any;
    assigner: any;
    relatedUser: any;
    constructor(injector: Injector, _chatService: ChatService, _messageBoardService: MessageBoardService, _userService: UserService, _checkControlVisible: CheckControlVisibleService, _signalrService: SignalRService, _fileService: FileExplorerService, _crudService: CrudService, _notifierService: NotifierService, _moduleConfigService: ModuleConfigService);
    updateUsers(assignee: any, assigner: any, relatedUser: any[]): void;
    ngOnInit(): void;
    private handleChanges;
    private initClassVar;
    getRelatedUserInfo(): Promise<void>;
    handlePinnedChangeNotification(data: any): Promise<void>;
    handleNewMessageNotification(newMessage: any): Promise<void>;
    getMessages(createdFrom: any): void;
    scrollToBottom(speed: number, force: boolean, sent: any): void;
    appendMessage(message: any, type: any, status: any, createdBy: any, attachments: any[], correlationId: string, sent: any): Promise<any>;
    updateFirstOrLastMessage(): void;
    updateMessage(correlationId: any, message: any): void;
    updateMessageStatus(message: any, status: any, errorMessage?: string): void;
    getDisplayStatus(status: any): "" | "Đang gửi" | "Đã gửi";
    ngOnDestroy(): void;
    getTypeOfMessage(createdBy: any): "own" | "from";
    trackByFunc(index: any, item: any): any;
    trackAttachmentByFunc(index: any, item: any): any;
    handlePaste(event: ClipboardEvent): void;
    getImageClipboardData(e: any): {
        url: string;
        blob: any;
    };
    viewOrDownloadFile(evt: any, attachmentItem: any): Promise<void>;
    download(file: any): Promise<string>;
    browseFileFromPersonal(): void;
    browseFileFromComputer(): void;
    onSelectFileFromComputer(evt: any): void;
    removeAttachment(item: any): void;
    hasAttachment(item: any): boolean;
    loadImg(evt: any, parentIndex: number, index: number): void;
    inTheSameTime(i: number, item: any, dataSource: any): boolean;
    pinMessage(item: any): void;
    doPin(item: any, id: any, pinned: any): void;
    getCurrentUserAvatar(avatar: any): any;
    addPeople(): void;
    quickNote(item: any): Promise<void>;
    onMouseUp(event: any): void;
    addClassToMessage(item: any, isPinnedMessage: boolean): string;
}
//# sourceMappingURL=chat-box.component.d.ts.map