import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { RedactionSearch } from './redaction-search-bar/redaction-search.model';
import { IcpEventService } from './icp-event.service';
import * as i0 from "@angular/core";
export type HighlightMode = boolean;
export type DrawMode = boolean;
export interface SearchOperation {
    searchTerm: string;
    highlightAll: boolean;
    matchCase: boolean;
    wholeWord: boolean;
    previous: boolean;
    reset: boolean;
}
export interface SearchResultsCount {
    current: number;
    total: number;
    isPrevious: boolean;
}
export declare enum SearchType {
    Redact = "Redact",
    Highlight = "Highlight"
}
export interface SearchMode {
    modeType: SearchType;
    isOpen: boolean;
}
export declare class ToolbarEventService {
    private icpEventService;
    constructor(icpEventService: IcpEventService);
    readonly highlightModeSubject: BehaviorSubject<boolean>;
    readonly highlightToolbarSubject: BehaviorSubject<boolean>;
    readonly drawModeSubject: BehaviorSubject<boolean>;
    readonly rotateSubject: Subject<number>;
    readonly searchSubject: Subject<SearchOperation>;
    readonly searchResultsCountSubject: Subject<SearchResultsCount>;
    readonly zoomSubject: Subject<number>;
    readonly stepZoomSubject: Subject<number>;
    readonly zoomValueSubject: BehaviorSubject<number>;
    readonly pageCountSubject: Subject<number>;
    readonly printSubject: Subject<void>;
    readonly downloadSubject: Subject<void>;
    readonly setCurrentPageSubject: Subject<number>;
    readonly setCurrentPageInputValueSubject: Subject<number>;
    readonly changePageByDeltaSubject: Subject<number>;
    readonly showCommentSummary: BehaviorSubject<boolean>;
    readonly grabNDrag: BehaviorSubject<boolean>;
    readonly saveRotationSubject: Subject<void>;
    readonly redactionMode: BehaviorSubject<boolean>;
    readonly redactionPreview: Subject<boolean>;
    readonly applyRedactToDocument: Subject<void>;
    readonly clearAllRedactMarkers: Subject<void>;
    readonly redactWholePage: Subject<void>;
    readonly redactionSerachSubject: Subject<RedactionSearch>;
    readonly redactAllInProgressSubject: BehaviorSubject<boolean>;
    readonly openRedactionSearch: BehaviorSubject<SearchMode>;
    readonly sidebarOpen: BehaviorSubject<boolean>;
    readonly sidebarOutlineView: BehaviorSubject<boolean>;
    readonly searchBarHidden: BehaviorSubject<boolean>;
    readonly commentsPanelVisible: BehaviorSubject<boolean>;
    /**
     * Reset the stateful behaviour subjects
     */
    reset(): void;
    toggleHighlightMode(): void;
    toggleDrawMode(): void;
    toggleHighlightToolbar(): void;
    rotate(angle: number): void;
    search(phrase: SearchOperation): void;
    getSearchResultsCount(): Observable<SearchResultsCount>;
    zoom(value: number): void;
    stepZoom(value: number): void;
    getZoomValue(): Observable<number>;
    getPageCount(): Observable<number>;
    print(): void;
    download(): void;
    setPage(value: number): void;
    incrementPage(value: number): void;
    getCurrentPageNumber(): Observable<number>;
    getShowCommentSummary(): Observable<boolean>;
    toggleCommentsSummary(value: boolean): void;
    saveRotation(): void;
    toggleGrabNDrag(): void;
    toggleSideBar(toggle: boolean): void;
    toggleSideBarView(toggle: boolean): void;
    toggleRedactionMode(): void;
    toggleRedactionPreview(viewMode: boolean): void;
    unmarkAll(): void;
    applyRedactionToDocument(): void;
    redactPage(): void;
    toggleCommentsPanel(isVisible: boolean): void;
    toggleParticipantsList(isVisible: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ToolbarEventService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ToolbarEventService>;
}
//# sourceMappingURL=toolbar-event.service.d.ts.map