import { CancellationToken } from 'vscode-languageserver'; import { IBackgroundAnalysis } from '../backgroundAnalysisBase'; import { ConfigOptions } from '../common/configOptions'; import { Diagnostic } from '../common/diagnostic'; import { ServiceProvider } from '../common/serviceProvider'; import '../common/serviceProviderExtensions'; import { Range } from '../common/textRange'; import { Uri } from '../common/uri/uri'; import { AnalysisCompleteCallback } from './analysis'; import { ImportResolver } from './importResolver'; import { MaxAnalysisTime, OpenFileOptions, Program } from './program'; export declare enum InvalidatedReason { Reanalyzed = 0, SourceWatcherChanged = 1, LibraryWatcherChanged = 2, LibraryWatcherContentOnlyChanged = 3 } export declare class BackgroundAnalysisProgram { protected readonly serviceId: string; private readonly _serviceProvider; private _configOptions; private _importResolver; private _backgroundAnalysis?; private readonly _maxAnalysisTime?; private readonly _disableChecker?; private _program; private _disposed; private _onAnalysisCompletion; private _preEditAnalysis; constructor(serviceId: string, _serviceProvider: ServiceProvider, _configOptions: ConfigOptions, _importResolver: ImportResolver, _backgroundAnalysis?: IBackgroundAnalysis | undefined, _maxAnalysisTime?: MaxAnalysisTime | undefined, _disableChecker?: boolean | undefined); get serviceProvider(): ServiceProvider; get configOptions(): ConfigOptions; get importResolver(): ImportResolver; get program(): Program; get host(): import("../common/host").Host; get backgroundAnalysis(): IBackgroundAnalysis | undefined; hasSourceFile(fileUri: Uri): boolean; setConfigOptions(configOptions: ConfigOptions): void; setImportResolver(importResolver: ImportResolver): void; setTrackedFiles(fileUris: Uri[]): void; setAllowedThirdPartyImports(importNames: string[]): void; setFileOpened(fileUri: Uri, version: number | null, contents: string, options: OpenFileOptions): void; getChainedUri(fileUri: Uri): Uri | undefined; updateChainedUri(fileUri: Uri, chainedUri: Uri | undefined): void; updateOpenFileContents(uri: Uri, version: number | null, contents: string, options: OpenFileOptions): void; setFileClosed(fileUri: Uri, isTracked?: boolean): void; addInterimFile(fileUri: Uri): void; markAllFilesDirty(evenIfContentsAreSame: boolean): void; markFilesDirty(fileUris: Uri[], evenIfContentsAreSame: boolean): void; setCompletionCallback(callback?: AnalysisCompleteCallback): void; startAnalysis(token: CancellationToken): boolean; analyzeFile(fileUri: Uri, token: CancellationToken): Promise; analyzeFileAndGetDiagnostics(fileUri: Uri, token: CancellationToken): Promise; libraryUpdated(): boolean; getDiagnosticsForRange(fileUri: Uri, range: Range, token: CancellationToken): Promise; writeTypeStub(targetImportUri: Uri, targetIsSingleFile: boolean, stubUri: Uri, token: CancellationToken): Promise; invalidateAndForceReanalysis(reason: InvalidatedReason): void; restart(): void; dispose(): void; enterEditMode(): void; exitEditMode(): import("../common/editAction").FileEditAction[]; private _ensurePartialStubPackages; private _reportDiagnosticsForRemovedFiles; } export type BackgroundAnalysisProgramFactory = (serviceId: string, serviceProvider: ServiceProvider, configOptions: ConfigOptions, importResolver: ImportResolver, backgroundAnalysis?: IBackgroundAnalysis, maxAnalysisTime?: MaxAnalysisTime) => BackgroundAnalysisProgram;