export interface TraitAdapter { readonly name: string; create(host: HTMLElement, options: Record): T; destroy(instance: T): void; update?(instance: T, options: Record): void; conflicts?: readonly string[]; } export declare function registerTrait(adapter: TraitAdapter): void; /** Subscribe to trait registration events. Returns unsubscribe function. */ export declare function onTraitRegistered(fn: (name: string) => void): () => void; export declare function getTrait(name: string): TraitAdapter | undefined; export declare function getRegisteredTraitNames(): ReadonlySet; //# sourceMappingURL=trait-registry.d.ts.map