/** * Azure Bicep extraction (spec-07 deferred follow-up: add-bicep-iac-graph). * * Parser choice: a tolerant, hand-rolled Bicep block scanner rather than the * Bicep compiler or a tree-sitter grammar. Rationale (identical to the Terraform * HCL decision — see terraform.ts header): the compiler/grammar are heavy, native, * or .NET-bound build/install surfaces, and IaC extraction only needs declaration * boundaries + symbol-reference detection — not a full AST or type checker. A pure-JS * scanner keeps the dependency tree flat and install-clean, and is fully deterministic. * We never evaluate Bicep: no `bicep build`, no ARM emit, no Azure/registry access. * * Bicep resolves bare identifiers (`stg`, `location`) against a FLAT per-file symbol * table — there are no `var.`/`type.name` prefixes as in Terraform — so the same * symbolic name recurs across files. Addresses are therefore scoped by file * (`::`) and references resolve WITHIN the declaring file only. The * one legitimate cross-file edge is a local `module './x.bicep'`, handled explicitly. * * Edge direction is dependent → dependency (like the rest of IaC), so depth-1 callers * of a resource answer "every symbol that depends on this". */ import type { IacGraph } from './types.js'; interface InFile { path: string; content: string; language?: string; } export declare function extractBicep(files: InFile[]): IacGraph; export {}; //# sourceMappingURL=bicep.d.ts.map