import React from "react"; import { MemoryManager, type PerformanceMetrics as MonitorPerformanceMetrics } from "../../utils/performanceOptimizations"; export type PerformanceLevel = "low" | "medium" | "high" | "ultra"; export interface GlassPerformanceReport extends MonitorPerformanceMetrics { memoryStats?: ReturnType; recommendations: string[]; } export interface GlassPerformanceOptions { /** Enable performance monitoring */ enableMonitoring?: boolean; /** Target FPS for animations */ targetFPS?: number; /** Memory limit in MB */ memoryLimit?: number; /** Enable automatic quality adjustment */ autoAdjustQuality?: boolean; /** Quality adjustment threshold */ qualityThreshold?: number; /** Performance metrics callback */ onPerformanceMetrics?: (metrics: GlassPerformanceReport) => void; /** Quality change callback */ onQualityChange?: (quality: number) => void; } export interface GlassPerformanceMetrics { fps: number; frameTime: number; memoryUsage: number; renderTime: number; quality: number; isThrottled: boolean; recommendations: string[]; } export declare function useGlassPerformance(options?: GlassPerformanceOptions): { metrics: GlassPerformanceMetrics; quality: number; optimizeForLowPerformance: () => { reduceParticles: boolean; disableShadows: boolean; lowerResolution: boolean; reduceAnimationComplexity: boolean; }; getOptimalSettings: () => { particleCount: number; shadowQuality: string; textureSize: number; animationEnabled: boolean; blurEnabled: boolean; }; isLowPerformance: boolean; isHighPerformance: boolean; }; export declare function useDebouncedPerformance(callback: (metrics: GlassPerformanceReport) => void, delay?: number, options?: GlassPerformanceOptions): { debouncedMetrics: GlassPerformanceReport | null; metrics: GlassPerformanceMetrics; quality: number; optimizeForLowPerformance: () => { reduceParticles: boolean; disableShadows: boolean; lowerResolution: boolean; reduceAnimationComplexity: boolean; }; getOptimalSettings: () => { particleCount: number; shadowQuality: string; textureSize: number; animationEnabled: boolean; blurEnabled: boolean; }; isLowPerformance: boolean; isHighPerformance: boolean; }; export declare function useConditionalRendering(performance: ReturnType, thresholds?: { low: number; medium: number; high: number; }): { performanceLevel: PerformanceLevel; shouldRender: (minPerformance: keyof typeof thresholds) => boolean; getComponentVariant: (variants: Partial>) => T | undefined; }; export declare function useLazyPerformance

>(component: React.ComponentType

, fallback?: React.ComponentType

, options?: GlassPerformanceOptions & { minFPS?: number; loadDelay?: number; }): { Component: React.ComponentType

| (() => null); isLoaded: boolean; performance: { metrics: GlassPerformanceMetrics; quality: number; optimizeForLowPerformance: () => { reduceParticles: boolean; disableShadows: boolean; lowerResolution: boolean; reduceAnimationComplexity: boolean; }; getOptimalSettings: () => { particleCount: number; shadowQuality: string; textureSize: number; animationEnabled: boolean; blurEnabled: boolean; }; isLowPerformance: boolean; isHighPerformance: boolean; }; }; export declare function useProgressiveEnhancement(performance: ReturnType, features: Array<{ name: string; component: React.ComponentType>; minFPS: number; fallback?: React.ComponentType>; }>): { enabledFeatures: { name: string; component: React.ComponentType>; minFPS: number; fallback?: React.ComponentType>; }[]; getFeatureComponent: (featureName: string) => React.ComponentType> | (() => null); isFeatureEnabled: (featureName: string) => boolean; performanceLevel: string; }; //# sourceMappingURL=useGlassPerformance.d.ts.map