import 'reflect-metadata'; /** * Provides reflection-based type introspection utilities for decorated Chronicle artifacts. */ export declare class TypeIntrospector { /** * Tracks a property name on a type so it can be included in reflection-based introspection. * @param target - The class constructor to track the property for. * @param propertyName - The property name to track. */ static trackProperty(target: Function, propertyName: string): void; /** * Gets all tracked properties for a type. * @param target - The class constructor to inspect. * @returns The tracked property names. */ static getTrackedProperties(target: Function): string[]; /** * Gets members and their runtime types for a class. * Members are discovered from explicit `@field` decorators, tracked properties, the * properties present on a default-constructed instance, and constructor parameters. * * `@field` declarations are the authoritative source: they carry the exact declared * type (including `ConceptAs` types) regardless of whether the property has an * initializer, so event types — whose properties are typically declared with definite * assignment (`prop!: T`) and no default value — resolve their schema just like read * models. Default-value and `design:type` resolution remain as fallbacks for plain * classes that don't use `@field`, and keep working even under esbuild/tsx, which does * not emit decorator metadata ('design:type'/'design:paramtypes'). * @param target - The class constructor to inspect. * @returns A map of member name to runtime type. */ static getMembers(target: Function): Map; private static getFieldTypes; private static tryGetDefaultPropertyValues; private static getRuntimeTypeFromValue; private static getConstructorParameterNames; private static extractParameterName; } //# sourceMappingURL=TypeIntrospector.d.ts.map