import * as __linting from './linting'; import { LintingToolDetection } from './linting'; export { ESLINT_CONFIG_PATTERNS, LintingToolDetection, LintingToolDetector, PRETTIER_CONFIG_PATTERNS, STYLELINT_CONFIG_PATTERNS, biomeDetector, detectLintingTools, eslintDetector, lintingDetectors, prettierDetector, stylelintDetector } from './linting'; import * as __types from './types'; import { TypeSystemDetection } from './types'; export { TypeSystemDetection, TypeSystemDetector, detectTypeSystems, flowDetector, jsdocDetector, typeSystemDetectors, typescriptDetector } from './types'; import * as __testing from './testing'; import { TestingFrameworkDetection } from './testing'; export { CYPRESS_CONFIG_PATTERNS, JEST_CONFIG_PATTERNS, MOCHA_CONFIG_PATTERNS, PLAYWRIGHT_CONFIG_PATTERNS, TestingFrameworkDetection, TestingFrameworkDetector, VITEST_CONFIG_PATTERNS, cypressDetector, detectTestingFrameworks, jestDetector, mochaDetector, playwrightDetector, testingDetectors, vitestDetector } from './testing'; import * as __legacy from './legacy'; import { LegacyFrameworkDetection } from './legacy'; export { LegacyFrameworkDetection, LegacyFrameworkDetector, angularJSDetector, backboneDetector, detectLegacyFrameworks, emberDetector, jqueryDetector, legacyDetectors } from './legacy'; import * as __backend from './backend'; import { BackendDetection } from './backend'; export { BackendDetection, BackendDetector, backendDetectors, detectBackendFrameworks, expressDetector, fastifyDetector, honoDetector, koaDetector, nestDetector } from './backend'; import * as __frontend from './frontend'; import { FrameworkDetection } from './frontend'; export { FrameworkDetection, FrameworkDetector, angularDetector, astroDetector, detectFrontendFrameworks, frameworkDetectors, gatsbyDetector, nextjsDetector, nuxtDetector, qwikDetector, reactDetector, remixDetector, solidDetector, svelteDetector, sveltekitDetector, vueDetector } from './frontend'; import * as __monorepo from './monorepo'; import { MonorepoDetection } from './monorepo'; export { DetectionSource, MonorepoDetection, MonorepoDetector, detectMonorepoTools, lernaDetector, monorepoDetectors, npmWorkspacesDetector, nxDetector, pnpmWorkspacesDetector, rushDetector, turborepoDetector, yarnWorkspacesDetector } from './monorepo'; import * as __build from './build'; import { BuildToolDetection } from './build'; export { BABEL_CONFIG_PATTERNS, BuildToolDetection, BuildToolDetector, PARCEL_CONFIG_PATTERNS, ROLLUP_CONFIG_PATTERNS, SWC_CONFIG_PATTERNS, VITE_CONFIG_PATTERNS, WEBPACK_CONFIG_PATTERNS, babelDetector, buildToolDetectors, detectBuildTools, esbuildDetector, parcelDetector, rollupDetector, swcDetector, viteDetector, webpackDetector } from './build'; import { PackageJson } from '../project/package'; /** * All detection results from running all detectors. */ interface AllDetections { /** Detected build tools */ buildTools: BuildToolDetection[]; /** Detected monorepo tools */ monorepo: MonorepoDetection[]; /** Detected frontend frameworks */ frontendFrameworks: FrameworkDetection[]; /** Detected backend frameworks */ backendFrameworks: BackendDetection[]; /** Detected legacy frameworks (AngularJS, Backbone, Ember, jQuery) */ legacyFrameworks: LegacyFrameworkDetection[]; /** Detected testing frameworks */ testingFrameworks: TestingFrameworkDetection[]; /** Detected type systems */ typeSystem: TypeSystemDetection[]; /** Detected linting tools */ linting: LintingToolDetection[]; } /** * All available detectors organized by category. */ declare const allDetectors: { build: __build.BuildToolDetector[]; monorepo: __monorepo.MonorepoDetector[]; frontend: __frontend.FrameworkDetector[]; backend: __backend.BackendDetector[]; legacy: __legacy.LegacyFrameworkDetector[]; testing: __testing.TestingFrameworkDetector[]; types: __types.TypeSystemDetector[]; linting: __linting.LintingToolDetector[]; }; /** * Options for detectAll function. */ interface DetectAllOptions { /** Pre-loaded package.json to avoid re-reading */ packageJson?: PackageJson; /** Skip cache lookup (force fresh detection) */ skipCache?: boolean; } /** * Run all technology detectors on a project. * * Results are cached for 60 seconds per project path to avoid * redundant file system operations on repeated calls. * * @param projectPath - Path to project directory * @param packageJsonOrOptions - Optional pre-loaded package.json or options object * @returns All detection results organized by category * * @example Running all tech detectors * ```typescript * import { detectAll } from '@hyperfrontend/project-scope' * * const detections = detectAll('./my-project') * * // Check frontend frameworks * for (const fw of detections.frontendFrameworks) { * console.log(`${fw.name} v${fw.version} (${fw.confidence}% confidence)`) * } * * // Check build tools * console.log('Build tools:', detections.buildTools.map(t => t.name)) * * // Check testing frameworks * console.log('Testing:', detections.testingFrameworks.map(t => t.name)) * ``` */ declare function detectAll(projectPath: string, packageJsonOrOptions?: PackageJson | DetectAllOptions): AllDetections; /** * Clear the tech detection cache. * * Useful for testing or when the project files have changed. * * @example Clearing the tech detection cache * ```typescript * import { detectAll, clearTechDetectionCache } from '@hyperfrontend/project-scope' * * // Initial detection (cached) * const first = detectAll('./my-project') * * // After modifying package.json, clear cache to re-detect * clearTechDetectionCache() * const fresh = detectAll('./my-project') * ``` */ declare function clearTechDetectionCache(): void; export { allDetectors, clearTechDetectionCache, detectAll }; export type { AllDetections, DetectAllOptions };