import { type Diagnostic } from "./diagnostics/types.js"; import type { DomainSchema } from "./generator/ir.js"; import type { ProgramNode } from "./parser/ast.js"; import type { SchemaGraph } from "./schema-graph.js"; import type { SourceMapIndex } from "./source-map.js"; export type JsonLiteral = string | number | boolean | null | readonly JsonLiteral[] | { readonly [key: string]: JsonLiteral; }; export interface Annotation { readonly tag: string; readonly payload?: JsonLiteral; } export type LocalTargetKey = `domain:${string}` | `type:${string}` | `type_field:${string}.${string}` | `state_field:${string}` | `computed:${string}` | `action:${string}`; export interface AnnotationIndex { readonly schemaHash: string; readonly entries: Record; } export interface DomainModule { readonly schema: DomainSchema; readonly graph: SchemaGraph; readonly annotations: AnnotationIndex; readonly sourceMap: SourceMapIndex; } export interface AnnotationExtractionResult { annotations: AnnotationIndex; diagnostics: Diagnostic[]; } export declare function buildAnnotationIndex(program: ProgramNode, schema: DomainSchema): AnnotationExtractionResult;