/**
 * MetadataIndex - In-memory index of element metadata for fast lookups.
 *
 * Primary map: relativePath → ElementIndexEntry
 * Secondary map: normalizedName → relativePath (case-insensitive name lookup)
 */
import type { ElementIndexEntry } from './types.js';
export declare class MetadataIndex {
    private byPath;
    private nameToPath;
    /**
     * Add or update an entry in the index.
     * Updates both primary and secondary maps.
     */
    set(entry: ElementIndexEntry): void;
    /**
     * Get an entry by file path.
     */
    get(filePath: string): ElementIndexEntry | undefined;
    /**
     * Remove an entry by file path.
     * Cleans up both primary and secondary maps.
     */
    remove(filePath: string): void;
    /**
     * O(1) case-insensitive name → path lookup.
     */
    getPathByName(name: string): string | undefined;
    /**
     * Get all index entries.
     */
    getAll(): ElementIndexEntry[];
    /**
     * Get all indexed file paths.
     */
    getPaths(): string[];
    /**
     * Reset index to empty state.
     */
    clear(): void;
    /**
     * Number of indexed entries.
     */
    get size(): number;
    private normalizeName;
}
//# sourceMappingURL=MetadataIndex.d.ts.map