import { Bookmark } from './../../../../store/models/bookmarks.interface';
import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { Store } from '@ngrx/store';
import { Subscription } from 'rxjs';
import { AnnotationSetState } from '../../../../store/reducers/annotations.reducer';
import { DocumentPages } from '../../../../store/reducers/document.reducer';
import * as fromBookmarks from '../../../../store/reducers/bookmarks.reducer';
import { ArrayDataSource, SelectionModel } from '@angular/cdk/collections';
import { FlatTreeControl } from '@angular/cdk/tree';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import * as i0 from "@angular/core";
export declare class BookmarksComponent implements OnInit, OnDestroy, OnChanges {
    private store;
    set bookmarkNodes(value: Bookmark[]);
    get bookmarkNodes(): Bookmark[];
    zoom: number;
    rotate: number;
    parentScrollTop: number;
    goToDestination: EventEmitter<any[]>;
    treeHasChanged: EventEmitter<boolean>;
    private _bookmarkNodes;
    datasource: ArrayDataSource<Bookmark>;
    treeControl: FlatTreeControl<Bookmark>;
    hoveredNode: Bookmark;
    hoverHtmlElement: HTMLElement;
    expansionModel: SelectionModel<Bookmark>;
    isDraggingOn: boolean;
    isUserdragging: boolean;
    expandTimeout: any;
    expandDelay: number;
    dragNodeInsertToParent: boolean;
    pageLookup: {
        [pageId: number]: DocumentPages;
    };
    editableBookmark: string;
    BOOKMARK_CHAR_LIMIT: number;
    dragNode: any;
    dragNodeExpandOverWaitTimeMs: number;
    dragNodeExpandOverNode: any;
    dragNodeExpandOverTime: number;
    dragNodeExpandOverArea: number;
    options: {
        allowDrag: boolean;
        allowDrop: boolean;
    };
    $subscription: Subscription;
    private sortMode;
    private readonly _customSort;
    private readonly _positionSort;
    constructor(store: Store<fromBookmarks.BookmarksState | AnnotationSetState>);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    editBookmark(id: any): void;
    onAddBookmarkClick(): void;
    deleteBookmark2(node: Bookmark): void;
    updateBookmark(bookmark: Bookmark, name: any): void;
    goToBookmark(bookmark: Bookmark): void;
    get customSort(): string;
    get positionSort(): string;
    sort(mode: string): void;
    private sortBookmarks;
    private positionSortBookmarks;
    private customSortBookmarks;
    private scaledY;
    hasChild: (_: number, node: Bookmark) => boolean;
    getNode(bookmarks: any, parentId: any): any;
    drop(event: CdkDragDrop<Bookmark>): void;
    private getSiblingFromAllSibliings;
    dragStart(): void;
    dragEnd(): void;
    dragHover(event: any, node: Bookmark): void;
    dragHoverEnd(event: any, node: Bookmark): void;
    onNodeExpand(node: Bookmark): "toggle-children-wrapper-expanded" | "toggle-children-wrapper-collapsed";
    visibleNodes(bookmarks: Bookmark[]): Bookmark[];
    findNodeSiblings(arr: Array<any>, id: string): Array<any>;
    rebuildTreeForData(data: any): void;
    isToNodeChildOfFromNode(fromNodeChildren: Bookmark[], toNode: Bookmark): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<BookmarksComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BookmarksComponent, "mv-bookmarks", never, { "bookmarkNodes": { "alias": "bookmarkNodes"; "required": false; }; "zoom": { "alias": "zoom"; "required": false; }; "rotate": { "alias": "rotate"; "required": false; }; "parentScrollTop": { "alias": "parentScrollTop"; "required": false; }; }, { "goToDestination": "goToDestination"; "treeHasChanged": "treeHasChanged"; }, never, never, false, never>;
}
//# sourceMappingURL=bookmarks.component.d.ts.map