import { SymbolKind } from '../types.js';

interface LanguageDefinition {
    name: string;
    extensions: string[];
    grammarWasm: string;
    queries: {
        symbols: string;
        references: string;
    };
    nodeMappings: Partial<Record<SymbolKind, string>>;
    tier: 'built-in' | 'bundled' | 'installable' | 'user' | 'static';
}
declare function getBuiltinLanguages(): Record<string, LanguageDefinition>;
declare function getLanguageForFile(filePath: string, userLanguages?: Record<string, LanguageDefinition>): LanguageDefinition | null;
declare function getLanguageNames(): string[];
declare function isBuiltInLanguage(name: string): boolean;
declare function areLanguagesCompatible(lang1: string, lang2: string): boolean;

export { type LanguageDefinition, areLanguagesCompatible, getBuiltinLanguages, getLanguageForFile, getLanguageNames, isBuiltInLanguage };
