import type ts from 'typescript'; import type { TextDocumentContentChangeEvent } from 'vscode-languageserver'; import type { ConfigManager } from '../../core/config'; import type { AstroDocument, DocumentManager } from '../../core/documents'; import { LanguageServiceContainer, LanguageServiceDocumentContext } from './language-service'; import type { DocumentSnapshot } from './snapshots/DocumentSnapshot'; import { SnapshotManager } from './snapshots/SnapshotManager'; export declare class LanguageServiceManager { private readonly docManager; private readonly workspaceUris; private readonly configManager; docContext: LanguageServiceDocumentContext; private globalSnapshotManager; constructor(docManager: DocumentManager, workspaceUris: string[], configManager: ConfigManager, ts: typeof import('typescript/lib/tsserverlibrary'), tsLocalized?: Record | undefined); /** * Create an AstroDocument (only for astro files) */ private createDocument; getSnapshot(document: AstroDocument): Promise; getSnapshot(pathOrDoc: string | AstroDocument): Promise; /** * Updates snapshot path in all existing ts services and retrieves snapshot */ updateSnapshotPath(oldPath: string, newPath: string): Promise; /** * Deletes snapshot in all existing ts services */ deleteSnapshot(filePath: string): Promise; /** * Updates project files in all existing ts services */ updateProjectFiles(): Promise; /** * Updates file in all ts services where it exists */ updateExistingNonAstroFile(path: string, changes?: TextDocumentContentChangeEvent[], text?: string): Promise; getLSAndTSDoc(document: AstroDocument): Promise<{ tsDoc: DocumentSnapshot; lang: ts.LanguageService; }>; getLSForPath(path: string): Promise; getTypeScriptLanguageService(filePath: string): Promise; /** * @internal Public for tests only */ getSnapshotManager(filePath: string): Promise; }