import { EventEmitter } from "events";
export type ProjectType = "node" | "typescript" | "react" | "nextjs" | "vue" | "angular" | "python" | "rust" | "go" | "java" | "dotnet" | "ruby" | "php" | "mixed" | "unknown";
export type PackageManager = "npm" | "yarn" | "pnpm" | "bun" | "pip" | "cargo" | "go" | "unknown";
export interface WorkspaceConfig {
    type: ProjectType;
    subTypes: ProjectType[];
    packageManager: PackageManager;
    testFramework?: string;
    linter?: string;
    formatter?: string;
    buildTool?: string;
    language: string;
    frameworks: string[];
    configFiles: string[];
    scripts?: Record<string, string>;
    dependencies?: string[];
    devDependencies?: string[];
}
/**
 * Workspace Detector - Automatically detect project configuration
 */
export declare class WorkspaceDetector extends EventEmitter {
    private projectRoot;
    private cachedConfig;
    constructor(projectRoot?: string);
    /**
     * Detect workspace configuration
     */
    detect(): Promise<WorkspaceConfig>;
    private detectProjectType;
    private globExists;
    private detectPackageManager;
    private detectDependencies;
    private detectTestFramework;
    private detectLinterFormatter;
    private detectBuildTool;
    private detectLanguage;
    private findConfigFiles;
    /**
     * Generate recommended .codebuddy/settings.json
     */
    generateRecommendedSettings(config?: WorkspaceConfig): Promise<Record<string, unknown>>;
    /**
     * Format detection results
     */
    formatDetectionResults(config?: WorkspaceConfig): string;
    /**
     * Clear cache
     */
    clearCache(): void;
}
export declare function getWorkspaceDetector(projectRoot?: string): WorkspaceDetector;
export declare function detectWorkspace(projectRoot?: string): Promise<WorkspaceConfig>;
