/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';
import { LoaderSettings } from './models/loader-settings';
import { TypedArray } from '@progress/kendo-pdfviewer-common';
import { PDFViewerContext } from './models/pdfviewer-context';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { PDFViewerDownloadEvent, PDFViewerErrorEvent, PDFViewerLoadEvent, PDFViewerPageChangeEvent, PDFViewerZoomChangeEvent } from './models/events';
import { SaveOptions } from '@progress/kendo-file-saver';
import { PageChangeEvent } from '@progress/kendo-angular-pager';
import { ZoomLevel } from './models/zoom-level';
import { PDFViewerTool } from './models/toolbar-tool';
import { ToolbarComponent } from './toolbar/toolbar.component';
import 'pdfjs-dist/build/pdf.worker.min.mjs';
import * as i0 from "@angular/core";
/**
* Represents the [Kendo UI PDFViewer component for Angular](slug:overview_pdfviewer).
*
* @example
* ```html
*
*
* ```
*
* @remarks
* Supported children components are: {@link PDFViewerCustomMessagesComponent}
*/
export declare class PDFViewerComponent implements OnInit, OnDestroy {
private ngZone;
private renderer;
private localizationService;
private cdr;
private host;
hostClass: boolean;
direction: string;
/**
* Represents the tools collection rendered in the toolbar.
* @default ['pager', 'spacer', 'zoomInOut', 'zoom', 'selection', 'spacer', 'search', 'open', 'download', 'print' ]
*/
tools: PDFViewerTool[];
/**
* The configuration of the internal Loader component.
* @default { size: 'large', type: 'pulsing', themeColor: 'primary' }
*/
loaderSettings: LoaderSettings;
/**
* The name of the file that will be saved when the end user clicks the Download tool.
* @default 'Download'
*/
saveFileName: string;
/**
* Represents the options for saving the file when the end user clicks the Download tool.
* @default {}
*/
saveOptions: SaveOptions;
/**
* Represents the url of the PDF file.
*/
url: string | undefined;
/**
* Represents the data of the PDF file in [Base64 format](https://developer.mozilla.org/en-US/docs/Glossary/Base64).
*/
data: string | undefined;
/**
* Represents the raw [binary data buffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) of the PDF file.
*/
arrayBuffer: ArrayBuffer | undefined;
/**
* Represents the data of the PDF file in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) format.
*/
typedArray: TypedArray | undefined;
/**
* Sets the initial zoom level of the PDF document
* ([see example](slug:tools_pdfviewer#zooming-tools)).
*
* @default 1.25
*/
set zoom(value: number | 'fitToPage' | 'fitToWidth');
get zoom(): number;
/**
* Represents the step the zoom level will be changed with when using the **ZoomIn** and **ZoomOut** tools.
* @default 0.25
*/
zoomRate: number;
/**
* Represents minimum allowed zoom value.
* @default 0.5
*/
minZoom: number;
/**
* Represents maximum allowed zoom value.
* @default 4
*/
maxZoom: number;
/**
* Sets whether the component loads all PDF document pages at once or loads new pages on demand when needed.
*
* @default false
*/
loadOnDemand: boolean;
/**
* Sets the number of pages to load on demand when the `loadOnDemand` property is `true`.
*
* @default 1
*/
loadOnDemandPageSize: number;
/**
* Fires when the component loads a PDF document successfully.
*/
load: EventEmitter;
/**
* Fires when an error occurs while loading or downloading the PDF document.
*/
error: EventEmitter;
/**
* Fires when the user clicks the **Download** tool of the loaded PDF document.
*/
download: EventEmitter;
/**
* Fires when the user changes the page of the loaded PDF document.
*/
pageChange: EventEmitter;
/**
* Fires when the user changes the zoom level of the loaded PDF document.
*/
zoomLevelChange: EventEmitter;
private pagesContainer;
/**
* Returns the current page number of the loaded PDF document.
*/
get currentPage(): number;
set pdfContext(doc: PDFViewerContext);
/**
* Exposes the loaded `PDF.js` document, its pages, and their DOM element wrapper.
*/
get pdfContext(): PDFViewerContext;
/**
* @hidden
*/
get activePageId(): string;
/**
* @hidden
*/
get pagesContainerId(): string;
loading: boolean;
searchActive: boolean;
matchCase: boolean;
currentMatches: any[];
currentMatch: number;
/**
* @hidden
*/
set enabledSelection(value: boolean);
/**
* @hidden
*/
get enabledSelection(): boolean;
/**
* @hidden
*/
showLicenseWatermark: boolean;
skip: number;
zoomOptionsData: ({
id: number;
text: string;
type: string;
displayValue: string;
value: number;
} | {
id: number;
text: string;
displayValue: string;
value: number;
type?: undefined;
})[];
zoomLevel: ZoomLevel;
private _pdfContext;
private _enabledSelection;
private _zoom;
private _fitType;
private _zoomToFit;
private subs;
private emitLoad;
constructor(ngZone: NgZone, renderer: Renderer2, localizationService: LocalizationService, cdr: ChangeDetectorRef, host: ElementRef);
ngOnInit(): void;
ngOnDestroy(): void;
ngOnChanges(changes: SimpleChanges): void;
/**
* Scrolls the PDFViewer document to the specified page number, treating 0 as the first page
* ([see example](slug:tools_pdfviewer#programmatically-scrolling-the-pdfviewer)).
*/
scrollToPage(page: number): void;
/**
* @hidden
*/
onFileSelect(e: string | ArrayBuffer): void;
/**
* @hidden
*/
onFileSelectError(e: any): void;
/**
* @hidden
*/
onPageChange(e: PageChangeEvent): void;
/**
* @hidden
*/
onDownload(): void;
/**
* @hidden
*/
stopPropagation: (e: any) => void;
/**
* @hidden
*/
onZoomIn(): void;
/**
* @hidden
*/
onZoomOut(): void;
/**
* @hidden
*/
onZoomLevelChange(zoomLevel: ZoomLevel, emit?: boolean): void;
/**
* @hidden
*/
onSearch(): void;
/**
* @hidden
*/
onPrint(): void;
/**
* @hidden
*/
onSearchChange(e: {
text: string;
matchCase: boolean;
}): void;
/**
* @hidden
*/
closeSearch(toolbar: ToolbarComponent): void;
/**
* @hidden
*/
onNextMatch(): void;
/**
* @hidden
*/
onPreviousMatch(): void;
private pdfViewerWidget;
private loadPdf;
private assignPageIds;
private setZoomLevel;
private verifySettings;
private isSet;
private scrollHandler;
private loadHandler;
private zoomEndHandler;
private errorHandler;
private zoneAwareEmitter;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}