import { AffectedFileResult, BuilderProgram, CancellationToken, CompilerOptions, CompilerOptionsValue, CreateProgram, CustomTransformers, Diagnostic, DiagnosticReporter, EmitAndSemanticDiagnosticsBuilderProgram, EmitResult, ExitStatus, ParsedCommandLine, Path, Program, ProgramHost, ProgramUpdateLevel, ResolvedConfigFileName, SourceFile, System, UpToDateStatus, WatchHost, WatchOptions, WatchStatusReporter, WriteFileCallback } from "./_namespaces/ts.js"; export interface BuildOptions { dry?: boolean; force?: boolean; verbose?: boolean; stopBuildOnErrors?: boolean; /** @internal */ clean?: boolean; /** @internal */ watch?: boolean; /** @internal */ help?: boolean; /** @internal */ preserveWatchOutput?: boolean; /** @internal */ listEmittedFiles?: boolean; /** @internal */ listFiles?: boolean; /** @internal */ explainFiles?: boolean; /** @internal */ pretty?: boolean; incremental?: boolean; assumeChangesOnlyAffectDirectDependencies?: boolean; declaration?: boolean; declarationMap?: boolean; emitDeclarationOnly?: boolean; sourceMap?: boolean; inlineSourceMap?: boolean; traceResolution?: boolean; /** @internal */ diagnostics?: boolean; /** @internal */ extendedDiagnostics?: boolean; /** @internal */ locale?: string; /** @internal */ generateCpuProfile?: string; /** @internal */ generateTrace?: string; [option: string]: CompilerOptionsValue | undefined; } /** @internal */ export type ResolvedConfigFilePath = ResolvedConfigFileName & Path; export type ReportEmitErrorSummary = (errorCount: number, filesInError: (ReportFileInError | undefined)[]) => void; export interface ReportFileInError { fileName: string; line: number; } export interface SolutionBuilderHostBase extends ProgramHost { createDirectory?(path: string): void; /** * Should provide create directory and writeFile if done of invalidatedProjects is not invoked with * writeFileCallback */ writeFile?(path: string, data: string, writeByteOrderMark?: boolean): void; getCustomTransformers?: (project: string) => CustomTransformers | undefined; getModifiedTime(fileName: string): Date | undefined; setModifiedTime(fileName: string, date: Date): void; deleteFile(fileName: string): void; getParsedCommandLine?(fileName: string): ParsedCommandLine | undefined; reportDiagnostic: DiagnosticReporter; reportSolutionBuilderStatus: DiagnosticReporter; afterProgramEmitAndDiagnostics?(program: T): void; /** @internal */ now?(): Date; } export interface SolutionBuilderHost extends SolutionBuilderHostBase { reportErrorSummary?: ReportEmitErrorSummary; } export interface SolutionBuilderWithWatchHost extends SolutionBuilderHostBase, WatchHost { } /** @internal */ export type BuildOrder = readonly ResolvedConfigFileName[]; /** @internal */ export interface CircularBuildOrder { buildOrder: BuildOrder; circularDiagnostics: readonly Diagnostic[]; } /** @internal */ export type AnyBuildOrder = BuildOrder | CircularBuildOrder; /** @internal */ export declare function isCircularBuildOrder(buildOrder: AnyBuildOrder): buildOrder is CircularBuildOrder; /** @internal */ export declare function getBuildOrderFromAnyBuildOrder(anyBuildOrder: AnyBuildOrder): BuildOrder; export interface SolutionBuilder { build(project?: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; clean(project?: string): ExitStatus; buildReferences(project: string, cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, getCustomTransformers?: (project: string) => CustomTransformers): ExitStatus; cleanReferences(project?: string): ExitStatus; getNextInvalidatedProject(cancellationToken?: CancellationToken): InvalidatedProject | undefined; /** @internal */ getBuildOrder(): AnyBuildOrder; /** @internal */ getUpToDateStatusOfProject(project: string): UpToDateStatus; /** @internal */ invalidateProject(configFilePath: ResolvedConfigFilePath, updateLevel?: ProgramUpdateLevel): void; /** @internal */ close(): void; } /** * Create a function that reports watch status by writing to the system and handles the formating of the diagnostic */ export declare function createBuilderStatusReporter(system: System, pretty?: boolean): DiagnosticReporter; export declare function createSolutionBuilderHost(system?: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportErrorSummary?: ReportEmitErrorSummary): SolutionBuilderHost; export declare function createSolutionBuilderWithWatchHost(system?: System, createProgram?: CreateProgram, reportDiagnostic?: DiagnosticReporter, reportSolutionBuilderStatus?: DiagnosticReporter, reportWatchStatus?: WatchStatusReporter): SolutionBuilderWithWatchHost; export declare function createSolutionBuilder(host: SolutionBuilderHost, rootNames: readonly string[], defaultOptions: BuildOptions): SolutionBuilder; export declare function createSolutionBuilderWithWatch(host: SolutionBuilderWithWatchHost, rootNames: readonly string[], defaultOptions: BuildOptions, baseWatchOptions?: WatchOptions): SolutionBuilder; export declare enum InvalidatedProjectKind { Build = 0, UpdateOutputFileStamps = 1 } export interface InvalidatedProjectBase { readonly kind: InvalidatedProjectKind; readonly project: ResolvedConfigFileName; /** @internal */ readonly projectPath: ResolvedConfigFilePath; /** @internal */ readonly buildOrder: readonly ResolvedConfigFileName[]; /** * To dispose this project and ensure that all the necessary actions are taken and state is updated accordingly */ done(cancellationToken?: CancellationToken, writeFile?: WriteFileCallback, customTransformers?: CustomTransformers): ExitStatus; getCompilerOptions(): CompilerOptions; getCurrentDirectory(): string; } export interface UpdateOutputFileStampsProject extends InvalidatedProjectBase { readonly kind: InvalidatedProjectKind.UpdateOutputFileStamps; updateOutputFileStatmps(): void; } export interface BuildInvalidedProject extends InvalidatedProjectBase { readonly kind: InvalidatedProjectKind.Build; getBuilderProgram(): T | undefined; getProgram(): Program | undefined; getSourceFile(fileName: string): SourceFile | undefined; getSourceFiles(): readonly SourceFile[]; getOptionsDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; getGlobalDiagnostics(cancellationToken?: CancellationToken): readonly Diagnostic[]; getConfigFileParsingDiagnostics(): readonly Diagnostic[]; getSyntacticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; getAllDependencies(sourceFile: SourceFile): readonly string[]; getSemanticDiagnostics(sourceFile?: SourceFile, cancellationToken?: CancellationToken): readonly Diagnostic[]; getSemanticDiagnosticsOfNextAffectedFile(cancellationToken?: CancellationToken, ignoreSourceFile?: (sourceFile: SourceFile) => boolean): AffectedFileResult; emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback, cancellationToken?: CancellationToken, emitOnlyDtsFiles?: boolean, customTransformers?: CustomTransformers): EmitResult | undefined; } export type InvalidatedProject = UpdateOutputFileStampsProject | BuildInvalidedProject; //# sourceMappingURL=tsbuildPublic.d.ts.map