import { CalcCell } from "./table"; import { CalcCol } from "./layout"; import { BlockObject, CodeObject, CalloutObject, ExportState, GetDocByBlockFunc, GetTextsByBoxFunc, MD5Func } from "./types"; /** * 生成docx/html blocks的接口 * block的概念: * docx/html中的一个段落或图片或表格等单位 */ export interface BlocksGenerator { addDoc(parent: string, doc: any, maxWidth: number): Promise; addTextBlock(obj: BlockObject): Promise; addCodeBlockObject(obj: CodeObject): Promise; addListBlockObject(parent: string, obj: BlockObject): Promise; addImagesBlockObject(obj: BlockObject, maxWidth: number): Promise; addSeparatorBlock(): void; addVideoPlaceholder(): void; addAudioPlaceholder(): void; addEmptyImagePlaceholder(): void; addHyperlinkParagraph(link: string | undefined, title?: string): void; addOtherEmbedBlock(embedType: string, embedData: any): Promise; addTableMatrix(colsWidth: number[], matrix: CalcCell[][], data: any): Promise; addVirtualBlock(blockId: string, data: any, maxWidth: number): Promise; addCalloutObject(obj: CalloutObject, data: any, maxWidth: number): Promise; addLayoutMatrix(colsWidth: number[], matrix: CalcCol[], data: any): Promise; } export declare function convertBlocksOfDoc(parent: string, // 父节点,暂时只有list block需要这个 blocks: any[], data: any, // 协作笔记里的block数组 dbg: BlocksGenerator, // 生成器 html/docx appId: string, docId: string, md5HexFunc: MD5Func, // 用来生成md5的函数,传入的原因是因为node和浏览器生成md5的方式不同 getDocByBlock: GetDocByBlockFunc | undefined, // 允许传入一个函数,将一个block处理后,生成一个新的doc getTextsByBox: GetTextsByBoxFunc | undefined, // 允许传入一个函数,将box类型的数据,处理后返回新的text maxWidth: number): Promise; /** * 生成一个新的导出状态,在导出docx/html过程中,需要维护的一个内存状态,主要是列表相关的状态 */ export declare function initExportState(): ExportState;