/** * Менеджер типизированных элементов */ import { EventEmitter } from 'events'; import { ITypedElementManager, TypedElementSchema, TypedFieldSchema, ITypedElement, SchemaValidationResult, TypeStats, TypedElementConfig } from '../types/typed-elements-interfaces.js'; /** * Менеджер для работы с типизированными элементами */ export declare class TypedElementManager extends EventEmitter implements ITypedElementManager { private schemas; private elements; private config; private inheritanceGraph; constructor(config?: Partial); registerSchema(schema: TypedElementSchema): void; unregisterSchema(typeName: string): void; getSchema(typeName: string): TypedElementSchema | null; getAllSchemas(): Map; createElement(typeName: string, data?: Partial): Promise>; createFromSchema(schema: TypedElementSchema, data?: Partial): Promise>; validateSchema(schema: TypedElementSchema): SchemaValidationResult; validateInheritance(typeName: string, parentTypeName: string): boolean; findElementsByType(typeName: string): ITypedElement[]; findElementsByField(fieldName: keyof T, value: T[keyof T]): ITypedElement[]; buildInheritanceChain(typeName: string): string[]; canInherit(childType: string, parentType: string): boolean; /** * Получает все поля с учетом наследования */ getInheritedFields(typeName: string): TypedFieldSchema[]; /** * Создает композитную схему из нескольких схем */ createCompositeSchema(name: string, version: string, sourceSchemas: string[], additionalFields?: TypedFieldSchema[], options?: { description?: string; sealed?: boolean; abstract?: boolean; resolveConflicts?: 'first' | 'last' | 'merge' | 'error'; }): TypedElementSchema; /** * Объединяет два поля при композиции */ private mergeFields; /** * Создает схему-наследник от существующей схемы */ createInheritedSchema(name: string, version: string, parentTypeName: string, additionalFields?: TypedFieldSchema[], overrideFields?: Partial>>, options?: { description?: string; sealed?: boolean; abstract?: boolean; }): TypedElementSchema; /** * Проверяет совместимость типов для присваивания */ isTypeCompatible(childType: string, parentType: string): boolean; /** * Получает общий родительский тип для двух типов */ getCommonParentType(type1: string, type2: string): string | null; /** * Создает интерфейс (абстрактный тип) с методами */ createInterface(name: string, version: string, fields: TypedFieldSchema[], methods?: Record, options?: { description?: string; sealed?: boolean; }): TypedElementSchema; /** * Реализует интерфейс в конкретном типе */ implementInterface(typeName: string, interfaceName: string, implementation?: Record): void; getTypeStats(): TypeStats; private updateInheritanceGraph; private getInheritanceDepth; private isValidFieldType; removeElement(elementId: string): boolean; getElement(elementId: string): ITypedElement | null; getAllElements(): ITypedElement[]; updateConfig(config: Partial): void; getConfig(): TypedElementConfig; clear(): void; exportSchemas(): Record; importSchemas(schemas: Record): void; } export declare const defaultTypedElementManager: TypedElementManager; //# sourceMappingURL=TypedElementManager.d.ts.map