UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

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