import type { DetectionResult, DetectOptions } from './types.js'; /** * Detects the type of B2C Commerce project in a workspace. * * WorkspaceTypeDetector analyzes a directory to determine what kind of * Commerce project it contains. Returns ALL matched project types to enable * union toolset selection for hybrid projects. * * @example * ```typescript * import { WorkspaceTypeDetector } from '@salesforce/b2c-tooling-sdk/discovery'; * * const detector = new WorkspaceTypeDetector('/path/to/project'); * const result = await detector.detect(); * * console.log(`Project types: ${result.projectTypes.join(', ')}`); * console.log(`Matched patterns: ${result.matchedPatterns.join(', ')}`); * ``` * * @example Custom patterns * ```typescript * const detector = new WorkspaceTypeDetector('/path/to/project', { * additionalPatterns: [myCustomPattern], * excludePatterns: ['sfra-cartridge'], * }); * ``` */ export declare class WorkspaceTypeDetector { private workspacePath; private patterns; private context; /** * Creates a new WorkspaceTypeDetector. * * @param workspacePath - Path to the workspace directory to analyze * @param options - Detection options for customizing behavior */ constructor(workspacePath: string, options?: DetectOptions); /** * Performs workspace detection. * * Runs all configured patterns against the workspace and returns * a consolidated result with all detected project types. * * @returns Detection result with all project types and matched patterns */ detect(): Promise; /** * Resolves patterns based on options. */ private resolvePatterns; } /** * Creates a WorkspaceTypeDetector and performs detection in one call. * * This is a convenience function for simple detection use cases. * * @param workspacePath - Path to the workspace directory * @param [options] - Detection options for customizing behavior * @returns Detection result with all matched project types * * @example * ```typescript * import { detectWorkspaceType } from '@salesforce/b2c-tooling-sdk/discovery'; * * const result = await detectWorkspaceType(process.cwd()); * console.log(`Detected types: ${result.projectTypes.join(', ')}`); * console.log(`Patterns: ${result.matchedPatterns.join(', ')}`); * ``` */ export declare function detectWorkspaceType(workspacePath: string, options?: DetectOptions): Promise;