@hadyfayed/filament-react-wrapper
Version:
Enterprise React integration for Laravel/Filament - Smart asset loading, 90%+ React-PHP function mapping, no-plugin Filament integration
77 lines • 2.57 kB
TypeScript
/**
* Development Tools for React Wrapper
* Provides debugging utilities, performance monitoring, and component inspection
*/
interface ComponentInfo {
name: string;
props: Record<string, unknown>;
mountTime: number;
renderCount: number;
lastRenderTime: number;
errors: Error[];
warnings: string[];
}
interface PerformanceMetrics {
componentName: string;
mountTime: number;
renderTime: number;
propsChanges: number;
memoryUsage?: number;
}
interface StateChange {
path: string;
oldValue: unknown;
newValue: unknown;
timestamp: number;
source: string;
}
declare class DevTools {
private _isEnabled;
private components;
private performanceMetrics;
private stateHistory;
private maxHistorySize;
private observers;
constructor();
private shouldEnable;
private initializeDevTools;
private setupKeyboardShortcuts;
private setupPerformanceObserver;
trackComponentMount(name: string, props: Record<string, any>): void;
trackComponentRender(name: string, props: Record<string, any>): void;
trackComponentUnmount(name: string): void;
trackComponentError(name: string, error: Error): void;
trackComponentWarning(name: string, warning: string): void;
trackStateChange(path: string, oldValue: any, newValue: any, source?: string): void;
recordPerformanceMetric(metric: PerformanceMetrics): void;
startPerformanceMeasure(name: string): void;
endPerformanceMeasure(name: string): void;
getComponentInfo(name?: string): ComponentInfo | ComponentInfo[] | undefined;
getPerformanceMetrics(componentName?: string): PerformanceMetrics[];
getStateHistory(path?: string): StateChange[];
showDebugPanel(): void;
private createDebugPanel;
private getAverageRenderTime;
private getSlowRenderCount;
logComponentInfo(): void;
logStateInfo(): void;
logPerformanceInfo(): void;
log(message: string, data?: unknown): void;
warn(message: string, ...args: unknown[]): void;
error(message: string, ...args: unknown[]): void;
subscribe(callback: (event: DevToolsEvent) => void): () => void;
private notifyObservers;
enable(): void;
disable(): void;
isEnabled(): boolean;
clear(): void;
getMemoryUsage(): number | undefined;
}
interface DevToolsEvent {
type: string;
data: any;
}
export declare const devTools: DevTools;
export type { ComponentInfo, PerformanceMetrics, StateChange, DevToolsEvent };
export default devTools;
//# sourceMappingURL=DevTools.d.ts.map