/** * Pure inference of the monorepo container directory from a list of * scan paths. * * Each `ScanPath` carries a `boundaryPath` ending in the `fjall` marker * segment. Stripping that segment yields the container — the directory * between repo root and the `fjall/` boundary. For multiple paths, returns * the longest common ancestor. * * Edge cases: * - empty array → `null` * - boundary at repo root (`fjall`) → `null` * - single nested boundary → its parent directory * - two with a common ancestor → the ancestor * - two with no common ancestor → `null` * * Pure function — no I/O. Used by both the CLI scaffold pre-flight * (`scanLocalRepository`) and the webapp scan endpoint * (`scanInfrastructureFiles`) to suggest a default `--container` for new * apps. */ import type { ScanPath } from "./scanTypes.js"; export declare function inferContainerFromCandidates(paths: readonly ScanPath[]): string | null;