import { type AnalyzerSetting } from "audit-tools/shared"; import type { AnalyzerPlanEntry, LanguageAnalyzer } from "./types.js"; /** * Registered language analyzers, in within-phase order (seam → TS/JS → * Python → HTML → CSS). SQL is a registry stub (recognises `.sql`, emits no * edges yet). The tree-sitter analyzers (Python/HTML/CSS) load their grammar * from the `web-tree-sitter` dependency and degrade to the regex floor when * it cannot be resolved — a degradation that is surfaced on stderr, never * silent (see `surfaceAbsent`). */ export declare const ANALYZER_REGISTRY: LanguageAnalyzer[]; export { OWNED_TOOL_IDS, admitSpawn, admitLocalSpawn, localToolIdFor, runSafetyGate, runExternalAnalyzer, registerExternalAnalyzers, runAcquisitionEngine, resolveBinaryCandidates, detectNodeEcosystem, detectPythonEcosystem, } from "audit-tools/shared"; export type { EcosystemRunner, ExternalAnalyzerCandidate, AcquisitionRunner, AcquisitionEngineOptions, AcquisitionOutcome, RunAllOutcome, ResolvedBinaries, } from "audit-tools/shared"; export { resolveBinary, expectedSha256For } from "audit-tools/shared"; export { EXTERNAL_ANALYZER_CANDIDATES, gitleaksCandidate, GITLEAKS_VERSION, } from "audit-tools/shared"; export type { BinarySpec, BinaryFetcher, BinaryResolveOptions, BinaryResolution, } from "audit-tools/shared"; /** * Deterministically resolve, without installing anything, how each registered * analyzer would run for this repo. The conversation-first CLI uses this to * decide whether to propose an install before the enrichment executor runs. * * Resolution rules: * - 0 supported in-scope files → `not_applicable` * - setting `skip` → `skip` * - dependency resolves (repo|cache) → `repo` | `cache` * - dependency absent → `absent` (executor installs only * for `ephemeral`/`permanent`; `auto` may prompt; `repo` falls to the * floor). A Tier-S parser analyzer resolved absent is surfaced loudly on * stderr — see `surfaceAbsent`. */ export declare function resolveAnalyzerPlan(root: string, analyzers: Record | undefined, includedFiles: string[], options?: { cacheRoot?: string; }): AnalyzerPlanEntry[]; /** * A plan entry whose dependency is absent and whose setting is `auto` (or unset) * with in-scope files — the only case that warrants proposing an install in the * conversation-first flow. (ephemeral/permanent install silently; repo/skip fall * to the floor — loudly for Tier-S, via `surfaceAbsent`.) */ export declare function needsInstallDecision(entry: AnalyzerPlanEntry): boolean; //# sourceMappingURL=registry.d.ts.map