/**
 * ProjectDetector - Detects project root and suggests LSP servers
 *
 * @see spec.md US-007: Error Handling
 * @satisfies AC-US7-03, AC-US7-04
 */
/**
 * Filesystem abstraction for testing
 */
export interface FileSystemProvider {
    exists(path: string): Promise<boolean>;
    readdir(path: string): Promise<string[]>;
    glob(pattern: string, cwd: string): Promise<string[]>;
    getParentDir(path: string): string | null;
}
/**
 * Result of analyzing an unknown project
 */
export interface UnknownProjectResult {
    suggestedLanguage: string | null;
    fileCount: number;
}
/**
 * Full project information
 */
export interface ProjectInfo {
    root: string | null;
    language: string | null;
    projectFile?: string;
    suggestedLanguage?: string;
}
/**
 * Detects project root and suggests LSP servers
 */
export declare class ProjectDetector {
    private readonly fs;
    constructor(fs: FileSystemProvider);
    /**
     * Find project root by searching upward for project files
     *
     * @param startDir - Directory to start searching from
     * @returns Project root path or null if not found
     */
    findRoot(startDir: string): Promise<string | null>;
    /**
     * Analyze a directory with no project file to suggest a language
     *
     * @param dir - Directory to analyze
     * @returns Suggested language based on file extensions
     */
    analyzeUnknownProject(dir: string): Promise<UnknownProjectResult>;
    /**
     * Detect full project information
     *
     * @param startDir - Directory to start from
     * @returns Project information with root, language, and suggestions
     */
    detectProjectInfo(startDir: string): Promise<ProjectInfo>;
}
//# sourceMappingURL=project-detector.d.ts.map