import { Router } from 'aurelia-router';
import { CommunicationHubClient } from './../../services/signalr/communication-hub-client';
import { CustomLogger } from './../../modules/custom-logger';
import { TaskQueue } from "aurelia-framework";
import { HttpClient } from 'aurelia-fetch-client';
import { ChatMessage } from "../../model/common-model";
import { AuthService } from "../../security/auth-service";
import { Config } from '../../config';
export declare class UIChat {
    private router;
    private config;
    private httpClient;
    private taskQueue;
    private logger;
    private commHubclient;
    entityName: string;
    entityId: number;
    messagesCounter: number;
    isLoading: boolean;
    messageToSend: string;
    messageToEdit: string;
    private userService;
    private authService;
    private disposables;
    firstMessageId: number | null;
    messageList: Array<ChatMessage>;
    messageToDisplay: Array<Array<ChatMessage>>;
    private inputElement;
    private usersList;
    private tribute;
    private signalRMethodName;
    container: HTMLElement;
    keydownHandler: (ev: any) => void;
    constructor(router: Router, config: Config, httpClient: HttpClient, authService: AuthService, taskQueue: TaskQueue, logger: CustomLogger, commHubclient: CommunicationHubClient);
    bind(): Promise<void>;
    detached(): void;
    unbind(): void;
    attached(): Promise<void>;
    protected refreshChat(showLoading: boolean, scrollPosition?: number): Promise<void>;
    enter(event: KeyboardEvent): void;
    queueScrollToBottom(): void;
    getData(): void;
    private getMessages;
    private getLastMessageId;
    private getFirstMessageId;
    private handleBadRequest;
    private sendMessage;
    private orderMessageList;
    private onMouseOnMessage;
    private onMouseOutMessage;
    private deleteMessage;
    private editMessage;
    private sendEditMessage;
    private cancelEditMessage;
    getLocalTime(dateString: string, format: string): string;
    buildTributeUsers(element: Element): Promise<void>;
}
