import * as i0 from '@angular/core'; import { OnInit, OnDestroy, OnChanges, AfterViewInit, ElementRef, EventEmitter, TemplateRef, SimpleChanges, ModuleWithProviders } from '@angular/core'; import * as i2 from '@angular/common'; interface ActionExecutionResult { actionId: string; success: boolean; error?: string; timestamp: number; } type ChangedPage = number; type ChangedScale = number; interface ChangedRotation { rotation: number; page: number; } interface ControlVisibilityConfig { openFile?: boolean; download?: boolean; print?: boolean; fullScreen?: boolean; find?: boolean; viewBookmark?: boolean; annotations?: boolean; } interface GroupVisibilityConfig { toolbarLeft?: boolean; toolbarMiddle?: boolean; toolbarRight?: boolean; secondaryToolbarToggle?: boolean; sidebar?: boolean; sidebarLeft?: boolean; sidebarRight?: boolean; } type ToolbarDensity = "default" | "compact" | "comfortable"; type ToolbarPosition = "top" | "bottom"; type SidebarPosition = "left" | "right"; interface LayoutConfig { toolbarDensity?: ToolbarDensity; sidebarWidth?: string; toolbarPosition?: ToolbarPosition; sidebarPosition?: SidebarPosition; responsiveBreakpoint?: string | number; } interface AutoActionConfig { downloadOnLoad?: boolean; printOnLoad?: boolean; showLastPageOnLoad?: boolean; rotateCW?: boolean; rotateCCW?: boolean; } interface ErrorConfig { message?: string; override?: boolean; append?: boolean; } interface ViewerConfig { showSpinner?: boolean; useOnlyCssZoom?: boolean; diagnosticLogs?: boolean; locale?: string; } interface ThemeConfig { theme?: "light" | "dark" | "auto"; primaryColor?: string; backgroundColor?: string; pageBorderColor?: string; pageSpacing?: { margin?: string; spreadMargin?: string; border?: string; }; toolbarColor?: string; textColor?: string; borderRadius?: string; customCSS?: string; cspNonce?: string; iframeTitle?: string; } interface DocumentError { message: string; source?: any; name?: string; } interface PagesInfo { pagesCount: number; } interface PresentationMode { active: boolean; switchInProgress?: boolean; } interface FindOperation { query: string; phraseSearch: boolean; caseSensitive: boolean; entireWord?: boolean; highlightAll?: boolean; findPrevious?: boolean; } interface FindMatchesCount { current: number; total: number; } interface DocumentMetadata { title?: string; author?: string; subject?: string; keywords?: string; creator?: string; producer?: string; creationDate?: string; modificationDate?: string; pdfFormatVersion?: string; isLinearized?: boolean; isAcroFormPresent?: boolean; isXFAPresent?: boolean; isCollectionPresent?: boolean; } interface DocumentOutline { items?: any[]; hasOutline: boolean; } interface PageRenderInfo { pageNumber: number; source?: string; timestamp?: number; } interface AnnotationLayerRenderEvent { pageNumber: number; error?: Error; timestamp: number; } interface BookmarkClick { title: string; dest: string | null; action?: string; url?: string; pageNumber?: number; isCurrentItem: boolean; } declare class PdfJsViewerComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit { iframe: ElementRef; static lastID: number; viewerId: string; onBeforePrint: EventEmitter; onAfterPrint: EventEmitter; onDocumentLoad: EventEmitter; onPageChange: EventEmitter; onScaleChange: EventEmitter; onRotationChange: EventEmitter; onDocumentError: EventEmitter; onDocumentInit: EventEmitter; onPagesInit: EventEmitter; onPresentationModeChanged: EventEmitter; onOpenFile: EventEmitter; onFind: EventEmitter; onUpdateFindMatchesCount: EventEmitter; onMetadataLoaded: EventEmitter; onOutlineLoaded: EventEmitter; onPageRendered: EventEmitter; onAnnotationLayerRendered: EventEmitter; onBookmarkClick: EventEmitter; onIdle: EventEmitter; viewerFolder: string; externalWindow: boolean; target: string; showSpinner: boolean; downloadFileName: string; locale: string; useOnlyCssZoom: boolean; set diagnosticLogs(value: boolean); get diagnosticLogs(): boolean; private _diagnosticLogs; showOpenFile: boolean; showAnnotations: boolean; showDownload: boolean; showViewBookmark: boolean; showPrint: boolean; showFullScreen: boolean; showFind: boolean; downloadOnLoad: boolean; printOnLoad: boolean; rotateCW: boolean; rotateCCW: boolean; showLastPageOnLoad: boolean; namedDest: string; errorOverride: boolean; errorAppend: boolean; errorMessage: string; urlValidation: boolean; customSecurityTpl: TemplateRef; securityWarning: { message: string; originalUrl: string; currentUrl: string; } | null; theme: "light" | "dark" | "auto"; primaryColor?: string; backgroundColor?: string; pageBorderColor?: string; pageSpacing?: { margin?: string; spreadMargin?: string; border?: string; }; toolbarColor?: string; textColor?: string; borderRadius?: string; customCSS?: string; cspNonce?: string; iframeTitle?: string; customSpinnerTpl?: TemplateRef; spinnerClass?: string; customErrorTpl?: TemplateRef; errorClass?: string; showToolbarLeft: boolean; showToolbarMiddle: boolean; showToolbarRight: boolean; showSecondaryToolbarToggle: boolean; showSidebar: boolean; showSidebarLeft: boolean; showSidebarRight: boolean; toolbarDensity: ToolbarDensity; sidebarWidth?: string; toolbarPosition: ToolbarPosition; sidebarPosition: SidebarPosition; responsiveBreakpoint?: string | number; isLoading: boolean; private hasFirstRender; hasError: boolean; currentErrorMessage: string; errorTemplateData: any; getErrorTemplateData(): any; getIframeClasses(): string; reloadViewer(): void; goBack(): void; closeViewer(): void; set controlVisibility(config: ControlVisibilityConfig); set autoActions(config: AutoActionConfig); set errorHandling(config: ErrorConfig); set viewerConfig(config: ViewerConfig); set themeConfig(config: ThemeConfig); set groupVisibility(config: GroupVisibilityConfig); set layoutConfig(config: LayoutConfig); private setDeprecatedProperty; /** @deprecated Use `downloadOnLoad` instead. This property will be removed in a future version. */ set startDownload(value: boolean); /** @deprecated Use `printOnLoad` instead. This property will be removed in a future version. */ set startPrint(value: boolean); /** @deprecated Use `showOpenFile` instead. This property will be removed in a future version. */ set openFile(value: boolean); /** @deprecated Use `showDownload` instead. This property will be removed in a future version. */ set download(value: boolean); /** @deprecated Use `showPrint` instead. This property will be removed in a future version. */ set print(value: boolean); /** @deprecated Use `showFullScreen` instead. This property will be removed in a future version. */ set fullScreen(value: boolean); /** @deprecated Use `showFind` instead. This property will be removed in a future version. */ set find(value: boolean); /** @deprecated Use `showViewBookmark` instead. This property will be removed in a future version. */ set viewBookmark(value: boolean); /** @deprecated Use `showLastPageOnLoad` instead. This property will be removed in a future version. */ set lastPage(value: boolean); externalWindowOptions: string; viewerTab: any; iframeBorder: string | number; private _src; private _page; private isPostMessageReady; private postMessageReadiness; private pendingInitialConfig; private initialConfigQueued; private actionQueueManager; private changeOriginTracker; private messageIdCounter; private pendingMessages; private pendingChanges; private relaseUrl?; private _zoom; private _rotation; private _cursor; private _scroll; private _spread; private _pageMode; zoomChange: EventEmitter; cursorChange: EventEmitter; scrollChange: EventEmitter; spreadChange: EventEmitter; pageModeChange: EventEmitter; /** * Two-way binding for zoom level * Supports: auto, page-fit, page-width, page-actual, percentage values (e.g., "150%") */ get zoom(): string; set zoom(value: string); /** * One-way binding for document rotation * Supports: 0, 90, 180, 270 degrees */ set rotation(value: number); get rotation(): number; /** * Two-way binding for cursor mode * Supports: select, hand, zoom */ get cursor(): string; set cursor(value: string); /** * Two-way binding for scroll mode * Supports: vertical, horizontal, wrapped, page */ get scroll(): string; set scroll(value: string); /** * Two-way binding for spread mode * Supports: none, odd, even */ get spread(): string; set spread(value: string); /** * Two-way binding for page mode (sidebar state) * Supports: none, thumbs, bookmarks, attachments */ get pageMode(): string; set pageMode(value: string); set page(_page: number); get page(): number; set pdfSrc(_src: string | Blob | Uint8Array); get pdfSrc(): string | Blob | Uint8Array; get PDFViewerApplicationOptions(): any; get PDFViewerApplication(): any; ngOnInit(): void; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; private generateMessageId; private sendControlMessage; private handleControlResponse; private setupMessageListener; private handleStateChangeNotification; private handleEventNotification; private mapPropertyToAction; private updateViewerControl; private applyChanges; private applyPendingChanges; private processChangesForQueuing; /** * Waits for the PDF.js viewer to be ready, and binds the the event bus. */ private bindToPdfJsEventBus; private queueAllConfigurations; private queueAutoActionsForDocumentLoad; private queueConfiguration; refresh(): void; sendViewerControlMessage(action: string, payload: any): Promise; triggerDownload(): Promise; triggerPrint(): Promise; setPage(page: number): Promise; setZoom(zoom: string): Promise; goToLastPage(): Promise; setCursor(cursor: string): Promise; setScroll(scroll: string): Promise; setSpread(spread: string): Promise; triggerRotation(direction: "cw" | "ccw"): Promise; goToPage(page: number): Promise; getActionStatus(actionId: string): "pending" | "executing" | "completed" | "failed" | "not-found"; getQueueStatus(): { queuedActions: number; executedActions: number; }; clearActionQueue(): void; /** * Enable or disable URL validation security feature * When enabled, prevents users from modifying the file parameter in the viewer URL * @param enabled - Whether to enable URL validation (default: true) * @returns Promise */ setUrlValidation(enabled?: boolean): Promise; /** * Dismiss the security warning */ dismissSecurityWarning(): void; private loadPdf; private validatePdfSource; private setupExternalWindow; private renderLoadingSpinner; private createFileUrl; private buildViewerUrl; private getBaseViewerUrl; private addFileParameter; private addViewerIdParameter; private addCacheBustingIfNeeded; private isDevelopmentMode; private navigateToViewer; private logViewerConfiguration; private applyZoomToViewer; private applyRotationToViewer; private applyCursorToViewer; private applyScrollToViewer; private applySpreadToViewer; private applyPageModeToViewer; private dispatchAction; private getRequiredReadinessLevel; private hasRequiredReadiness; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class PdfJsViewerModule { static forRoot(): ModuleWithProviders; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { PdfJsViewerComponent, PdfJsViewerModule }; export type { AnnotationLayerRenderEvent, AutoActionConfig, BookmarkClick, ChangedRotation, ChangedScale, ControlVisibilityConfig, DocumentError, DocumentMetadata, DocumentOutline, ErrorConfig, FindMatchesCount, FindOperation, GroupVisibilityConfig, LayoutConfig, PageRenderInfo, PagesInfo, PresentationMode, SidebarPosition, ThemeConfig, ToolbarDensity, ToolbarPosition, ViewerConfig };