import type { ShellPathService } from '../runtime/shell-paths.js';
export interface LanguageConfig {
    lsp?: {
        command: string;
        args: string[];
        initializationOptions?: Record<string, unknown>;
    };
    /** Grammar ID passed to the tree-sitter service (usually the same as langId). */
    treeSitter?: string;
    formatter?: {
        command: string;
        args: string[];
    };
    linter?: {
        command: string;
        args: string[];
    };
}
export type IntelligenceRoots = Pick<ShellPathService, 'workingDirectory' | 'homeDirectory'>;
/**
 * Built-in defaults for common languages.
 * These are used when no user or project override exists.
 */
export declare function getDefaultConfigs(): Map<string, LanguageConfig>;
/**
 * Load all language configs, merging defaults with user and project overrides.
 * Project-level configs override user-level, which override defaults.
 */
export declare function loadLanguageConfigs(roots: IntelligenceRoots): Map<string, LanguageConfig>;
/**
 * Get config for a specific language ID.
 * Loads configs on demand.
 */
export declare function getLanguageConfig(langId: string, roots: IntelligenceRoots): LanguageConfig | null;
//# sourceMappingURL=config.d.ts.map