import type { ITerminal } from '@rushstack/terminal'; import type { IScopedLogger } from '@rushstack/heft'; import type { IExtendedProgram, IExtendedSourceFile } from './internalTypings/TypeScriptInternals'; export interface ILinterBaseOptions { scopedLogger: IScopedLogger; buildFolderPath: string; /** * The path where the linter state will be written to. */ buildMetadataFolderPath: string; linterToolPath: string; linterConfigFilePath: string; tsProgram: IExtendedProgram; fix?: boolean; sarifLogPath?: string; } export interface IRunLinterOptions { tsProgram: IExtendedProgram; /** * All of the files that the TypeScript compiler processed. */ typeScriptFilenames: Set; /** * The set of files that TypeScript has compiled since the last compilation. */ changedFiles: ReadonlySet; } export declare abstract class LinterBase { protected readonly _scopedLogger: IScopedLogger; protected readonly _terminal: ITerminal; protected readonly _buildFolderPath: string; protected readonly _buildMetadataFolderPath: string; protected readonly _linterConfigFilePath: string; protected readonly _fix: boolean; protected _fixesPossible: boolean; private readonly _linterName; protected constructor(linterName: string, options: ILinterBaseOptions); abstract printVersionHeader(): void; performLintingAsync(options: IRunLinterOptions): Promise; protected getSourceFileHashAsync(sourceFile: IExtendedSourceFile): Promise; protected abstract getCacheVersionAsync(): Promise; protected abstract lintFileAsync(sourceFile: IExtendedSourceFile): Promise; protected abstract lintingFinishedAsync(lintResults: TLintResult[]): Promise; protected abstract hasLintFailures(lintResults: TLintResult[]): boolean; protected abstract isFileExcludedAsync(filePath: string): Promise; } //# sourceMappingURL=LinterBase.d.ts.map