import { EntryFileType, FileParserOptions, typescript as ts } from '@morjs/utils'; /** * ts / js 转换输出结果 */ interface ITransformOutput { code: string; sourceMap?: string; } interface SourceMap { version: number; sources: string[]; mappings: string; file?: string; sourceRoot?: string; sourcesContent?: string[]; names?: string[]; } declare type FileType = EntryFileType.script | EntryFileType.sjs; /** * 生成 webpack 需要的 sourceMap * @param sourceMap 代码映射文本 * @param code 转换后的代码 * @param filePath 文件路径 * @param sourceCode 源代码 * @param remainingRequest webpack 剩余的 request * @returns 生成后的 代码 和 sourceMap */ export declare function generateSourceMap(sourceMap: string | undefined, code: string, filePath: string, sourceCode: string, remainingRequest: string): { code: string; sourceMap?: SourceMap; }; /** * 编译 sjs 文件 * @param fileContent 文件内容 * @param fileType 文件类型 sjs * @param options 文件解析选项 * @param transformers 自定义 ts transformers * @returns 编译后文件内容 outputText 和 sourceMapText */ export declare function sjsScriptTransformer(fileContent: string, fileType: FileType, options: FileParserOptions, transformers?: ts.CustomTransformers): ITransformOutput; /** * 支持 ts 和 esbuild 两种编译方式 * 1. 如果没有插件的情况下, 自动使用 esbuild 以构建速度为主 * 2. 如果有外部插件 或 需求输出 declaration 则使用 ts 编译 * @param fileContent 文件内容 * @param fileType 文件类型,如 script 或 sjs * @param options 文件解析选项 * @param transformers 自定义 ts transformers * @returns 编译后文件内容 outputText 和 sourceMapText */ export declare function scriptTransformer(fileContent: string, fileType: FileType, options: FileParserOptions, transformers?: ts.CustomTransformers): Promise; export {};