import * as _angular_core from '@angular/core'; import { OnDestroy, Signal, ElementRef, AfterViewInit, OnChanges, OnInit, AfterViewChecked, SimpleChanges, InjectionToken, Type, Provider } from '@angular/core'; import * as _angular_platform_browser from '@angular/platform-browser'; import { SafeHtml, SafeResourceUrl } from '@angular/platform-browser'; import { TranslateService } from '@ngx-translate/core'; import * as pdfjs_dist_types_src_display_api from 'pdfjs-dist/types/src/display/api'; import { HttpClient } from '@angular/common/http'; import { PDFDocumentProxy } from 'pdfjs-dist'; import * as PDFJSViewer from 'pdfjs-dist/web/pdf_viewer.mjs'; import * as monaco from 'monaco-editor'; declare class YuvMediaViewerComponent implements OnDestroy { #private; id: _angular_core.InputSignal; type: _angular_core.InputSignal; metadata: _angular_core.InputSignal; src: _angular_core.InputSignal; extendedData: _angular_core.Signal; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface JsonSchemaConfig { uri: string; schema: any; fileMatch?: string[]; } interface TypeScriptConfig { compilerOptions?: any; extraLibs?: Array<{ content: string; filePath: string; }>; } interface DiffConfig { enabled: true; originalSrc: string; modifiedLabel?: string; originalLabel?: string; } interface MonacoDirectMetadata { type: 'monaco-direct'; theme?: 'dark' | 'light'; jsonSchema?: JsonSchemaConfig; typescript?: TypeScriptConfig; diff?: DiffConfig; editorOptions?: { readOnly?: boolean; lineNumbers?: 'on' | 'off' | 'relative' | 'interval'; minimap?: { enabled: boolean; }; wordWrap?: 'on' | 'off' | 'wordWrapColumn' | 'bounded'; fontSize?: number; }; } interface AudioMetadata { type: 'audio'; mode?: 'oscilloscope' | 'frequency' | 'off'; disableDocumentPictureInPicture?: boolean; } interface VideoMetadata { type: 'video'; disablePictureInPicture?: boolean; } interface ImageMetadata { type: 'image'; disableMenu?: boolean; } interface EmailDetails { subject: string; from: string; to: string[]; cc?: string[]; bcc?: string[]; sent: Date; message: string; } type HeaderDetails = Omit; type Email = Omit; type AttachmentsData = { id: string; label: string; iconRef: SafeHtml; icon: string; }; interface EmailMetadata { type: 'EMAIL'; header: Email; attachments: string[]; theme: string; } interface MetadatUser { userSettings: { locale: string; }; username: string; lastname: string; firstname: string; } interface OfficeMetadata { type: 'office'; id: string; dmsObject: Record; editable?: boolean; user: MetadatUser; sendEvent?: boolean; version?: number; } interface PdfMetadata { type: 'pdf'; search?: boolean; searchTerm?: string; theme: string; } type Metadata = Partial; declare abstract class AbstractViewerComponent = any> { type: _angular_core.InputSignal; id: _angular_core.InputSignal; metadata: _angular_core.InputSignal; src: _angular_core.InputSignal; theme: Signal<'dark' | 'light'>; user: Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "yuv-abstract", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": true; "isSignal": true; }; "metadata": { "alias": "metadata"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>; } declare class AudioComponent extends AbstractViewerComponent { #private; imageSrc: _angular_core.Signal; get visulisationHeight(): _angular_platform_browser.SafeStyle; onWindowResize(): void; canvasEle: _angular_core.Signal>; audioEle: _angular_core.Signal>; ctx: _angular_core.Signal; mode: _angular_core.Signal<"off" | "oscilloscope" | "frequency">; canvasReadyEffect: _angular_core.AfterRenderRef; analyser: AnalyserNode | null; bufferLength: number; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class VideoComponent extends AbstractViewerComponent { videoEle: _angular_core.Signal>; imageSrc: _angular_core.Signal; isPipSupported: _angular_core.Signal; enterPictureInPicture(): Promise; exitPictureInPicture(): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ErrorComponent extends AbstractViewerComponent { readonly translate: TranslateService; error: _angular_core.InputSignal<"supported" | "notFound" | "authorized">; errorMessage: _angular_core.InputSignal; errorHandler: _angular_core.Signal<{ download?: { link: string; message: any; } | undefined; error: "supported" | "notFound" | "authorized"; message: any; }>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface ActionButton { className: string; icon: SafeHtml; clickAction: () => void; ariaLabel: string; keyAction: (event: KeyboardEvent, index: number) => void; } declare class ImageComponent extends AbstractViewerComponent { #private; readonly translate: TranslateService; image: _angular_core.Signal>; actionButton: _angular_core.Signal[]>; imageSrc: _angular_core.Signal; zoom: _angular_core.WritableSignal; startX: _angular_core.WritableSignal; startY: _angular_core.WritableSignal; rotation: _angular_core.WritableSignal; initialX: _angular_core.WritableSignal; initialY: _angular_core.WritableSignal; isLoading: _angular_core.WritableSignal; isDragging: _angular_core.WritableSignal; isImageFocused: _angular_core.WritableSignal; actionButtons: _angular_core.WritableSignal; keyDown(event: KeyboardEvent): void; onHostKeyDown(event: MouseEvent): void; navigate(event: KeyboardEvent, index: number): void; reset(): void; rotate(dir: number): void; zoomIn(): void; zoomOut(): void; fakeDrag(key: string): void; keybordAction(key: string): void; startDrag(event: MouseEvent | TouchEvent): void; drag(event: MouseEvent | TouchEvent): void; endDrag(): void; onKeyDown($event: KeyboardEvent): void; onScroll(event: WheelEvent): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface MediaViewerProvidersOptions { office?: { path: string; reloadOffset?: number; }; einvoice?: { saxonJsUrl: string; }; } interface EmlHeaders { from: string; to: string; cc: string; bcc: string; subject: string; date: string; replyTo: string; messageId: string; } interface EmlAttachment { filename: string; contentType: string; size: number; dataUrl: string; contentId?: string; } interface ParsedEml { headers: EmlHeaders; textBody: string | null; htmlBody: string | null; attachments: EmlAttachment[]; } declare class MailComponent extends AbstractViewerComponent { #private; busyChange: _angular_core.OutputEmitterRef; protected readonly parsedEmail: _angular_core.WritableSignal; protected readonly activeTab: _angular_core.WritableSignal<"html" | "text">; protected readonly fileAttachments: _angular_core.Signal; protected readonly safeSrcdoc: _angular_core.Signal; protected readonly hasHtmlBody: _angular_core.Signal; protected readonly hasTextBody: _angular_core.Signal; file: _angular_core.WritableSignal; fileLoading: _angular_core.Signal; constructor(); protected onFileSelected(event: Event): void; protected clear(): void; protected openAttachment(attachment: EmlAttachment): void; protected formatDate(dateStr: string): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class TextComponent extends AbstractViewerComponent { #private; contentUrlBlob: _angular_core.WritableSignal; editorOptions: _angular_core.Signal<{ language: string; theme: string; }>; content: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class MonacoDirectComponent extends AbstractViewerComponent implements AfterViewInit, OnDestroy { #private; editorContainer: _angular_core.Signal>; content: _angular_core.Signal; originalContent: _angular_core.Signal; isLoading: _angular_core.Signal; error: _angular_core.Signal; isDiffMode: _angular_core.Signal; language: _angular_core.Signal; monacoTheme: _angular_core.Signal<"vs-dark" | "vs-light">; editorOptions: _angular_core.Signal<{ readOnly: boolean; lineNumbers?: "on" | "off" | "relative" | "interval"; minimap: { enabled: boolean; }; wordWrap?: "on" | "off" | "wordWrapColumn" | "bounded"; fontSize?: number; language: string; theme: string; automaticLayout: boolean; scrollBeyondLastLine: boolean; }>; constructor(); ngAfterViewInit(): void; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface PDFProgressData { loaded: number; total: number; } type ZoomScale = 'page-height' | 'page-fit' | 'page-width'; declare enum RenderTextMode { DISABLED = 0, ENABLED = 1, ENHANCED = 2 } declare class PdfViewerComponent implements OnChanges, OnInit, OnDestroy, AfterViewChecked { #private; static CSS_UNITS: number; static BORDER_WIDTH: number; pdfViewerContainer: _angular_core.Signal>; eventBus: PDFJSViewer.EventBus; pdfLinkService: PDFJSViewer.PDFLinkService; pdfFindController: PDFJSViewer.PDFFindController; pdfViewer: PDFJSViewer.PDFViewer | PDFJSViewer.PDFSinglePageViewer; afterLoadComplete: _angular_core.OutputEmitterRef; pageRendered: _angular_core.OutputEmitterRef>; pageInitialized: _angular_core.OutputEmitterRef>; textLayerRendered: _angular_core.OutputEmitterRef>; pdfError: _angular_core.OutputEmitterRef; pdfProgress: _angular_core.OutputEmitterRef; pageChangeing: _angular_core.OutputEmitterRef; src: _angular_core.InputSignal | pdfjs_dist_types_src_display_api.DocumentInitParameters>; cMapsUrl: _angular_core.InputSignal; page: _angular_core.ModelSignal; renderText: _angular_core.InputSignal; renderTextMode: _angular_core.InputSignal; originalSize: _angular_core.InputSignal; showAll: _angular_core.InputSignal; stickToPage: _angular_core.InputSignal; zoom: _angular_core.InputSignal; zoomScale: _angular_core.InputSignal; rotation: _angular_core.InputSignalWithTransform; externalLinkTarget: _angular_core.InputSignal; autoresize: _angular_core.InputSignal; fitTopage: _angular_core.InputSignal; showBorders: _angular_core.InputSignal; static getLinkTarget(type: string): any; constructor(); ngAfterViewChecked(): void; ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface SearchOptions { query: string; caseSensitive: boolean; wholeWord: boolean; highlightAll: boolean; matchDiacritics: boolean; matchAnyWord: boolean; regex: boolean; findPrevious: boolean; } declare class ToolbarComponent { #private; page: _angular_core.InputSignal; totalPages: _angular_core.InputSignal; searchResultCount: _angular_core.ModelSignal; currentMatchIndex: _angular_core.ModelSignal; pdfQuery: _angular_core.ModelSignal; searchCaseSensitive: _angular_core.ModelSignal; searchWholeWord: _angular_core.ModelSignal; searchHighlightAll: _angular_core.ModelSignal; searchMatchDiacritics: _angular_core.ModelSignal; searchMatchAnyWord: _angular_core.ModelSignal; searchRegex: _angular_core.ModelSignal; handMode: _angular_core.ModelSignal; zoomChange: _angular_core.OutputEmitterRef; zoomScaleChange: _angular_core.OutputEmitterRef; rotationChange: _angular_core.OutputEmitterRef; pageChange: _angular_core.OutputEmitterRef; searchQueryChange: _angular_core.OutputEmitterRef; readonly width: _angular_core.WritableSignal; readonly rotateInMenu: _angular_core.Signal; readonly zoomInMenu: _angular_core.Signal; readonly hidePageCount: _angular_core.Signal; readonly hasOverflow: _angular_core.Signal; readonly searchOpen: _angular_core.WritableSignal; readonly searchTrigger: _angular_core.Signal | undefined>; readonly overlayPositions: ({ readonly originX: "end"; readonly originY: "bottom"; readonly overlayX: "end"; readonly overlayY: "top"; readonly offsetY: 6; } | { readonly originX: "end"; readonly originY: "top"; readonly overlayX: "end"; readonly overlayY: "bottom"; readonly offsetY: -6; })[]; constructor(); toggleSearch(): void; openSearch(): void; closeSearch(): void; onSearchAttached(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class PdfComponent extends AbstractViewerComponent implements OnDestroy { #private; readonly http: HttpClient; loadingPdf: _angular_core.WritableSignal; showToolbar: _angular_core.Signal; page: _angular_core.WritableSignal; totalPages: _angular_core.WritableSignal; zoomOptions: { value: number; label: string; }[]; error: { message: string; name: string; } | null; rotation: _angular_core.WritableSignal; zoom: _angular_core.WritableSignal; zoomScale: _angular_core.WritableSignal; originalSize: _angular_core.WritableSignal; pdf: _angular_core.WritableSignal; renderText: _angular_core.WritableSignal; progressData: _angular_core.WritableSignal; isLoaded: _angular_core.WritableSignal; stickToPage: _angular_core.WritableSignal; showAll: _angular_core.WritableSignal; autoresize: _angular_core.WritableSignal; fitToPage: _angular_core.WritableSignal; outline: _angular_core.WritableSignal; isOutlineShown: _angular_core.WritableSignal; pdfQuery: _angular_core.WritableSignal; searchResultCount: _angular_core.WritableSignal; searchCurrentMatchIndex: _angular_core.WritableSignal; searchCaseSensitive: _angular_core.WritableSignal; searchWholeWord: _angular_core.WritableSignal; searchHighlightAll: _angular_core.WritableSignal; searchMatchDiacritics: _angular_core.WritableSignal; searchMatchAnyWord: _angular_core.WritableSignal; searchRegex: _angular_core.WritableSignal; selectedText: _angular_core.WritableSignal; handMode: _angular_core.WritableSignal; pdfComponent: _angular_core.Signal; toolbarComponent: _angular_core.Signal; pageAnnouncement: _angular_core.Signal; zoomAnnouncement: _angular_core.Signal; loadingAnnouncement: _angular_core.Signal; validatedSrc: _angular_core.Signal; constructor(); /** * Handle keyboard events and delegate to shortcuts service */ onKeydown(event: KeyboardEvent): void; /** * Get pdf information after it's loaded * @param pdf pdf document proxy */ afterLoadComplete(pdf: PDFDocumentProxy): void; /** * Get outline */ loadOutline(): void; /** * Handle error callback * * @param error error message */ onError(error: any): void; /** * Pdf loading progress callback * @param progressData pdf progress data */ onProgress(progressData: PDFProgressData): void; /** * Navigate to destination * @param destination pdf navigate to */ navigateTo(destination: any): void; /** * Page rendered callback, which is called when a page is rendered (called multiple times) * * @param e custom event */ pageRendered(e: CustomEvent): void; /** * Page initialized callback. * * @param {CustomEvent} e */ pageInitialized(e: CustomEvent): void; /** * Page change callback, which is called when a page is changed (called multiple times) * * @param e number */ pageChange(e: number): void; searchQueryChanged(searchOptions: SearchOptions): void; onAnchorKeyup(event: KeyboardEvent, dest: any): void; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Configuration options for PDF viewer */ interface PdfViewerConfig { /** * Path to the PDF.js worker file * Required for CSP compliance - should point to a local worker file * @example '/assets/pdf.worker.min.mjs' * @example 'https://your-cdn.com/pdf.worker.min.mjs' */ workerSrc?: string; /** * Path to the cMaps directory * Required for rendering PDFs with CJK (Chinese, Japanese, Korean) characters * @example '/assets/cmaps/' */ cMapUrl?: string; /** * Whether to pack cMaps data * @default false */ cMapPacked?: boolean; /** * Standard font data URL * Required for PDFs that use standard fonts * @example '/assets/standard_fonts/' */ standardFontDataUrl?: string; /** * Whether to use only CSS zoom (no canvas scaling) * Can improve performance but may reduce quality * @default false */ useOnlyCssZoom?: boolean; /** * Maximum image size in pixels * Larger images will be downscaled * @default -1 (no limit) */ maxImageSize?: number; /** * Whether to disable auto-fetch of fonts * Set to true for strict CSP environments * @default false */ disableFontFace?: boolean; /** * Whether to disable streaming of PDF data * May be required in some CSP environments * @default false */ disableStream?: boolean; /** * Whether to disable range requests * May be required in some CSP environments * @default false */ disableRange?: boolean; } /** * Default PDF viewer configuration */ declare const DEFAULT_PDF_VIEWER_CONFIG: PdfViewerConfig; /** * Injection token for PDF viewer configuration */ declare const PDF_VIEWER_CONFIG: InjectionToken; /** * Provides PDF viewer configuration * Use this in your app config or module providers * * @example * ```typescript * export const appConfig: ApplicationConfig = { * providers: [ * providePdfViewerConfig({ * workerSrc: '/assets/pdf.worker.min.mjs', * cMapUrl: '/assets/cmaps/', * cMapPacked: true * }) * ] * }; * ``` */ declare function providePdfViewerConfig(config: PdfViewerConfig): { provide: InjectionToken; useValue: { workerSrc?: string; cMapUrl?: string; cMapPacked?: boolean; standardFontDataUrl?: string; useOnlyCssZoom?: boolean; maxImageSize?: number; disableFontFace?: boolean; disableStream?: boolean; disableRange?: boolean; }; }; /** * Security configuration for PDF viewer */ interface PdfSecurityConfig { /** * List of allowed URL protocols * @default ['http:', 'https:', 'blob:', 'data:'] */ allowedProtocols?: string[]; /** * List of allowed domains for PDF loading * If specified, only PDFs from these domains will be loaded * @example ['example.com', 'cdn.example.com'] */ allowedDomains?: string[]; /** * Whether to allow data URLs * @default true */ allowDataUrls?: boolean; /** * Whether to allow blob URLs * @default true */ allowBlobUrls?: boolean; /** * Maximum PDF file size in bytes * @default -1 (no limit) */ maxFileSize?: number; } /** * Service for validating and sanitizing PDF sources * Prevents XSS attacks and ensures safe PDF loading */ declare class PdfSecurityService { #private; private readonly DEFAULT_ALLOWED_PROTOCOLS; private config; /** * Configure security settings */ configure(config: PdfSecurityConfig): void; /** * Validate a URL for PDF loading * @param url URL to validate * @returns true if URL is safe, false otherwise */ validateUrl(url: string): boolean; /** * Sanitize a URL for safe use * @param url URL to sanitize * @returns Sanitized URL or null if invalid */ sanitizeUrl(url: string): SafeResourceUrl | null; /** * Validate PDF source (URL, Blob, or ArrayBuffer) * @param source PDF source to validate * @returns true if source is valid, false otherwise */ validateSource(source: any): boolean; /** * Get current security configuration */ getConfig(): Readonly; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class OfficeComponent extends AbstractViewerComponent { #private; readonly environmentData: { office: { path: string; reloadOffset: number; }; }; timeTrigger: _angular_core.WritableSignal; isDocumentUpdating: _angular_core.WritableSignal; params: { name: string; }; downloadPath: string | null; dashletIsLoading: _angular_core.Signal; dashletIsAvailable: _angular_core.WritableSignal; onMessage(event: MessageEvent): void; srcPath: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare enum DASHLET_MESSAGE_EVENTS { OFFICE_DOCUMENT_UPDATE = "yuv.office.document.update", OFFICE_DOCUMENT_CONVERTED = "yuv.office.document.converted", OFFICE_DOCUMENT_UNKNOWN = "yuv.office.document.unknown" } declare class OpenOfficeComponent extends AbstractViewerComponent { renditionSrc: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class EInvoiceComponent extends AbstractViewerComponent implements OnInit { #private; invoiceHtml: _angular_core.WritableSignal; isLoading: _angular_core.Signal; frame: _angular_core.Signal>; ngOnInit(): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type Viewer = { mimeType: string[]; type: KeyTypes; }; type KeyTypes = 'VIDEO' | 'TEXT' | 'EMAIL' | 'ERROR' | 'IMAGE' | 'MONACO' | 'MONACO_DIRECT' | 'PDF' | 'OFFICE' | 'OPENOFFICE' | Uppercase; type TypedComponents = { [K in KeyTypes]: { [key in K]: Type; }; }[KeyTypes]; declare const defaultViewers: Array; declare class MediaViewerService { #private; defaultViewers: _angular_core.WritableSignal; defaultComponents: _angular_core.WritableSignal<{ [x: Uppercase]: Type; }>; width: _angular_core.Signal; height: _angular_core.Signal; /** Returns the viewer type key for a given MIME type, falling back to `'ERROR'` if no match is found. */ getComponentType(type: string): KeyTypes; /** * Adds one or more custom viewer mappings to the viewer list. * Any MIME types present in the incoming viewer(s) are first removed from existing entries * so that the new mapping takes precedence without duplicates. * Empty entries are pruned, except for the `ERROR` fallback entry. */ setViewers(customViewer: Viewer | Viewer[]): void; /** Resets the viewer list to the original default mappings. */ resetViewers(): void; /** Registers one or more custom viewer components, keyed by their viewer type. */ setCustomViewer(components: TypedComponents | TypedComponents[]): void; /** * Convenience method to register both a MIME-type mapping and its corresponding component in one call. * Equivalent to calling `setViewers()` followed by `setCustomViewer()`. */ extendViewer(customViewer: Viewer, component: Type): void; /** Stores the current viewer container dimensions used for layout calculations. */ setViewerSeize(width: number, height: number): void; /** Extracts and returns the lowercase file extension from a filename, or an empty string if none is found. */ fileExtension(fileName: string | null): string; /** Builds the full content URL for a DMS object, optionally targeting a specific version. */ srcPath(id: string, officeEnv: { path: string; reloadOffset: number; }, version: number | undefined): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare const provideMediaViewer: (options?: MediaViewerProvidersOptions | null) => Provider; interface MonacoLoaderState { status: 'idle' | 'loading' | 'loaded' | 'error'; error?: string; } declare class MonacoLoaderService { #private; state: _angular_core.Signal; /** * Loads Monaco editor AMD loader and initializes the environment. * Returns a Promise that resolves with the global monaco object. */ loadMonaco(): Promise; /** * Configure JSON schema for IntelliSense */ configureJsonSchema(uri: string, schema: any, fileMatch?: string[]): void; /** * Configure TypeScript compiler options */ configureTypeScript(options: any): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare const ENVIRONMENT_DATA_DEFAULT: MediaViewerProvidersOptions; declare const ENVIRONMENT_DATA: InjectionToken; export { AbstractViewerComponent, AudioComponent, DASHLET_MESSAGE_EVENTS, DEFAULT_PDF_VIEWER_CONFIG, EInvoiceComponent, ENVIRONMENT_DATA, ENVIRONMENT_DATA_DEFAULT, ErrorComponent, ImageComponent, MailComponent, MediaViewerService, MonacoDirectComponent, MonacoLoaderService, OfficeComponent, OpenOfficeComponent, PDF_VIEWER_CONFIG, PdfComponent, PdfSecurityService, TextComponent, VideoComponent, YuvMediaViewerComponent, defaultViewers, provideMediaViewer, providePdfViewerConfig }; export type { AttachmentsData, AudioMetadata, DiffConfig, Email, EmailDetails, EmailMetadata, HeaderDetails, ImageMetadata, JsonSchemaConfig, KeyTypes, MediaViewerProvidersOptions, MetadatUser, Metadata, MonacoDirectMetadata, OfficeMetadata, PdfMetadata, PdfSecurityConfig, PdfViewerConfig, TypeScriptConfig, TypedComponents, VideoMetadata, Viewer };