import { FormFieldValue, PdfAttachmentObject, PdfFile, PdfMetadataObject, PdfSignatureObject, PdfTextRectObject, PdfWidgetAnnoObject, Task, Logger, PdfAnnotationObject, PdfBookmarksObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, PdfErrorReason, PdfPageFlattenResult, SearchAllPagesResult, PdfFileUrl, PdfGlyphObject, PdfPageGeometry, PageTextSlice, AnnotationCreateContext, PdfPageSearchProgress, PdfRenderThumbnailOptions, PdfSearchAllPagesOptions, PdfFlattenPageOptions, PdfRedactTextOptions, PdfRenderPageAnnotationOptions, PdfRenderPageOptions, PdfOpenDocumentUrlOptions, PdfOpenDocumentBufferOptions, PdfAnnotationsProgress, PdfPrintOptions, PdfBookmarkObject, PdfAddAttachmentParams } from '@elhalawany/models'; import { ExecuteRequest } from './runner'; /** * Task that executed by webworker */ export declare class WorkerTask extends Task { worker: Worker; private messageId; /** * Create a task that bind to web worker with specified message id * @param worker - web worker instance * @param messageId - id of message * * @public */ constructor(worker: Worker, messageId: string); /** * {@inheritDoc @elhalawany/models!Task.abort} * * @override */ abort(e: PdfErrorReason): void; /** * {@inheritDoc @elhalawany/models!Task.progress} * * @override */ progress(p: P): void; } /** * PDF engine that runs within webworker */ export declare class WebWorkerEngine implements PdfEngine { private worker; private logger; static readyTaskId: string; /** * Task that represent the state of preparation */ readyTask: WorkerTask; /** * All the tasks that is executing */ tasks: Map>; /** * Create an instance of WebWorkerEngine, it will create a worker with * specified url. * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner} * @param logger - logger instance * * @public */ constructor(worker: Worker, logger?: Logger); /** * Handle event from web worker. There are 2 kinds of event * 1. ReadyResponse: web worker is ready * 2. ExecuteResponse: result of execution * @param evt - message event from web worker * @returns * * @private */ handle: (evt: MessageEvent) => void; /** * Generate a unique message id * @returns message id * * @private */ generateRequestId(id: string): string; /** * {@inheritDoc @elhalawany/models!PdfEngine.initialize} * * @public */ initialize(): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.destroy} * * @public */ destroy(): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.openDocumentUrl} * * @public */ openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.openDocument} * * @public */ openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getMetadata} * * @public */ getMetadata(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.setMetadata} * * @public */ setMetadata(doc: PdfDocumentObject, metadata: Partial): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getDocPermissions} * * @public */ getDocPermissions(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getDocUserPermissions} * * @public */ getDocUserPermissions(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getBookmarks} * * @public */ getBookmarks(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.setBookmarks} * * @public */ setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.deleteBookmarks} * * @public */ deleteBookmarks(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getSignatures} * * @public */ getSignatures(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.renderPage} * * @public */ renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.renderPageRect} * * @public */ renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.renderAnnotation} * * @public */ renderPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, options?: PdfRenderPageAnnotationOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getAllAnnotations} * * @public */ getAllAnnotations(doc: PdfDocumentObject): WorkerTask, PdfAnnotationsProgress>; /** * {@inheritDoc @elhalawany/models!PdfEngine.getPageAnnotations} * * @public */ getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.createPageAnnotation} * * @public */ createPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext): WorkerTask; updatePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.removePageAnnotation} * * @public */ removePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getPageTextRects} * * @public */ getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.renderThumbnail} * * @public */ renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderThumbnailOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.searchAllPages} * * @public */ searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.saveAsCopy} * * @public */ saveAsCopy(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getAttachments} * * @public */ getAttachments(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.addAttachment} * * @public */ addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.removeAttachment} * * @public */ removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.readAttachmentContent} * * @public */ readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.setFormFieldValue} * * @public */ setFormFieldValue(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfWidgetAnnoObject, value: FormFieldValue): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.flattenPage} * * @public */ flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.extractPages} * * @public */ extractPages(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.redactTextInQuads} * * @public */ redactTextInRects(doc: PdfDocumentObject, page: PdfPageObject, rects: Rect[], options?: PdfRedactTextOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.extractText} * * @public */ extractText(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getTextSlices} * * @public */ getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getPageGlyphs} * * @public */ getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.getPageGeometry} * * @public */ getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.merge} * * @public */ merge(files: PdfFile[]): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.mergePages} * * @public */ mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[]; }>): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.preparePrintDocument} * * @public */ preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.closeDocument} * * @public */ closeDocument(doc: PdfDocumentObject): WorkerTask; /** * {@inheritDoc @elhalawany/models!PdfEngine.closeAllDocuments} * * @public */ closeAllDocuments(): WorkerTask; /** * Send the request to webworker inside and register the task * @param task - task that waiting for the response * @param request - request that needs send to web worker * @param transferables - transferables that need to transfer to webworker * @returns * * @internal */ proxy(task: WorkerTask, request: ExecuteRequest, transferables?: any[]): void; }