UNPKG

cs-element

Version:

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

221 lines 6.09 kB
import { ICSElement } from './interfaces'; /** * Тип события DevTools */ export type DevToolsEventType = 'element:created' | 'element:modified' | 'element:destroyed' | 'element:selected' | 'structure:changed' | 'query:executed' | 'performance:measured' | 'error:occurred'; /** * Базовое событие DevTools */ export interface DevToolsEvent { type: DevToolsEventType; timestamp: number; elementId?: string; data?: any; metadata?: Record<string, any>; } /** * Информация об элементе для инспектора */ export interface ElementInspectionInfo { id: string; type: string; data: Record<string, any>; children: string[]; parent?: string; depth: number; path: string[]; metadata: { created: number; modified: number; size: number; childCount: number; isRoot: boolean; }; } /** * Снимок структуры для DevTools */ export interface StructureSnapshot { timestamp: number; rootId: string; elements: Map<string, ElementInspectionInfo>; relationships: { parentChild: Map<string, string[]>; childParent: Map<string, string>; }; statistics: { totalElements: number; maxDepth: number; memoryUsage: number; }; } /** * Опции сериализации */ export interface SerializationOptions { includePrivateData?: boolean; maxDepth?: number; excludeFields?: string[]; includeMetadata?: boolean; format?: 'json' | 'compact' | 'debug'; } /** * Результат сериализации */ export interface SerializationResult { data: any; metadata: { version: string; timestamp: number; elementCount: number; serializedSize: number; }; } /** * Метрики производительности */ export interface PerformanceMetrics { operationType: string; duration: number; elementCount: number; memoryUsage: number; timestamp: number; metadata?: Record<string, any>; } /** * Конфигурация профилировщика */ export interface ProfilerConfig { enabled: boolean; trackMemory: boolean; trackOperations: boolean; sampleRate: number; maxHistorySize: number; } /** * Отчет профилировщика */ export interface ProfilerReport { timeRange: { start: number; end: number; }; operations: PerformanceMetrics[]; summary: { totalOperations: number; averageDuration: number; peakMemoryUsage: number; slowestOperations: PerformanceMetrics[]; }; } /** * Интерфейс инспектора элементов */ export interface IElementInspector { /** * Получить информацию об элементе */ inspect(element: ICSElement): ElementInspectionInfo; /** * Создать снимок структуры */ createSnapshot(rootElement: ICSElement): StructureSnapshot; /** * Сериализовать элемент */ serialize(element: ICSElement, options?: SerializationOptions): SerializationResult; /** * Десериализовать элемент */ deserialize(data: any): ICSElement; /** * Найти элемент по пути */ findByPath(rootElement: ICSElement, path: string[]): ICSElement | null; /** * Получить путь к элементу */ getElementPath(element: ICSElement): string[]; } /** * Интерфейс профилировщика производительности */ export interface IPerformanceProfiler { /** * Конфигурация профилировщика */ config: ProfilerConfig; /** * Начать измерение операции */ startMeasurement(operationType: string, metadata?: Record<string, any>): string; /** * Завершить измерение операции */ endMeasurement(measurementId: string): PerformanceMetrics; /** * Получить отчет за период */ getReport(timeRange?: { start: number; end: number; }): ProfilerReport; /** * Очистить историю метрик */ clearHistory(): void; /** * Включить/выключить профилировщик */ setEnabled(enabled: boolean): void; } /** * Интерфейс менеджера DevTools */ export interface IDevToolsManager { /** * Инспектор элементов */ inspector: IElementInspector; /** * Профилировщик производительности */ profiler: IPerformanceProfiler; /** * Подписаться на события */ on(eventType: DevToolsEventType, handler: (event: DevToolsEvent) => void): void; /** * Отписаться от событий */ off(eventType: DevToolsEventType, handler: (event: DevToolsEvent) => void): void; /** * Отправить событие */ emitDevToolsEvent(event: DevToolsEvent): void; /** * Зарегистрировать элемент для отслеживания */ registerElement(element: ICSElement): void; /** * Отменить регистрацию элемента */ unregisterElement(element: ICSElement): void; /** * Получить все зарегистрированные элементы */ getRegisteredElements(): ICSElement[]; /** * Создать глобальный снимок всех элементов */ createGlobalSnapshot(): Map<string, StructureSnapshot>; /** * Включить/выключить DevTools */ setEnabled(enabled: boolean): void; /** * Проверить, включены ли DevTools */ isEnabled(): boolean; } //# sourceMappingURL=devtools-interfaces.d.ts.map