import type { IParser } from '@rcs-lang/core'; import { type SymbolType } from '../import-resolver/types.js'; import { type SymbolInfo, type SymbolLocation, type WorkspaceIndexConfig } from './types.js'; /** * Manages workspace-wide indexing of RCL files */ export declare class WorkspaceIndex { private parser; private importResolver; private config; private documents; private symbolsByName; private symbolsByType; private symbolsByFile; private dependencies; private dependents; constructor(parser: IParser, config: WorkspaceIndexConfig); /** * Initialize the workspace index */ initialize(): Promise; /** * Add a file to the index */ addFile(uri: string, content?: string): Promise; /** * Remove a file from the index */ removeFile(uri: string): void; /** * Update a file in the index */ updateFile(uri: string, content: string): Promise; /** * Find symbol by name */ findSymbol(name: string, type?: SymbolType): SymbolLocation[]; /** * Get all symbols in a file */ getFileSymbols(uri: string): SymbolInfo[]; /** * Get files that depend on the given file */ getDependents(uri: string): string[]; /** * Get files that the given file depends on */ getDependencies(uri: string): string[]; /** * Get all symbols of a specific type */ getSymbolsByType(type: SymbolType): SymbolLocation[]; /** * Search symbols by partial name */ searchSymbols(query: string, type?: SymbolType): SymbolLocation[]; /** * Get workspace statistics */ getStats(): { totalFiles: number; totalSymbols: number; symbolsByType: Record; }; /** * Scan the workspace for RCL files */ private scanWorkspace; /** * Find all RCL files in a directory */ private findRCLFiles; /** * Check if a path should be excluded */ private isExcluded; /** * Parse a document and extract symbols */ private parseDocument; /** * Update symbol index for a document */ private updateSymbolIndex; /** * Update dependency graph for a document */ private updateDependencyGraph; /** * Update dependents after adding/updating a file */ private updateDependents; /** * Remove symbols from index */ private removeSymbolsFromIndex; /** * Remove dependencies for a file */ private removeDependencies; /** * Update dependents after removing a file */ private updateDependentsAfterRemoval; } //# sourceMappingURL=WorkspaceIndex.d.ts.map