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