import { OnDestroy } from '@angular/core';
import { HttpResponse } from '@angular/common/http';
import { Observable, Subscription, Subject, BehaviorSubject } from 'rxjs';
import { Annotation, Comment, IAnnotationSet } from './annotation-set.model';
import { PdfService } from './pdf.service';
import { PdfAdapter } from './pdf-adapter';
import { ApiHttpService } from './api-http.service';
import { PdfAnnotateWrapper } from './js-wrapper/pdf-annotate-wrapper';
import { EmLoggerService } from '../logging/em-logger.service';
import { PdfRenderService } from './pdf-render.service';
export declare class AnnotationStoreService implements OnDestroy {
    private log;
    private pdfAdapter;
    private apiHttpService;
    private pdfService;
    private pdfAnnotateWrapper;
    private pdfRenderService;
    annotationChangeSubscription: Subscription;
    private commentBtnSubject;
    private commentFocusSubject;
    private annotationFocusSubject;
    private contextualToolBarOptions;
    constructor(log: EmLoggerService, pdfAdapter: PdfAdapter, apiHttpService: ApiHttpService, pdfService: PdfService, pdfAnnotateWrapper: PdfAnnotateWrapper, pdfRenderService: PdfRenderService);
    getAnnotationFocusSubject(): Subject<Annotation>;
    setAnnotationFocusSubject(annotation: Annotation): void;
    getCommentFocusSubject(): BehaviorSubject<{
        annotation: Annotation;
        showButton?: boolean;
    }>;
    setCommentFocusSubject(annotation: Annotation, showButton?: boolean): void;
    getCommentBtnSubject(): Subject<string>;
    setCommentBtnSubject(commentId: string): void;
    setToolBarUpdate(annotation: Annotation, showDelete?: boolean): void;
    getToolbarUpdate(): Subject<{
        annotation: Annotation;
        showDelete: boolean;
    }>;
    preLoad(annotationData: IAnnotationSet): void;
    handleAnnotationEvent(e: any): void;
    getAnnotationSet(baseUrl: any, dmDocumentId: any): Observable<HttpResponse<IAnnotationSet>>;
    saveData(): void;
    saveAnnotation(annotation: Annotation, type?: string): void;
    deleteAnnotation(annotation: any): void;
    editComment(comment: Comment): void;
    getAnnotationById(annotationId: string): Promise<Annotation>;
    getAnnotationsForPage(pageNumber: any): Promise<Annotation[]>;
    getCommentsForAnnotation(annotationId: any): Promise<Comment[]>;
    getAnnotation(annotationId: string, callback: any): void;
    getComments(annotationId: string, callback: any): void;
    addComment(comment: Comment): void;
    getAnnotations(pageNumber: number, callback: any): void;
    deleteComment(commentId: string): void;
    deleteAnnotationById(annotationId: string, pageNumber: number): Promise<void>;
    renderPage(renderOptions: any, pageNumber: number): void;
    ngOnDestroy(): void;
}
