import { RepoConfig, UserLanguageDefinition } from '../types.js';
import { LanguageDefinition } from '../languages/registry.js';

declare class Config {
    private configPath;
    private config;
    private constructor();
    static load(workspaceRoot: string): Promise<Config>;
    static init(workspaceRoot: string, repoName?: string, isLaravel?: boolean, shouldAddLaravelExcludes?: boolean): Promise<Config>;
    save(): Promise<void>;
    get repos(): RepoConfig[];
    get settings(): {
        [key: string]: any;
        maxTokenBudget: number;
        excludePatterns: string[];
        includePatterns: string[];
        php?: {
            facadeMap?: Record<string, string>;
        };
    };
    get languages(): Record<string, UserLanguageDefinition>;
    getResolvedUserLanguages(): Record<string, LanguageDefinition>;
    addRepo(name: string, path: string): void;
    removeRepo(nameOrPath: string): void;
    getWorkspaceRoot(): string;
    get repo(): RepoConfig;
}

export { Config };
