import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { Comment } from './comment.model';
import { User } from '../../models/user.model';
import { SelectionAnnotation } from '../../models/event-select.model';
import { CommentService } from './comment.service';
import { TagsModel } from '../../models/tags.model';
import { TagsServices } from '../../services/tags/tags.services';
import { Observable } from 'rxjs';
import { Store } from '@ngrx/store';
import * as fromStore from '../../../store/reducers/reducers';
import { Annotation } from '../../annotation-set/annotation-view/annotation.model';
import * as i0 from "@angular/core";
export declare class CommentComponent implements OnInit, OnDestroy, AfterContentInit {
    private store;
    private readonly commentService;
    private tagsServices;
    CHAR_LIMIT: number;
    lastUpdate: string;
    originalComment: string;
    fullComment: string;
    author: User;
    createdBy: string;
    editor: User;
    _comment: Comment;
    _editable: boolean;
    _rectangle: any;
    totalPrevPagesHeight: number;
    rectTop: any;
    rectLeft: any;
    pageHeight: number;
    hasUnsavedChanges: boolean;
    selected: boolean;
    searchString: string;
    tagItems: TagsModel[];
    marginToComment$: Observable<boolean>;
    commentClick: EventEmitter<SelectionAnnotation>;
    renderComments: EventEmitter<Comment>;
    delete: EventEmitter<Comment>;
    updated: EventEmitter<{
        comment: Comment;
        tags: TagsModel[];
    }>;
    changes: EventEmitter<boolean>;
    rotate: number;
    zoom: number;
    index: number;
    page: number;
    form: ElementRef;
    editableComment: ElementRef<HTMLElement>;
    private subscriptions;
    constructor(store: Store<fromStore.AnnotationSetState>, commentService: CommentService, tagsServices: TagsServices);
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnDestroy(): void;
    set comment(comment: Comment);
    get comment(): Comment;
    set annotation(annotation: Annotation);
    get editable(): boolean;
    onCommentChange(updatedComment: any): void;
    deleteOrCancel(): void;
    editOrSave(): void;
    onCommentClick(): void;
    reRenderComments(): void;
    get commentTop(): number;
    get height(): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<CommentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CommentComponent, "mv-anno-comment", never, { "rotate": { "alias": "rotate"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "index": { "alias": "index"; "required": false; }; "page": { "alias": "page"; "required": false; }; "comment": { "alias": "comment"; "required": false; }; "annotation": { "alias": "annotation"; "required": false; }; }, { "commentClick": "commentClick"; "renderComments": "renderComments"; "delete": "delete"; "updated": "updated"; "changes": "changes"; }, never, never, false, never>;
}
//# sourceMappingURL=comment.component.d.ts.map