cs-element
Version:
Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support
95 lines • 2.63 kB
TypeScript
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