import { ElementRef, EventEmitter, Renderer2, OnDestroy, OnInit, ChangeDetectorRef, OnChanges, SimpleChanges } from '@angular/core';
import { ChatStatus } from './interfaces/chat-status.interface';
import { ChatContact } from './interfaces/chat-contact.interface';
import { ChatMessage } from './interfaces/chat-message.interface';
import { Status } from './enums/status.enum';
import { ChatService } from './services/chat.service';
import { I18nService } from '../i18n/i18n.service';
import * as i0 from "@angular/core";
export declare class TlChatList implements OnInit, OnChanges, OnDestroy {
    private renderer;
    private change;
    private chatService;
    private i18nService;
    maxHeight: string;
    width: string;
    color: string;
    loadingMessages: boolean;
    chatStatus: ChatStatus;
    partner: ChatContact;
    lastActivityCheck: number;
    id: string;
    user: ChatContact;
    set contacts(data: ChatContact[]);
    get contacts(): ChatContact[];
    readMessage: EventEmitter<ChatMessage[]>;
    unreadMessages: EventEmitter<ChatMessage[]>;
    sendMessage: EventEmitter<ChatMessage>;
    changeStatus: EventEmitter<any>;
    selectContact: EventEmitter<any>;
    content: ElementRef;
    transform: string;
    selected: string;
    noContactsFound: string;
    searchContact: string;
    insideChat: boolean;
    filterControl: string;
    private _dataSource;
    messages: any[];
    private subscription;
    constructor(renderer: Renderer2, change: ChangeDetectorRef, chatService: ChatService, i18nService: I18nService);
    get online(): Status;
    get offline(): Status;
    get busy(): Status;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    setDataSource(contacts: ChatContact[], user?: ChatContact): void;
    listenChangeStatus(): void;
    listenChangeMessages(): void;
    listenUnreadMessages(): void;
    animationContentDone(event: AnimationEvent): void;
    getUnreadMessages(item: ChatContact): any[];
    getFilter(statusSelected: any): {
        filter: string;
        status: Status[];
        lastActivityCheck: number;
    };
    trackByFn(index: any): any;
    selectPartner(item: ChatContact): void;
    updatePartner(item: ChatContact): void;
    setStatus(status: Status): void;
    onMessage(message: {
        value: string;
        time: Date;
    }): void;
    selectStatus(status: any): void;
    ngOnDestroy(): void;
    private getStatus;
    private getDiffMinutes;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlChatList, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlChatList, "tl-chatlist", never, { "maxHeight": "maxHeight"; "width": "width"; "color": "color"; "loadingMessages": "loadingMessages"; "chatStatus": "chatStatus"; "partner": "partner"; "lastActivityCheck": "lastActivityCheck"; "id": "id"; "user": "user"; "contacts": "contacts"; }, { "readMessage": "readMessage"; "unreadMessages": "unreadMessages"; "sendMessage": "sendMessage"; "changeStatus": "changeStatus"; "selectContact": "selectContact"; }, never, never, false, never>;
}
//# sourceMappingURL=chatlist.d.ts.map