import { ITrackable } from '@iqser/common-ui';
import { IChange } from './change';
import { EntryState } from './entity-states';
import { EntityType } from './entity-types';
import { IManualChange } from './manual-change';
import { LogEntryEngine } from './types';

export interface IEntityLogEntryPosition {
    readonly pageNumber: number;
    readonly rectangle: readonly [number, number, number, number];
}

export interface IEntityLogEntry extends ITrackable {
    type: string;
    entryType: EntityType;
    state: EntryState;
    value: string;
    reason: string;
    matchedRule: string;
    legalBasis: string;
    imported: boolean;
    containingNodeId: number[];
    closestHeadline: string;
    section: string;
    color: number[];
    positions: IEntityLogEntryPosition[];
    textAfter?: string;
    textBefore?: string;
    startOffset?: number;
    endOffset?: number;
    imageHasTransparency: boolean;
    dictionaryEntry: boolean;
    dossierDictionaryEntry: boolean;
    excluded: boolean;
    changes: IChange[];
    manualChanges: IManualChange[];
    engines: LogEntryEngine[];
    reference: string[];
    importedRedactionIntersections: string[];
    numberOfComments: number;
}
