import { h } from 'preact'; import { PluginRegistry, PermissionConfig } from '@pdfmergy/core'; import { ViewportPluginConfig } from '@pdfmergy/plugin-viewport/preact'; import { ScrollPluginConfig } from '@pdfmergy/plugin-scroll/preact'; import { SpreadPluginConfig } from '@pdfmergy/plugin-spread/preact'; import { UIPluginConfig } from '@pdfmergy/plugin-ui/preact'; import { DocumentManagerPluginConfig } from '@pdfmergy/plugin-document-manager/preact'; import { CommandsPluginConfig } from '@pdfmergy/plugin-commands/preact'; import { I18nPluginConfig } from '@pdfmergy/plugin-i18n/preact'; import { ZoomPluginConfig } from '@pdfmergy/plugin-zoom/preact'; import { RenderPluginConfig } from '@pdfmergy/plugin-render/preact'; import { RotatePluginConfig } from '@pdfmergy/plugin-rotate/preact'; import { SearchPluginConfig } from '@pdfmergy/plugin-search/preact'; import { SelectionPluginConfig } from '@pdfmergy/plugin-selection/preact'; import { TilingPluginConfig } from '@pdfmergy/plugin-tiling/preact'; import { ThumbnailPluginConfig } from '@pdfmergy/plugin-thumbnail/preact'; import { AnnotationPluginConfig } from '@pdfmergy/plugin-annotation/preact'; import { PrintPluginConfig } from '@pdfmergy/plugin-print/preact'; import { FullscreenPluginConfig } from '@pdfmergy/plugin-fullscreen/preact'; import { BookmarkPluginConfig } from '@pdfmergy/plugin-bookmark/preact'; import { ExportPluginConfig } from '@pdfmergy/plugin-export/preact'; import { InteractionManagerPluginConfig } from '@pdfmergy/plugin-interaction-manager/preact'; import { PanPluginConfig } from '@pdfmergy/plugin-pan/preact'; import { CapturePluginConfig } from '@pdfmergy/plugin-capture/preact'; import { HistoryPluginConfig } from '@pdfmergy/plugin-history/preact'; import { RedactionPluginConfig } from '@pdfmergy/plugin-redaction/preact'; import { AttachmentPluginConfig } from '@pdfmergy/plugin-attachment/preact'; import { ThemeConfig } from '@/config/theme'; import { IconsConfig } from '@/config/icon-registry'; import { TabBarVisibility } from '@/components/tab-bar'; export interface PDFViewerConfig { /** URL or path to the PDF document. If not provided, viewer loads with no document. */ src?: string; /** Use web worker for PDF processing. Default: true */ worker?: boolean; /** Custom URL for the WASM file */ wasmUrl?: string; /** Enable debug logging. Default: false */ log?: boolean; /** * Global permission configuration applied to all documents. * Per-document permissions (in documentManager.initialDocuments) can override these. * * @example * // Disable printing globally * permissions: { overrides: { print: false } } * * // Ignore PDF permissions entirely (allow all by default) * permissions: { enforceDocumentPermissions: false } */ permissions?: PermissionConfig; /** Theme configuration */ theme?: ThemeConfig; /** Custom icons */ icons?: IconsConfig; /** * Tab bar visibility for multi-document support * - 'always': Always show the tab bar * - 'multiple': Show only when more than 1 document is open (default) * - 'never': Never show the tab bar */ tabBar?: TabBarVisibility; /** * Globally disable features by category. This applies to both UI and commands. * Can be overridden by plugin-specific disabledCategories (ui.disabledCategories, commands.disabledCategories). * * Categories are hierarchical: * - 'annotation' - disables all annotation features * - 'annotation-highlight' - disables only highlight annotations * - 'annotation-markup' - disables highlight, underline, strikeout, squiggly * - 'redaction' - disables all redaction features * - 'zoom' - disables all zoom features * - 'document-print' - disables only print functionality * * @example * // Disable all annotation and redaction features * disabledCategories: ['annotation', 'redaction'] * * // Disable only specific annotation types * disabledCategories: ['annotation-highlight', 'annotation-strikeout'] */ disabledCategories?: string[]; /** Document manager options (initialDocuments) */ documentManager?: Partial; /** Commands options (commands, disabledCategories) */ commands?: Partial; /** i18n options (defaultLocale, locales, paramResolvers) */ i18n?: Partial; /** UI schema options (schema, disabledCategories) */ ui?: Partial; /** Viewport options (viewportGap, scrollEndDelay) */ viewport?: Partial; /** Scroll options (defaultStrategy, defaultPageGap, defaultBufferSize) */ scroll?: Partial; /** Zoom options (defaultZoomLevel, minZoom, maxZoom, zoomStep) */ zoom?: Partial; /** Spread/layout options (defaultSpreadMode) */ spread?: Partial; /** Rotation options (defaultRotation) */ rotation?: Partial; /** Pan mode options (defaultMode: 'never' | 'mobile' | 'always') */ pan?: Partial; /** Render options (withForms, withAnnotations) */ render?: Partial; /** Tiling options (tileSize, overlapPx, extraRings) */ tiling?: Partial; /** Thumbnail options (width, gap, buffer, labelHeight, etc.) */ thumbnails?: Partial; /** Annotation options (tools, colorPresets, autoCommit, author, etc.) */ annotations?: Partial; /** Search options (flags, showAllResults) */ search?: Partial; /** Selection options (menuHeight) */ selection?: Partial; /** Bookmark options */ bookmarks?: Partial; /** Attachment options */ attachments?: Partial; /** Capture options (scale, imageType, withAnnotations) */ capture?: Partial; /** Redaction options (drawBlackBoxes) */ redaction?: Partial; /** Print options */ print?: Partial; /** Export options (defaultFileName) */ export?: Partial; /** Fullscreen options (targetElement) */ fullscreen?: Partial; /** History/undo options */ history?: Partial; /** Interaction manager options (exclusionRules) */ interactionManager?: Partial; } interface PDFViewerProps { config: PDFViewerConfig; onRegistryReady?: (registry: PluginRegistry) => void; } export declare function PDFViewer({ config, onRegistryReady }: PDFViewerProps): h.JSX.Element; export {}; //# sourceMappingURL=app.d.ts.map