import type { ProjectType } from "../core/config.js";
import type { IProjectTypeDetector } from "./detector.interface.js";
export type { IProjectTypeDetector } from "./detector.interface.js";
/**
 * Registry for project type detectors
 */
export declare class DetectorRegistry {
    private readonly detectors;
    /**
     * Initialize detector registry with provided or default detectors
     * @param detectors - Optional array of detectors (uses defaults if omitted)
     */
    constructor(detectors?: readonly IProjectTypeDetector[]);
    /**
     * Detect all project types in the given directory
     * @param destDir - Project directory to scan
     * @returns Array of detected project types
     */
    detectAll(destDir: string): Promise<ProjectType[]>;
    /**
     * Expand detected types to include parent types and order correctly
     *
     * Child types (expo, nestjs, cdk) automatically include their parent (typescript)
     * @param detectedTypes - Project types to expand
     * @returns Ordered array with parent types included
     */
    expandAndOrderTypes(detectedTypes: readonly ProjectType[]): ProjectType[];
}
/**
 * Create default detector registry
 * @returns New DetectorRegistry instance with all default detectors
 */
export declare function createDetectorRegistry(): DetectorRegistry;
//# sourceMappingURL=index.d.ts.map