import { type IframeHTMLAttributes } from 'react'; import { type FileRef, type ViewerFrameEventHandler, type ViewerFrameOptions } from '@flyfish-group/file-viewer-web'; export type { FileRef, ViewerFrameEventHandler, ViewerFrameOptions } from '@flyfish-group/file-viewer-web'; export interface FileViewerHandle { iframe: HTMLIFrameElement | null; postFile(): boolean; reload(): void; } export interface FileViewerProps extends Omit, 'children' | 'src'> { /** * 私有化部署后的 Vue 基线预览器页面地址。 * * 不传时默认使用 `@flyfish-group/file-viewer-web` 安装后复制到宿主项目的 `/file-viewer/index.html`。 */ viewerUrl?: string; /** * 远端文件地址。会透传给 iframe 里的 Vue 基线预览器。 */ url?: string; /** * 本地二进制输入。优先级高于 url,会通过 postMessage 推送给 iframe。 */ file?: FileRef; /** * 当 file 是 Blob 或 ArrayBuffer 时用于识别扩展名。 */ name?: string; /** * 允许推送二进制的宿主 origin。默认取当前页面 origin。 */ from?: string; /** * postMessage 的目标 origin。默认从 viewerUrl 推导。 */ targetOrigin?: string; /** * 预留给 Vue 基线页面的查询参数。 */ params?: ViewerFrameOptions['params']; /** * iframe 入口页的缓存标识。默认使用 web 包版本;传 false 可关闭。 */ cacheKey?: ViewerFrameOptions['cacheKey']; /** * 透传给 Vue 基线预览器的运行时选项,例如水印、工具栏和压缩包缓存限制。 */ options?: ViewerFrameOptions['options']; /** * iframe 模式下接收基线预览器抛出的生命周期和操作事件。 */ onViewerEvent?: ViewerFrameEventHandler; } export declare const FileViewer: import("react").ForwardRefExoticComponent>; export default FileViewer;