UNPKG

cs-element

Version:

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

68 lines 3.1 kB
/** * Базовый класс типизированного элемента */ import { CSElement } from '../core/CSElement'; import { ITypedElement, TypedElementSchema, TypedFieldSchema, TypedValidationResult, FieldValidationResult, SerializedTypedElement, TypedElementEventType, TypedElementEvent } from '../types/typed-elements-interfaces'; import { ElementOptions } from '../types/interfaces'; /** * Базовый класс для типизированных элементов */ export declare class TypedElement<T = any> extends CSElement implements ITypedElement<T> { private _typeName; private _schema; private _typedData; private _validationCache; private _lastValidation; private _eventEmitter; private _manager; constructor(value: any, schema: TypedElementSchema<T>, options?: ElementOptions, manager?: any); get typeName(): string; get schema(): TypedElementSchema<T>; get isAbstract(): boolean; get isSealed(): boolean; get inheritanceChain(): string[]; private initializeFields; /** * Получает все поля с учетом наследования */ private getAllFields; getTypedData(): Partial<T>; setTypedData(data: Partial<T>): Promise<void>; getField<K extends keyof T>(fieldName: K): T[K] | undefined; setField<K extends keyof T>(fieldName: K, value: T[K]): Promise<void>; validateType(): Promise<TypedValidationResult>; validateField<K extends keyof T>(fieldName: K, value: T[K]): Promise<FieldValidationResult>; private getActualType; private isTypeCompatible; canInheritFrom(typeName: string): boolean; getInheritedFields(): TypedFieldSchema<T>[]; /** * Проверяет, является ли элемент экземпляром указанного типа или его наследником */ isInstanceOf(typeName: string): boolean; /** * Проверяет, реализует ли элемент указанный интерфейс */ implementsInterface(interfaceName: string): boolean; /** * Получает метаданные о наследовании */ getInheritanceMetadata(): { parentType: string | null; implementedInterfaces: string[]; inheritanceDepth: number; isComposite: boolean; sourceSchemas?: string[]; }; serializeTyped(): SerializedTypedElement<T>; cloneTyped(): Promise<ITypedElement<T>>; private emitTypedEvent; onTypedEvent(eventType: TypedElementEventType, listener: (event: TypedElementEvent<T>) => void): void; offTypedEvent(eventType: TypedElementEventType, listener: (event: TypedElementEvent<T>) => void): void; setData(key: string, value: any): Promise<void>; getValidationCache(): Map<string, FieldValidationResult>; getLastValidation(): TypedValidationResult | null; clearValidationCache(): void; static createTyped<T>(name: string, schema: TypedElementSchema<T>, data?: Partial<T>): Promise<TypedElement<T>>; } //# sourceMappingURL=TypedElement.d.ts.map