UNPKG

cs-element

Version:

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

95 lines 2.63 kB
import { CSElement } from '../core/CSElement'; import { QueryEngine } from '../utils/QueryEngine'; export interface UseElementOptions { name?: string; data?: Record<string, any>; parent?: CSElement; } export interface UseElementResult { element: CSElement | null; loading: boolean; error: Error | null; update: (newData: Record<string, any>) => Promise<void>; remove: () => Promise<void>; save: () => Promise<void>; } export interface UseQueryOptions { selector?: string; filter?: (element: CSElement) => boolean; sort?: (a: CSElement, b: CSElement) => number; limit?: number; offset?: number; autoRefresh?: boolean; refreshInterval?: number; } export interface UseQueryResult { elements: CSElement[]; count: number; hasMore: boolean; loading: boolean; error: Error | null; refresh: () => Promise<void>; loadMore: () => Promise<void>; } export interface UseCSElementOptions { root?: CSElement; autoConnect?: boolean; enableHistory?: boolean; enableReactivity?: boolean; enablePersistence?: boolean; } export interface UseCSElementResult { root: CSElement | null; connected: boolean; error: Error | null; createElement: (name: string, data?: Record<string, any>) => CSElement; query: (selector: string) => CSElement[]; export: () => any; import: (data: any) => Promise<void>; connect: () => Promise<void>; disconnect: () => void; clear: () => Promise<void>; stats: { elementCount: number; lastUpdate: Date | null; }; } export interface CSElementContextValue { root: CSElement | null; queryEngine: QueryEngine | null; connected: boolean; config: UseCSElementOptions; } export interface ElementChangeEvent { type: 'create' | 'update' | 'delete'; element: CSElement; timestamp: Date; } export interface QueryChangeEvent { type: 'add' | 'remove' | 'update'; elements: CSElement[]; query: string; timestamp: Date; } export interface HookPerformanceOptions { enableMemoization?: boolean; memoizationTTL?: number; batchUpdates?: boolean; batchDelay?: number; virtualizeResults?: boolean; virtualizationThreshold?: number; } export interface HookStatistics { renderCount: number; lastRenderTime: Date; averageRenderTime: number; cacheHitRate: number; memoryUsage: number; } export interface ReactDevToolsConfig { enabled?: boolean; displayName?: string; showInternalState?: boolean; trackPerformance?: boolean; } //# sourceMappingURL=react-interfaces.d.ts.map