import type { Artifact } from "./types/artifact.js"; import type { ParsedDocument } from "./types/metadata.js"; export type BuiltInExecutableDependencyAnalyzerId = "js-ts" | "python" | "shell" | "powershell" | "batch"; export type ExecutableDependencyRelation = "static-execution" | "static-import" | "static-reexport" | "static-source"; export interface ExecutableDependencyCandidate { analyzer: BuiltInExecutableDependencyAnalyzerId; sourcePath: string; declarationOffset: number; line: number; snippet: string; relation: ExecutableDependencyRelation; rawSpecifier: string; normalizedTargetCandidates: string[]; unsafe: boolean; } export interface ExecutableDependencyAnalyzer { readonly id: BuiltInExecutableDependencyAnalyzerId; supports(input: { path: string; contentClassification: "text" | "binary"; }): boolean; collect(input: { path: string; content: string; }): ExecutableDependencyCandidate[]; } /** Fixed private registry; package exports intentionally do not expose it. */ export declare const BUILT_IN_EXECUTABLE_DEPENDENCY_ANALYZERS: readonly ExecutableDependencyAnalyzer[]; /** Identify the existing inventory surface candidates before path-state resolution. */ export declare function executableSurfaceArtifacts(artifacts: readonly Artifact[], documents: readonly ParsedDocument[], explicitlyReferencedPaths?: ReadonlySet): Artifact[]; /** Run every built-in analyzer once over eligible text executable surfaces. */ export declare function collectExecutableDependencyCandidates(artifacts: readonly Artifact[], documents: readonly ParsedDocument[], explicitlyReferencedPaths?: ReadonlySet): ExecutableDependencyCandidate[]; /** Private syntactic-occurrence identity shared with dependency preparation. */ export declare function executableDependencyCandidateOccurrenceKey(candidate: ExecutableDependencyCandidate): string;