import '@fortawesome/fontawesome-free/js/all.min';
import { EventEmitter } from '../../stencil-public-runtime';
import { Page } from '../../models/page';
import { Paragraph } from '../../models/paragraph';
import { Decorator } from '../../models/decorator';
import { ReadStyle } from '../../models/read-style';
import { BookReaderEvent, ContextMenuAction, ScrollDirectionAction } from '../../events/events';
import { Selection } from '../../models/selection';
export declare class BookReader {
  config: any;
  pages: Page[];
  pages2: Page[];
  readStyle: ReadStyle;
  decorators: Decorator[];
  isMenuOpened: boolean;
  bookReady: EventEmitter<BookReaderEvent<string, string>>;
  bookUpdated: EventEmitter<BookReaderEvent<string, string>>;
  selection: EventEmitter<BookReaderEvent<string, Selection>>;
  decorator: EventEmitter<BookReaderEvent<string, Decorator>>;
  comparison: EventEmitter<BookReaderEvent<string, Paragraph>>;
  stopScrolling: EventEmitter<BookReaderEvent<string, string>>;
  contextMenuItem: EventEmitter<BookReaderEvent<ContextMenuAction, Selection>>;
  scrollDirection: EventEmitter<BookReaderEvent<ScrollDirectionAction, string>>;
  private printed;
  private scrollTimer;
  private lastScrollTop;
  private menuAnchor;
  private container;
  private decoratorManager;
  private selectionManager;
  constructor();
  getConfig(): Promise<any>;
  setConfig(config: any): Promise<void>;
  setPages(pages: Page[]): Promise<void>;
  setAllPages(pages: Page[], pages2: Page[]): Promise<void>;
  setDecorators(decorators: Decorator[]): Promise<void>;
  getReadStyle(): Promise<ReadStyle>;
  setReadStyle(style: ReadStyle): Promise<void>;
  goToPage(no: number, shift?: number): Promise<void>;
  goToParagraph(page: number, parag: number, shift?: number): Promise<void>;
  goToElementById(id: string, shift?: number): Promise<void>;
  getFirstVisibleElementOnViewport(): Promise<string>;
  highlightKeywords(elementId: string, keywords: string[]): Promise<void>;
  langComparisonHandler(event: CustomEvent<Paragraph>): void;
  menuItemClickedHandler(event: CustomEvent<BookReaderEvent<ContextMenuAction, Selection>>): void;
  handleScroll(_: Event): void;
  handleDocumentClick(e: Event): void;
  handleDocumentMouseDown(e: Event): void;
  handleSelection(_: BookReaderEvent<string, Selection>): void;
  componentDidLoad(): void;
  componentDidUpdate(): void;
  private publishSelectionEvent;
  private publishDecoratorEvent;
  private onStopScrolling;
  private publishScrollDirections;
  private applyStyle;
  private getContextMenuAnchor;
  private getItemToRender;
  render(): any;
}
