import type { TransformationType } from './transformations'; import type { ParserType } from './parsers'; import type { SFCDescriptor } from '@originjs/vue-sfc-ast-parser'; import type { JSCodeshift } from 'jscodeshift/src/core'; import type { ESLintProgram } from 'vue-eslint-parser/ast'; import type { Config } from '../config/config'; export declare type FileInfo = { path: string; source: string; }; export declare type VueSFCContext = { path: string; source: string; templateAST: ESLintProgram; scriptAST: any; jscodeshiftParser: JSCodeshift; descriptor: SFCDescriptor; }; export declare type ParsingResultOccurrence = { fileInfo: FileInfo; offsetBegin: number; offsetEnd: number; type: ParserType; params?: any; }; export declare type ParsingResultProperty = { name: string; type: string; }; export declare type TransformationParams = { config: Config; outDir?: string; context?: string; htmlPlugin?: any; }; export declare type TransformationResult = { fileInfo: FileInfo; content: string; type: TransformationType; }; export declare type AstTransformationResult = { [name: string]: TransformationResult[]; }; export declare type ParsingResult = { [name: string]: ParsingResultOccurrence[] | ParsingResultProperty[][]; }; export declare type AstParsingResult = { parsingResult: ParsingResult; transformationResult: AstTransformationResult; }; export declare function astParseRoot(rootDir: string, outDir: string, config: Config): Promise;