import { type AnalysisRegistry, type AstDocument, type ManifestAnalysis } from "@telorun/analyzer"; import type { SemanticToken } from "../types.js"; /** Registry-aware semantic tokens: a `kind:` value that resolves to a known * definition is a `type`; a `capability:` value is an `interface`; a `!ref` * target is a `variable`. Ref targets are colored here rather than in the * grammar because a `!ref` after a `key:` is tokenized by the bundled YAML * grammar before a Telo pattern can claim it — the AST sees it unambiguously. * An unresolved kind gets no token, so a typo stays uncolored — a quiet signal * that pairs with the analyzer's `UNDEFINED_KIND` diagnostic. * * The inside of a `!cel` / `${{ }}` body is colored here too, and for the same * reason one level down: a grammar can only know the roots someone hardcoded * into it, while `scopeQuery` knows what is in scope at this exact site. With * no query the names are colored syntactically instead — a CEL body must never * read as a plain string, which is what the stock YAML grammar makes of it. */ export declare function buildSemanticTokens(text: string, registry: AnalysisRegistry | undefined, docs?: AstDocument[], analysis?: ManifestAnalysis): SemanticToken[]; //# sourceMappingURL=build-semantic-tokens.d.ts.map