import type { Target } from '../types.js'; import { queryBuildSystem } from './cmake-build-query.js'; import { parseCMakeFiles } from './cmake-parser.js'; import type { CommandRunner } from './command-runner.js'; export interface CMakeTarget { name: string; type: 'executable' | 'static_library' | 'shared_library' | 'custom'; outputPath?: string; dependencies: string[]; sourceFiles: string[]; includeDirectories: string[]; } export interface CMakePreset { name: string; displayName?: string; generator?: string; binaryDir?: string; cacheVariables?: Record; } export interface CMakeAnalysis { targets: CMakeTarget[]; generator?: string; buildTypes: string[]; presets?: CMakePreset[]; sourceDirectories: string[]; language: 'cpp' | 'c' | 'mixed'; buildDirectory?: string; errors?: CMakeProbeError[]; } export interface CMakeProbeError { stage: 'configure' | 'query-targets' | 'parse-cache' | 'detect-build-dir'; message: string; details?: string; } export declare class CMakeProjectAnalyzer { private projectRoot; private commandRunner; private readonly parseCMake; private readonly buildQuery; constructor(projectRoot: string, commandRunner?: CommandRunner, deps?: { parseCMakeFiles?: typeof parseCMakeFiles; queryBuildSystem?: typeof queryBuildSystem; }); analyzeProject(options?: { autoConfigure?: boolean; }): Promise; private mergeTargets; private detectLanguage; private parsePresets; private findSourceDirectories; generateWatchPatterns(analysis: CMakeAnalysis): string[]; generatePoltergeistTargets(analysis: CMakeAnalysis): Target[]; generateTargetWatchPatterns(target: CMakeTarget, analysis: CMakeAnalysis): string[]; } export { CMakeProjectAnalyzer as CMakeAnalyzer }; //# sourceMappingURL=cmake-analyzer.d.ts.map