import { VueCompilerOptions } from "@vue/language-core"; import * as ts from "typescript"; import { GlobOptions } from "tinyglobby"; //#region src/resolveCreateProgramArgs.d.ts interface CreateProgramOptions extends Omit { options?: ts.CompilerOptions; vueOptions?: VueCompilerOptions; } //#endregion //#region src/createProgram.d.ts declare function createProgram(rootNames: readonly string[], options?: ts.CompilerOptions, host?: ts.CompilerHost, oldProgram?: ts.Program, configFileParsingDiagnostics?: readonly ts.Diagnostic[]): Promise; declare function createProgram(createProgramOptions: CreateProgramOptions): Promise; //#endregion //#region src/matchProjectFiles.d.ts /** * 匹配项目文件设置 */ interface MatchProjectFiles { /** * 项目文件 [minimatch](https://github.com/isaacs/minimatch#usage) 匹配 */ match?: string | string[]; /** * tinyglobby 配置项 [tinyglobby](https://www.npmjs.com/package/tinyglobby#options) */ globbyOptions?: Omit; } /** * [minimatch](https://github.com/isaacs/minimatch#usage)风格 匹配项目文件 */ declare const matchProjectFiles: ({ match, globbyOptions }: MatchProjectFiles) => Promise; //#endregion //#region src/triggerProgramResult.d.ts /** * 获取 `ts.Program` 处理后的文件信息 */ interface TriggerProgramResultFile { /** * 文件名称 */ file: string; /** * 文件内容 */ content: string; } /** * 获取 `ts.Program` 处理后的结果 */ interface TriggerProgramResult { /** * 获取 `ts.Program` 处理后的文件信息 */ files: TriggerProgramResultFile[]; /** * 获取 `ts.Program` 处理后的文件信息 * Map<文件名称,文件内容> */ map: Map; } /** * 获取 `ts.Program` 处理后的结果 */ declare const triggerProgramResult: (program: ts.Program) => Promise; //#endregion //#region src/proxyCreateProgram.d.ts /** * 改写自 * [vue-tsc](https://github.com/vuejs/language-tools/blob/v3.1.1/packages/tsc/index.ts) run 方法 * [@volar/typescript](https://github.com/volarjs/volar.js/blob/v2.4.23/packages/typescript/lib/node/proxyCreateProgram.ts#L32) * * 将 ts.Program 处理拥有能处理 vue 文件的能力 */ declare const proxyCreateProgram: (vueOptions: VueCompilerOptions) => typeof ts.createProgram; //#endregion //#region src/typeCheck.d.ts declare const typeCheck: (program: ts.Program) => void; //#endregion export { type CreateProgramOptions, MatchProjectFiles, TriggerProgramResult, TriggerProgramResultFile, createProgram, matchProjectFiles, proxyCreateProgram, triggerProgramResult, ts, typeCheck };