/** * Generic lexicon registry builder. * * Implements the shared loop: iterate parsed results, resolve naming, * build attrs/constraints maps, call format-specific entry builders, * handle aliases and property type sub-entries. */ import type { NamingStrategy } from "./naming.js"; import { type PropertyConstraints } from "./json-schema.js"; export interface RegistryResource { typeName: string; attributes: { name: string; }[]; properties: { name: string; constraints: PropertyConstraints; }[]; propertyTypes: { name: string; specType: string; }[]; } export interface RegistryConfig { /** Short name extractor (e.g. shortName from the spec type). */ shortName: (typeName: string) => string; /** Build a resource entry from parsed data. */ buildEntry: (resource: RegistryResource, tsName: string, attrs: Record | undefined, propConstraints: Record | undefined) => E; /** Build a property type entry. */ buildPropertyEntry: (resourceType: string, propertyType: string) => E; } /** * Build a registry of entries from parsed results using the naming strategy. */ export declare function buildRegistry(results: RegistryResource[], naming: NamingStrategy, config: RegistryConfig): Record; /** * Sort registry keys and serialize to JSON. */ export declare function serializeRegistry(entries: Record): string; //# sourceMappingURL=generate-registry.d.ts.map