/** * Supported language identifiers for style packs. * Adding a new language: add the id here, add a marker entry to MARKERS, * and add the pack content in `style-packs/packs.ts`. */ export type LanguageId = "typescript" | "javascript" | "python" | "go" | "rust" | "java" | "kotlin" | "csharp" | "cpp" | "c" | "ruby" | "php" | "swift" | "scala" | "elixir" | "haskell" | "ocaml" | "fsharp" | "clojure" | "dart" | "lua" | "zig" | "sql" | "bash" | "terraform"; /** * Detect active languages in a project root. * * Pure, synchronous, side-effect free. Cheap: a bounded number of fs stats * and one directory listing per scanned subdir. Safe to call after every * tool result — see `App.tsx` integration. */ export declare function detectLanguages(cwd: string): Set; /** * Stable, deterministic ordering of a language set — used for cache-key * equality checks and consistent style-pack section ordering. */ export declare function languagesToSortedArray(set: Set): LanguageId[]; /** * Human-facing display names for each language id. Used by the TUI badge * (`StylePackItem` in App.tsx) so the user sees "TypeScript" rather than * `typescript`. Keep these short — they're rendered inline. */ export declare const LANGUAGE_DISPLAY_NAMES: Readonly>; /** * Detect a project's tech stack as a short, human-readable string * (e.g. "Next.js, TypeScript, Tailwind CSS" or "Rust" or "Python, Django"). * * Cheap + best-effort: reuses `detectLanguages` for the language base and adds a * light framework sniff from package.json deps (JS/TS) plus a few manifest * content checks (Rails, Django/Flask/FastAPI, Laravel). Returns "" when nothing * recognizable is found. Used by the prompt enhancer to bias terminology toward * the stack the user actually works in — facts only, never invented scope. */ export declare function detectProjectStack(cwd: string): string; /** * Returns true iff `next` contains every member of `prev` plus at least one * additional language. Used to gate system-prompt rebuilds: we only re-inject * when the active set grows, never when it merely changes order. */ export declare function isStrictSuperset(next: Set, prev: Set): boolean; //# sourceMappingURL=language-detector.d.ts.map