import { OnInit, ElementRef, OnChanges, SimpleChanges, EventEmitter, OnDestroy, ChangeDetectorRef, AfterViewInit } from '@angular/core'; import { DomSanitizer, SafeHtml, SafeResourceUrl } from '@angular/platform-browser'; import * as i0 from "@angular/core"; declare global { interface Window { pdfjsLib: any; } } export type ViewMode = 'continuous' | 'page'; export interface ToolbarConfig { showPrint?: boolean; showZoom?: boolean; showRotation?: boolean; showNavigation?: boolean; showPageInput?: boolean; showFitToWidth?: boolean; showFullscreen?: boolean; showSearch?: boolean; showThumbnails?: boolean; showViewModeToggle?: boolean; } export interface ViewerConfig { defaultViewMode?: ViewMode; enablePrint?: boolean; enableZoom?: boolean; enableNavigation?: boolean; enableViewModeToggle?: boolean; pdfWorkerSrc?: string; theme?: 'light' | 'dark'; height?: string; useGoogleDocsViewer?: boolean; forceChapterStartOnNewPage?: boolean; enableWatermark?: boolean; watermarkText?: string; watermarkOpacity?: number; disableCopy?: boolean; disableRightClick?: boolean; enableKeyboardShortcuts?: boolean; mobileOptimized?: boolean; autoFitMobile?: boolean; mobileScale?: number; } export interface PageChangeEvent { page: number; totalPages: number; type: 'pdf' | 'word' | 'excel' | 'ppt'; viewMode: ViewMode; } export declare class NgxUniversalFileViewerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit { private sanitizer; private cdr; private platformId; pdfCanvas: ElementRef; canvasContainer: ElementRef; canvasWrapper: ElementRef; continuousContainer: ElementRef; wordRoot: ElementRef; viewerContainer: ElementRef; src: string | ArrayBuffer | Blob; fileType: 'auto' | 'pdf' | 'word' | 'excel' | 'ppt'; showToolbar: boolean; toolbarConfig: ToolbarConfig; viewerConfig: ViewerConfig; viewMode: ViewMode; onLoad: EventEmitter; onError: EventEmitter; pageChange: EventEmitter; viewModeChange: EventEmitter; isLoading: boolean; loadingMessage: string; loadingProgress: number; errorMessage: string; pdfDocument: any; currentPage: number; totalPages: number; scale: number; rotation: number; pdfPagesArray: number[]; private pdfLib; private renderTask; useGoogleViewer: boolean; isPublicUrl: boolean; googleDocsViewerUrl: SafeResourceUrl; wordZoom: number; excelContent: SafeHtml; excelSheets: string[]; currentSheet: number; workbook: any; currentSlide: number; totalSlides: number; slideContent: SafeHtml; slides: string[]; isMobileView: boolean; showMobileMenu: boolean; isFullscreen: boolean; showKeyboardHelp: boolean; private touchStartX; private touchStartY; private initialPinchDistance; private lastScale; private isBrowser; private resizeObserver; private renderDebounce; private viewerReady; constructor(sanitizer: DomSanitizer, cdr: ChangeDetectorRef, platformId: Object); ngOnInit(): void; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private setupResizeObserver; private onContainerResize; onWindowResize(): void; checkMobileView(): void; applyMobileDefaults(): void; toggleMobileMenu(): void; closeMobileMenu(): void; onTouchStart(e: TouchEvent): void; onTouchMove(e: TouchEvent): void; onTouchEnd(_: TouchEvent): void; onContextMenu(e: MouseEvent): boolean; handleKey(e: KeyboardEvent): void; toggleKeyboardHelp(): void; toggleFullscreen(): void; initializePdfJs(): Promise; loadFile(): Promise; detectFileType(): void; loadPDF(): Promise; private getPdfData; /** * Calculates the correct scale so the PDF fills the available container * width. Works for both page-mode (canvasContainer) and continuous-mode * (continuousContainer). */ fitToWidthAsync(): Promise; /** Public toolbar button — fit then re-render. */ fitToWidth(): Promise; private renderCurrentView; private cancelRenderTask; renderPage(pageNum: number): Promise; renderPageToContinuous(pageNum: number): Promise; renderAllPages(): Promise; /** * Polls until `this.pdfCanvas` ViewChild is non-null. * Falls back after `maxMs` milliseconds. */ private waitForCanvas; /** * Polls until `document.getElementById('pdf-page-N')` is non-null. * Falls back after `maxMs` milliseconds. */ private waitForContinuousCanvas; onContinuousScroll(e: Event): void; toggleViewMode(): void; firstPage(): void; lastPage(): void; previousPage(): void; nextPage(): void; goToPage(): void; zoomIn(): void; zoomOut(): void; resetZoom(): void; changeZoom(): void; rotate(deg: number): void; private debouncedRender; loadWord(): Promise; zoomInWord(): void; zoomOutWord(): void; resetWordZoom(): void; fitToPageWidth(): void; loadExcel(): Promise; renderExcelSheet(idx: number): void; onSheetChange(): void; loadPPT(): Promise; renderSlide(n: number): void; previousSlide(): void; nextSlide(): void; retry(): void; private waitForDom; getArrayBuffer(): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }