import { UITagListCheckTag } from './../data/ui-tag-list-check';
import { UITagListCheckConfig, UITagListCheckModel } from '../data/ui-tag-list-check';
import { PictureHelper } from './../files/picture-helper';
import { Router } from 'aurelia-router';
import { AuditLog, AuditLogChanges } from './../../model/common-model';
import { I18N } from 'aurelia-i18n';
import { HttpClient } from 'aurelia-fetch-client';
import { BindingEngine, TaskQueue } from 'aurelia-framework';
import { ServiceBase } from '../../data/service-base';
import { Datacontext } from '../../data/data-context';
import { Config } from '../../config';
export declare const EVT_REFRESH_HISTORY = "EVT_REFRESH_HISTORY";
export declare class UIEntityHistory {
    private element;
    private router;
    private httpClient;
    private config;
    private i18n;
    private context;
    private pictureHelper;
    private bindingEngine;
    private taskQueue;
    entityType: string;
    entityId: number;
    auditLogs: Array<AuditLog>;
    isLoading: boolean;
    protected auditLogService: ServiceBase<AuditLog>;
    private eventSub;
    private disposables;
    auditLogsToDisplay: Array<AuditLogByDate>;
    private auditLogLastDate;
    private queryInProcess;
    private stopQueryLog;
    private viewHistory;
    private disabledSaveFilter;
    filterModelEntityName: UITagListCheckModel;
    filterModelUser: UITagListCheckModel;
    filterConfig: UITagListCheckConfig;
    tagsSelected: Array<UITagListCheckTag>;
    userTagsSelected: Array<UITagListCheckTag>;
    file: string;
    picture: string;
    comment: string;
    entitiesInfo: EntityInfo[];
    constructor(element: Element, router: Router, httpClient: HttpClient, config: Config, i18n: I18N, context: Datacontext, pictureHelper: PictureHelper, bindingEngine: BindingEngine, taskQueue: TaskQueue);
    bind(): Promise<void>;
    detached(): void;
    entityIdChanged(): Promise<void>;
    getFilterEntityNames(): Promise<void>;
    private updateDisabledSaveFilter;
    protected refreshHistory(refreshFilter: boolean): Promise<void>;
    private isEllipsisActive;
    private getAuditLogs;
    sortAuditLogs(auditLogs: AuditLog[]): void;
    private getCommentChanges;
    private formatHtml;
    private getSpecificTypeOfEntity;
    private getOperation;
    private displayNameCreateFk;
    private getEntityName;
    enrichChanges(entity: AuditLog): void;
    valueFormating(value: any): string;
    getTranslation(type: string): string;
    getOperationTranslation: (entity: AuditLog, type: string) => string;
    getDisplayName(entity: AuditLog): string;
    get translatePropertyName(): string;
    private sortArray;
    viewMoreChange($event: MouseEvent): void;
    viewLessChange($event: MouseEvent): void;
    filter(open: boolean): Promise<void>;
    saveFilter(): Promise<void>;
    removeUserTagsSelected(tag: UITagListCheckTag): void;
    selectedUserTagsSelected(tag: UITagListCheckTag): void;
    beforeCloseFn(tag: UITagListCheckTag): void;
}
declare class EntityInfo {
    EntityName: string;
    Icon: string;
    SpecificType: string;
}
declare class AuditLogByDate {
    date: Date;
    groupBlocs: Array<AuditLogGroupBloc>;
}
declare class AuditLogGroupBloc {
    endDate: Date;
    startDate: Date;
    blocs: Array<AuditLogBlocHour>;
}
declare class AuditLogBlocHour {
    startDate: Date;
    endDate: Date;
    lastOfBloc: boolean;
    entities: Array<AuditLogEntity>;
}
declare class AuditLogEntity {
    name: string;
    operation: string;
    viewDetail: boolean;
    icon: string;
    link: string;
    minutes: Array<AuditLogBlocMinute>;
    type: string;
}
declare class AuditLogBlocMinute {
    date: Date;
    user: string;
    data: Array<AuditLog | UrlData | CommentData>;
}
declare class UrlData {
    url: string;
    name: string;
}
declare class CommentData {
    type: string;
    description: string;
    createdBy: string;
    Changes: AuditLogChanges[];
}
export {};
